* [PATCH 3/7] dt-bindings: PCI: qcom: Add IPQ9574 PCIe controller [not found] <20240402192555.1955204-1-mr.nuke.me@gmail.com> @ 2024-04-02 19:25 ` Alexandru Gagniuc 2024-04-03 7:14 ` Krzysztof Kozlowski 2024-04-02 19:25 ` [PATCH 4/7] PCI: qcom: Add support for IPQ9574 Alexandru Gagniuc 1 sibling, 1 reply; 5+ messages in thread From: Alexandru Gagniuc @ 2024-04-02 19:25 UTC (permalink / raw) To: Bjorn Andersson, Konrad Dybcio, Bjorn Helgaas, Lorenzo Pieralisi, Krzysztof Wilczyński, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Manivannan Sadhasivam Cc: ansuelsmth, robimarko, Alexandru Gagniuc, linux-arm-msm, linux-pci, devicetree, linux-kernel IPQ9574 has PCIe controllers which are almost identical to IPQ6018. The only difference is that the "iface" clock is not required. Document this difference along with the compatible string. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> --- .../devicetree/bindings/pci/qcom,pcie.yaml | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml index cf9a6910b542..6eb29547c18e 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-sdm845 @@ -383,6 +384,35 @@ allOf: - const: axi_s # AXI Slave clock - const: axi_bridge # AXI bridge clock - const: rchng + + - if: + properties: + compatible: + contains: + enum: + - qcom,pcie-ipq9574 + then: + properties: + clocks: + minItems: 4 + maxItems: 4 + clock-names: + items: + - const: axi_m # AXI Master clock + - const: axi_s # AXI Slave clock + - const: axi_bridge # AXI bridge clock + - const: rchng + + - if: + properties: + compatible: + contains: + enum: + - qcom,pcie-ipq6018 + - qcom,pcie-ipq8074-gen3 + - qcom,pcie-ipq9574 + then: + properties: resets: minItems: 8 maxItems: 8 @@ -507,6 +537,7 @@ allOf: - qcom,pcie-ipq8064v2 - qcom,pcie-ipq8074 - qcom,pcie-ipq8074-gen3 + - qcom,pcie-ipq9574 - qcom,pcie-qcs404 then: required: @@ -566,6 +597,7 @@ allOf: - qcom,pcie-ipq8064-v2 - qcom,pcie-ipq8074 - qcom,pcie-ipq8074-gen3 + - qcom,pcie-ipq9574 - qcom,pcie-qcs404 then: properties: -- 2.40.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 3/7] dt-bindings: PCI: qcom: Add IPQ9574 PCIe controller 2024-04-02 19:25 ` [PATCH 3/7] dt-bindings: PCI: qcom: Add IPQ9574 PCIe controller Alexandru Gagniuc @ 2024-04-03 7:14 ` Krzysztof Kozlowski 2024-04-03 18:05 ` mr.nuke.me 0 siblings, 1 reply; 5+ messages in thread From: Krzysztof Kozlowski @ 2024-04-03 7:14 UTC (permalink / raw) To: Alexandru Gagniuc, Bjorn Andersson, Konrad Dybcio, Bjorn Helgaas, Lorenzo Pieralisi, Krzysztof Wilczyński, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Manivannan Sadhasivam Cc: ansuelsmth, robimarko, linux-arm-msm, linux-pci, devicetree, linux-kernel On 02/04/2024 21:25, Alexandru Gagniuc wrote: > IPQ9574 has PCIe controllers which are almost identical to IPQ6018. > The only difference is that the "iface" clock is not required. > Document this difference along with the compatible string. > > Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> > --- > .../devicetree/bindings/pci/qcom,pcie.yaml | 32 +++++++++++++++++++ > 1 file changed, 32 insertions(+) > > diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > index cf9a6910b542..6eb29547c18e 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-sdm845 > @@ -383,6 +384,35 @@ allOf: > - const: axi_s # AXI Slave clock > - const: axi_bridge # AXI bridge clock > - const: rchng > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,pcie-ipq9574 > + then: > + properties: > + clocks: > + minItems: 4 > + maxItems: 4 > + clock-names: > + items: > + - const: axi_m # AXI Master clock > + - const: axi_s # AXI Slave clock > + - const: axi_bridge # AXI bridge clock > + - const: rchng > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,pcie-ipq6018 > + - qcom,pcie-ipq8074-gen3 > + - qcom,pcie-ipq9574 > + then: Do not introduce inconsistent style. All if:then: define both clocks and resets, right? And after your patch not anymore? Best regards, Krzysztof ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 3/7] dt-bindings: PCI: qcom: Add IPQ9574 PCIe controller 2024-04-03 7:14 ` Krzysztof Kozlowski @ 2024-04-03 18:05 ` mr.nuke.me 2024-04-04 6:18 ` Krzysztof Kozlowski 0 siblings, 1 reply; 5+ messages in thread From: mr.nuke.me @ 2024-04-03 18:05 UTC (permalink / raw) To: Krzysztof Kozlowski, Bjorn Andersson, Konrad Dybcio, Bjorn Helgaas, Lorenzo Pieralisi, Krzysztof Wilczyński, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Manivannan Sadhasivam Cc: ansuelsmth, robimarko, linux-arm-msm, linux-pci, devicetree, linux-kernel On 4/3/24 02:14, Krzysztof Kozlowski wrote: > On 02/04/2024 21:25, Alexandru Gagniuc wrote: >> IPQ9574 has PCIe controllers which are almost identical to IPQ6018. >> The only difference is that the "iface" clock is not required. >> Document this difference along with the compatible string. >> >> Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> >> --- >> .../devicetree/bindings/pci/qcom,pcie.yaml | 32 +++++++++++++++++++ >> 1 file changed, 32 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> index cf9a6910b542..6eb29547c18e 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-sdm845 >> @@ -383,6 +384,35 @@ allOf: >> - const: axi_s # AXI Slave clock >> - const: axi_bridge # AXI bridge clock >> - const: rchng >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,pcie-ipq9574 >> + then: >> + properties: >> + clocks: >> + minItems: 4 >> + maxItems: 4 >> + clock-names: >> + items: >> + - const: axi_m # AXI Master clock >> + - const: axi_s # AXI Slave clock >> + - const: axi_bridge # AXI bridge clock >> + - const: rchng >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,pcie-ipq6018 >> + - qcom,pcie-ipq8074-gen3 >> + - qcom,pcie-ipq9574 >> + then: > > Do not introduce inconsistent style. All if:then: define both clocks and > resets, right? And after your patch not anymore? > I kept the resets in one place because they are the same cross the ipq* variants. Do I understand correctly that you wish me to split up the resets as well? if ipq8074 ipq6018 clocks resets if ipq9754 clocks resets Alex > Best regards, > Krzysztof > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 3/7] dt-bindings: PCI: qcom: Add IPQ9574 PCIe controller 2024-04-03 18:05 ` mr.nuke.me @ 2024-04-04 6:18 ` Krzysztof Kozlowski 0 siblings, 0 replies; 5+ messages in thread From: Krzysztof Kozlowski @ 2024-04-04 6:18 UTC (permalink / raw) To: mr.nuke.me, Bjorn Andersson, Konrad Dybcio, Bjorn Helgaas, Lorenzo Pieralisi, Krzysztof Wilczyński, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Manivannan Sadhasivam Cc: ansuelsmth, robimarko, linux-arm-msm, linux-pci, devicetree, linux-kernel On 03/04/2024 20:05, mr.nuke.me@gmail.com wrote: > > > On 4/3/24 02:14, Krzysztof Kozlowski wrote: >> On 02/04/2024 21:25, Alexandru Gagniuc wrote: >>> IPQ9574 has PCIe controllers which are almost identical to IPQ6018. >>> The only difference is that the "iface" clock is not required. >>> Document this difference along with the compatible string. >>> >>> Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> >>> --- >>> .../devicetree/bindings/pci/qcom,pcie.yaml | 32 +++++++++++++++++++ >>> 1 file changed, 32 insertions(+) >>> >>> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >>> index cf9a6910b542..6eb29547c18e 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-sdm845 >>> @@ -383,6 +384,35 @@ allOf: >>> - const: axi_s # AXI Slave clock >>> - const: axi_bridge # AXI bridge clock >>> - const: rchng >>> + >>> + - if: >>> + properties: >>> + compatible: >>> + contains: >>> + enum: >>> + - qcom,pcie-ipq9574 >>> + then: >>> + properties: >>> + clocks: >>> + minItems: 4 >>> + maxItems: 4 >>> + clock-names: >>> + items: >>> + - const: axi_m # AXI Master clock >>> + - const: axi_s # AXI Slave clock >>> + - const: axi_bridge # AXI bridge clock >>> + - const: rchng >>> + >>> + - if: >>> + properties: >>> + compatible: >>> + contains: >>> + enum: >>> + - qcom,pcie-ipq6018 >>> + - qcom,pcie-ipq8074-gen3 >>> + - qcom,pcie-ipq9574 >>> + then: >> >> Do not introduce inconsistent style. All if:then: define both clocks and >> resets, right? And after your patch not anymore? >> > I kept the resets in one place because they are the same cross the ipq* > variants. > > Do I understand correctly that you wish me to split up the resets as well? > > if ipq8074 ipq6018 > clocks > resets > > if ipq9754 > clocks > resets Yes, keep it consistent with all other cases. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 4/7] PCI: qcom: Add support for IPQ9574 [not found] <20240402192555.1955204-1-mr.nuke.me@gmail.com> 2024-04-02 19:25 ` [PATCH 3/7] dt-bindings: PCI: qcom: Add IPQ9574 PCIe controller Alexandru Gagniuc @ 2024-04-02 19:25 ` Alexandru Gagniuc 1 sibling, 0 replies; 5+ messages in thread From: Alexandru Gagniuc @ 2024-04-02 19:25 UTC (permalink / raw) To: Bjorn Andersson, Konrad Dybcio, Manivannan Sadhasivam, Lorenzo Pieralisi, Krzysztof Wilczyński, Rob Herring, Bjorn Helgaas Cc: ansuelsmth, robimarko, Alexandru Gagniuc, linux-pci, linux-arm-msm, linux-kernel Add support for the PCIe on IPQ9574. The main difference from ipq6018 is that the "iface" clock is not necessarry. Add a special case in qcom_pcie_get_resources_2_9_0() to handle this. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> --- drivers/pci/controller/dwc/pcie-qcom.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c index 14772edcf0d3..10560d6d6336 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -1101,15 +1101,19 @@ static int qcom_pcie_get_resources_2_9_0(struct qcom_pcie *pcie) struct qcom_pcie_resources_2_9_0 *res = &pcie->res.v2_9_0; struct dw_pcie *pci = pcie->pci; struct device *dev = pci->dev; - int ret; + int ret, num_clks = ARRAY_SIZE(res->clks) - 1; - res->clks[0].id = "iface"; + res->clks[0].id = "rchng"; res->clks[1].id = "axi_m"; res->clks[2].id = "axi_s"; res->clks[3].id = "axi_bridge"; - res->clks[4].id = "rchng"; - ret = devm_clk_bulk_get(dev, ARRAY_SIZE(res->clks), res->clks); + if (!of_device_is_compatible(dev->of_node, "qcom,pcie-ipq9574")) { + res->clks[4].id = "iface"; + num_clks++; + } + + ret = devm_clk_bulk_get(dev, num_clks, res->clks); if (ret < 0) return ret; @@ -1664,6 +1668,7 @@ static const struct of_device_id qcom_pcie_match[] = { { .compatible = "qcom,pcie-ipq8064-v2", .data = &cfg_2_1_0 }, { .compatible = "qcom,pcie-ipq8074", .data = &cfg_2_3_3 }, { .compatible = "qcom,pcie-ipq8074-gen3", .data = &cfg_2_9_0 }, + { .compatible = "qcom,pcie-ipq9574", .data = &cfg_2_9_0 }, { .compatible = "qcom,pcie-msm8996", .data = &cfg_2_3_2 }, { .compatible = "qcom,pcie-qcs404", .data = &cfg_2_4_0 }, { .compatible = "qcom,pcie-sa8540p", .data = &cfg_sc8280xp }, -- 2.40.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-04-04 6:18 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20240402192555.1955204-1-mr.nuke.me@gmail.com>
2024-04-02 19:25 ` [PATCH 3/7] dt-bindings: PCI: qcom: Add IPQ9574 PCIe controller Alexandru Gagniuc
2024-04-03 7:14 ` Krzysztof Kozlowski
2024-04-03 18:05 ` mr.nuke.me
2024-04-04 6:18 ` Krzysztof Kozlowski
2024-04-02 19:25 ` [PATCH 4/7] PCI: qcom: Add support for IPQ9574 Alexandru Gagniuc
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox