* [PATCH v3 0/4] Add PCIe support for IPQ5424
@ 2025-01-25 3:59 Manikanta Mylavarapu
2025-01-25 3:59 ` [PATCH v3 1/4] dt-bindings: PCI: qcom: add global interrupt for ipq5424 Manikanta Mylavarapu
` (3 more replies)
0 siblings, 4 replies; 16+ messages in thread
From: Manikanta Mylavarapu @ 2025-01-25 3:59 UTC (permalink / raw)
To: andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi,
kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm,
linux-clk, devicetree, linux-kernel, linux-pci
Cc: quic_srichara, quic_varada
This series adds support for enabling the PCIe host devices (PCIe0,
PCIe1, PCIe2, PCIe3) found on IPQ5424 platform. The PCIe0 & PCIe1
are 1-lane Gen3 host and PCIe2 & PCIe3 are 2-lane Gen3 host.
Changes in V3:
- Fixed all review comments from Manivannan.
- Patch #1 and #2 are newly added.
- Detailed change logs are added to the respective
patches.
V2 can be found at:
https://lore.kernel.org/linux-arm-msm/20250115064747.3302912-1-quic_mmanikan@quicinc.com/
V1 can be found at:
https://lore.kernel.org/linux-arm-msm/20241213134950.234946-1-quic_mmanikan@quicinc.com/
Manikanta Mylavarapu (4):
dt-bindings: PCI: qcom: add global interrupt for ipq5424
dt-bindings: clock: update interconnect cells for ipq5424
arm64: dts: qcom: ipq5424: Add PCIe PHYs and controller nodes
arm64: dts: qcom: ipq5424: Enable PCIe PHYs and controllers
.../bindings/clock/qcom,ipq5332-gcc.yaml | 8 +-
.../devicetree/bindings/pci/qcom,pcie.yaml | 6 +-
arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts | 41 +-
arch/arm64/boot/dts/qcom/ipq5424.dtsi | 516 +++++++++++++++++-
4 files changed, 561 insertions(+), 10 deletions(-)
base-commit: 5ffa57f6eecefababb8cbe327222ef171943b183
--
2.34.1
^ permalink raw reply [flat|nested] 16+ messages in thread* [PATCH v3 1/4] dt-bindings: PCI: qcom: add global interrupt for ipq5424 2025-01-25 3:59 [PATCH v3 0/4] Add PCIe support for IPQ5424 Manikanta Mylavarapu @ 2025-01-25 3:59 ` Manikanta Mylavarapu 2025-01-27 7:25 ` Krzysztof Kozlowski 2025-01-25 3:59 ` [PATCH v3 2/4] dt-bindings: clock: update interconnect cells " Manikanta Mylavarapu ` (2 subsequent siblings) 3 siblings, 1 reply; 16+ messages in thread From: Manikanta Mylavarapu @ 2025-01-25 3:59 UTC (permalink / raw) To: andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci Cc: quic_srichara, quic_varada Document the global interrupt found on IPQ5424 platform. Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> --- Documentation/devicetree/bindings/pci/qcom,pcie.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml index 7235d6554cfb..1fd6aea08bf0 100644 --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml @@ -49,11 +49,11 @@ properties: interrupts: minItems: 1 - maxItems: 8 + maxItems: 9 interrupt-names: minItems: 1 - maxItems: 8 + maxItems: 9 iommu-map: minItems: 1 @@ -443,6 +443,7 @@ allOf: interrupts: minItems: 8 interrupt-names: + minItems: 8 items: - const: msi0 - const: msi1 @@ -452,6 +453,7 @@ allOf: - const: msi5 - const: msi6 - const: msi7 + - const: global - if: properties: -- 2.34.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/4] dt-bindings: PCI: qcom: add global interrupt for ipq5424 2025-01-25 3:59 ` [PATCH v3 1/4] dt-bindings: PCI: qcom: add global interrupt for ipq5424 Manikanta Mylavarapu @ 2025-01-27 7:25 ` Krzysztof Kozlowski 2025-01-28 7:00 ` Manikanta Mylavarapu 2025-01-28 7:30 ` Krzysztof Kozlowski 0 siblings, 2 replies; 16+ messages in thread From: Krzysztof Kozlowski @ 2025-01-27 7:25 UTC (permalink / raw) To: Manikanta Mylavarapu Cc: andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci, quic_srichara, quic_varada On Sat, Jan 25, 2025 at 09:29:17AM +0530, Manikanta Mylavarapu wrote: > Document the global interrupt found on IPQ5424 platform. > > Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> > --- > Documentation/devicetree/bindings/pci/qcom,pcie.yaml | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > index 7235d6554cfb..1fd6aea08bf0 100644 > --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > @@ -49,11 +49,11 @@ properties: > > interrupts: > minItems: 1 > - maxItems: 8 > + maxItems: 9 > > interrupt-names: > minItems: 1 > - maxItems: 8 > + maxItems: 9 You just added it for few other devices as well, like sdm845. If you raise one part of constrain, then you need to correct each block where old constrain was implied. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/4] dt-bindings: PCI: qcom: add global interrupt for ipq5424 2025-01-27 7:25 ` Krzysztof Kozlowski @ 2025-01-28 7:00 ` Manikanta Mylavarapu 2025-01-28 7:30 ` Krzysztof Kozlowski 1 sibling, 0 replies; 16+ messages in thread From: Manikanta Mylavarapu @ 2025-01-28 7:00 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci, quic_srichara, quic_varada On 1/27/2025 12:55 PM, Krzysztof Kozlowski wrote: > On Sat, Jan 25, 2025 at 09:29:17AM +0530, Manikanta Mylavarapu wrote: >> Document the global interrupt found on IPQ5424 platform. >> >> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> >> --- >> Documentation/devicetree/bindings/pci/qcom,pcie.yaml | 6 ++++-- >> 1 file changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> index 7235d6554cfb..1fd6aea08bf0 100644 >> --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> @@ -49,11 +49,11 @@ properties: >> >> interrupts: >> minItems: 1 >> - maxItems: 8 >> + maxItems: 9 >> >> interrupt-names: >> minItems: 1 >> - maxItems: 8 >> + maxItems: 9 > > You just added it for few other devices as well, like sdm845. If you > raise one part of constrain, then you need to correct each block where > old constrain was implied. > Hi Krzysztof, Thank you for reviewing the patch. I will explicitly set the maxItems for other devices like sdm845 and msm8996 based on the number of interrupts they support. This will ensure consistency across all devices. Please correct me if my understanding is wrong. Thanks & Regards, Manikanta. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/4] dt-bindings: PCI: qcom: add global interrupt for ipq5424 2025-01-27 7:25 ` Krzysztof Kozlowski 2025-01-28 7:00 ` Manikanta Mylavarapu @ 2025-01-28 7:30 ` Krzysztof Kozlowski 1 sibling, 0 replies; 16+ messages in thread From: Krzysztof Kozlowski @ 2025-01-28 7:30 UTC (permalink / raw) To: Manikanta Mylavarapu Cc: andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci, quic_srichara, quic_varada On 27/01/2025 08:25, Krzysztof Kozlowski wrote: > On Sat, Jan 25, 2025 at 09:29:17AM +0530, Manikanta Mylavarapu wrote: >> Document the global interrupt found on IPQ5424 platform. >> >> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> >> --- >> Documentation/devicetree/bindings/pci/qcom,pcie.yaml | 6 ++++-- >> 1 file changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> index 7235d6554cfb..1fd6aea08bf0 100644 >> --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml >> @@ -49,11 +49,11 @@ properties: >> >> interrupts: >> minItems: 1 >> - maxItems: 8 >> + maxItems: 9 >> >> interrupt-names: >> minItems: 1 >> - maxItems: 8 >> + maxItems: 9 > > You just added it for few other devices as well, like sdm845. If you > raise one part of constrain, then you need to correct each block where > old constrain was implied. And before you send new version, be 100% sure: 1. You observe the merge window 2. You sync with other people, so you finally stop sending the same multiple times. Including sending the same *MISTAKE* and asking for the same *REVIEW*. The conflicting work from the SAME company or even team is ridiculous. It is not the maintainer's task to coordinate your tasks and what your colleagues are sending! I am not going to review any Qualcomm PCI and PHY patches for the remaining time of merge window and the next week which is usually busy time for picking up patches. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v3 2/4] dt-bindings: clock: update interconnect cells for ipq5424 2025-01-25 3:59 [PATCH v3 0/4] Add PCIe support for IPQ5424 Manikanta Mylavarapu 2025-01-25 3:59 ` [PATCH v3 1/4] dt-bindings: PCI: qcom: add global interrupt for ipq5424 Manikanta Mylavarapu @ 2025-01-25 3:59 ` Manikanta Mylavarapu 2025-01-27 7:27 ` Krzysztof Kozlowski 2025-01-28 11:26 ` Konrad Dybcio 2025-01-25 3:59 ` [PATCH v3 3/4] arm64: dts: qcom: ipq5424: Add PCIe PHYs and controller nodes Manikanta Mylavarapu 2025-01-25 3:59 ` [PATCH v3 4/4] arm64: dts: qcom: ipq5424: Enable PCIe PHYs and controllers Manikanta Mylavarapu 3 siblings, 2 replies; 16+ messages in thread From: Manikanta Mylavarapu @ 2025-01-25 3:59 UTC (permalink / raw) To: andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci Cc: quic_srichara, quic_varada Interconnect cells differ between the IPQ5332 and IPQ5424. Therefore, update the interconnect cells according to the SoC. Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> --- .../devicetree/bindings/clock/qcom,ipq5332-gcc.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml index 1230183fc0a9..fac7922d2473 100644 --- a/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml +++ b/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml @@ -35,8 +35,6 @@ properties: - description: PCIE 2-lane PHY3 pipe clock source '#power-domain-cells': false - '#interconnect-cells': - const: 1 required: - compatible @@ -54,6 +52,9 @@ allOf: clocks: maxItems: 5 + '#interconnect-cells': + const: 1 + - if: properties: compatible: @@ -65,6 +66,9 @@ allOf: minItems: 7 maxItems: 7 + '#interconnect-cells': + const: 2 + unevaluatedProperties: false examples: -- 2.34.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v3 2/4] dt-bindings: clock: update interconnect cells for ipq5424 2025-01-25 3:59 ` [PATCH v3 2/4] dt-bindings: clock: update interconnect cells " Manikanta Mylavarapu @ 2025-01-27 7:27 ` Krzysztof Kozlowski 2025-01-28 7:12 ` Manikanta Mylavarapu 2025-01-28 11:26 ` Konrad Dybcio 1 sibling, 1 reply; 16+ messages in thread From: Krzysztof Kozlowski @ 2025-01-27 7:27 UTC (permalink / raw) To: Manikanta Mylavarapu Cc: andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci, quic_srichara, quic_varada On Sat, Jan 25, 2025 at 09:29:18AM +0530, Manikanta Mylavarapu wrote: > Interconnect cells differ between the IPQ5332 and IPQ5424. > Therefore, update the interconnect cells according to the SoC. Why do they differ? Why they cannot be the same? > > Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> > --- > .../devicetree/bindings/clock/qcom,ipq5332-gcc.yaml | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml > index 1230183fc0a9..fac7922d2473 100644 > --- a/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml > +++ b/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml > @@ -35,8 +35,6 @@ properties: > - description: PCIE 2-lane PHY3 pipe clock source > > '#power-domain-cells': false > - '#interconnect-cells': > - const: 1 Properties are always defined top-level or in other schema. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 2/4] dt-bindings: clock: update interconnect cells for ipq5424 2025-01-27 7:27 ` Krzysztof Kozlowski @ 2025-01-28 7:12 ` Manikanta Mylavarapu 0 siblings, 0 replies; 16+ messages in thread From: Manikanta Mylavarapu @ 2025-01-28 7:12 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci, quic_srichara, quic_varada On 1/27/2025 12:57 PM, Krzysztof Kozlowski wrote: > On Sat, Jan 25, 2025 at 09:29:18AM +0530, Manikanta Mylavarapu wrote: >> Interconnect cells differ between the IPQ5332 and IPQ5424. >> Therefore, update the interconnect cells according to the SoC. > > Why do they differ? Why they cannot be the same? > Based on the comment received here [1], i updated interconnect cells to 2 to accommodate icc tags for IPQ5424. [1]: https://lore.kernel.org/linux-arm-msm/20250119124551.nl5272bz36ozvlqu@thinkpad/ I will update interconnect cells to 2 for IPQ5332 as well. >> >> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> >> --- >> .../devicetree/bindings/clock/qcom,ipq5332-gcc.yaml | 8 ++++++-- >> 1 file changed, 6 insertions(+), 2 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml >> index 1230183fc0a9..fac7922d2473 100644 >> --- a/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml >> +++ b/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml >> @@ -35,8 +35,6 @@ properties: >> - description: PCIE 2-lane PHY3 pipe clock source >> >> '#power-domain-cells': false >> - '#interconnect-cells': >> - const: 1 > > Properties are always defined top-level or in other schema. I will define it in top-level and initialize with 2. Thanks & Regards, Manikanta. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 2/4] dt-bindings: clock: update interconnect cells for ipq5424 2025-01-25 3:59 ` [PATCH v3 2/4] dt-bindings: clock: update interconnect cells " Manikanta Mylavarapu 2025-01-27 7:27 ` Krzysztof Kozlowski @ 2025-01-28 11:26 ` Konrad Dybcio 2025-01-30 6:56 ` Manikanta Mylavarapu 1 sibling, 1 reply; 16+ messages in thread From: Konrad Dybcio @ 2025-01-28 11:26 UTC (permalink / raw) To: Manikanta Mylavarapu, andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci Cc: quic_srichara, quic_varada On 25.01.2025 4:59 AM, Manikanta Mylavarapu wrote: > Interconnect cells differ between the IPQ5332 and IPQ5424. > Therefore, update the interconnect cells according to the SoC. > > Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> > --- > .../devicetree/bindings/clock/qcom,ipq5332-gcc.yaml | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml > index 1230183fc0a9..fac7922d2473 100644 > --- a/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml > +++ b/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml > @@ -35,8 +35,6 @@ properties: > - description: PCIE 2-lane PHY3 pipe clock source > > '#power-domain-cells': false > - '#interconnect-cells': > - const: 1 > > required: > - compatible > @@ -54,6 +52,9 @@ allOf: > clocks: > maxItems: 5 > > + '#interconnect-cells': > + const: 1 > + > - if: > properties: > compatible: > @@ -65,6 +66,9 @@ allOf: > minItems: 7 > maxItems: 7 > > + '#interconnect-cells': > + const: 2 Please apply some criticism to the review comments you receive.. this only makes sense for platforms using icc-rpm or icc-rpmh. Since this driver registers an interconnect provider through icc_clk APIs, it explicitly uses a simple, onecell translation function to .get the nodes Please drop this patch Konrad ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 2/4] dt-bindings: clock: update interconnect cells for ipq5424 2025-01-28 11:26 ` Konrad Dybcio @ 2025-01-30 6:56 ` Manikanta Mylavarapu 0 siblings, 0 replies; 16+ messages in thread From: Manikanta Mylavarapu @ 2025-01-30 6:56 UTC (permalink / raw) To: Konrad Dybcio, andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci Cc: quic_srichara, quic_varada On 1/28/2025 4:56 PM, Konrad Dybcio wrote: > On 25.01.2025 4:59 AM, Manikanta Mylavarapu wrote: >> Interconnect cells differ between the IPQ5332 and IPQ5424. >> Therefore, update the interconnect cells according to the SoC. >> >> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> >> --- >> .../devicetree/bindings/clock/qcom,ipq5332-gcc.yaml | 8 ++++++-- >> 1 file changed, 6 insertions(+), 2 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml >> index 1230183fc0a9..fac7922d2473 100644 >> --- a/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml >> +++ b/Documentation/devicetree/bindings/clock/qcom,ipq5332-gcc.yaml >> @@ -35,8 +35,6 @@ properties: >> - description: PCIE 2-lane PHY3 pipe clock source >> >> '#power-domain-cells': false >> - '#interconnect-cells': >> - const: 1 >> >> required: >> - compatible >> @@ -54,6 +52,9 @@ allOf: >> clocks: >> maxItems: 5 >> >> + '#interconnect-cells': >> + const: 1 >> + >> - if: >> properties: >> compatible: >> @@ -65,6 +66,9 @@ allOf: >> minItems: 7 >> maxItems: 7 >> >> + '#interconnect-cells': >> + const: 2 > > Please apply some criticism to the review comments you receive.. this only > makes sense for platforms using icc-rpm or icc-rpmh. > > Since this driver registers an interconnect provider through icc_clk APIs, > it explicitly uses a simple, onecell translation function to .get the nodes > > Please drop this patch Hi Konrad, Thank you for pointing this. I will drop the patch. Thanks & Regards, Manikanta. ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v3 3/4] arm64: dts: qcom: ipq5424: Add PCIe PHYs and controller nodes 2025-01-25 3:59 [PATCH v3 0/4] Add PCIe support for IPQ5424 Manikanta Mylavarapu 2025-01-25 3:59 ` [PATCH v3 1/4] dt-bindings: PCI: qcom: add global interrupt for ipq5424 Manikanta Mylavarapu 2025-01-25 3:59 ` [PATCH v3 2/4] dt-bindings: clock: update interconnect cells " Manikanta Mylavarapu @ 2025-01-25 3:59 ` Manikanta Mylavarapu 2025-01-28 11:38 ` Konrad Dybcio 2025-01-25 3:59 ` [PATCH v3 4/4] arm64: dts: qcom: ipq5424: Enable PCIe PHYs and controllers Manikanta Mylavarapu 3 siblings, 1 reply; 16+ messages in thread From: Manikanta Mylavarapu @ 2025-01-25 3:59 UTC (permalink / raw) To: andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci Cc: quic_srichara, quic_varada Add PCIe0, PCIe1, PCIe2, PCIe3 (and corresponding PHY) devices found on IPQ5424 platform. The PCIe0 & PCIe1 are 1-lane Gen3 host whereas PCIe2 & PCIe3 are 2-lane Gen3 host. Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> --- Changes in V3: - Replace all instances of ‘0’ with ‘0x0’ wherever applicable in PCIe nodes. - Place both compatible entries in a single line for each PCIe controller node. - Global interrupt is defined for each PCIe controller node. - Remove all clocks except the RCHNG clock from the assigned-clocks. - ICC tag is defined for the interconnect path of each pcie controller node. - Root port node is added for each pcie controller node. arch/arm64/boot/dts/qcom/ipq5424.dtsi | 516 +++++++++++++++++++++++++- 1 file changed, 511 insertions(+), 5 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/ipq5424.dtsi b/arch/arm64/boot/dts/qcom/ipq5424.dtsi index 7034d378b1ef..cba04136d499 100644 --- a/arch/arm64/boot/dts/qcom/ipq5424.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq5424.dtsi @@ -9,6 +9,8 @@ #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/clock/qcom,ipq5424-gcc.h> #include <dt-bindings/reset/qcom,ipq5424-gcc.h> +#include <dt-bindings/interconnect/qcom,icc.h> +#include <dt-bindings/interconnect/qcom,ipq5424.h> #include <dt-bindings/gpio/gpio.h> / { @@ -152,6 +154,98 @@ soc@0 { #size-cells = <2>; ranges = <0 0 0 0 0x10 0>; + pcie0_phy: phy@84000 { + compatible = "qcom,ipq5424-qmp-gen3x1-pcie-phy", + "qcom,ipq9574-qmp-gen3x1-pcie-phy"; + reg = <0x0 0x00084000 0x0 0x2000>; + clocks = <&gcc GCC_PCIE0_AUX_CLK>, + <&gcc GCC_PCIE0_AHB_CLK>, + <&gcc GCC_PCIE0_PIPE_CLK>; + clock-names = "aux", "cfg_ahb", "pipe"; + + assigned-clocks = <&gcc GCC_PCIE0_AUX_CLK>; + assigned-clock-rates = <20000000>; + + resets = <&gcc GCC_PCIE0_PHY_BCR>, + <&gcc GCC_PCIE0PHY_PHY_BCR>; + reset-names = "phy", "common"; + + #clock-cells = <0>; + clock-output-names = "gcc_pcie0_pipe_clk_src"; + + #phy-cells = <0>; + status = "disabled"; + }; + + pcie1_phy: phy@8c000 { + compatible = "qcom,ipq5424-qmp-gen3x1-pcie-phy", + "qcom,ipq9574-qmp-gen3x1-pcie-phy"; + reg = <0x0 0x0008c000 0x0 0x2000>; + clocks = <&gcc GCC_PCIE1_AUX_CLK>, + <&gcc GCC_PCIE1_AHB_CLK>, + <&gcc GCC_PCIE1_PIPE_CLK>; + clock-names = "aux", "cfg_ahb", "pipe"; + + assigned-clocks = <&gcc GCC_PCIE1_AUX_CLK>; + assigned-clock-rates = <20000000>; + + resets = <&gcc GCC_PCIE1_PHY_BCR>, + <&gcc GCC_PCIE1PHY_PHY_BCR>; + reset-names = "phy", "common"; + + #clock-cells = <0>; + clock-output-names = "gcc_pcie1_pipe_clk_src"; + + #phy-cells = <0>; + status = "disabled"; + }; + + pcie2_phy: phy@f4000 { + compatible = "qcom,ipq5424-qmp-gen3x2-pcie-phy", + "qcom,ipq9574-qmp-gen3x2-pcie-phy"; + reg = <0x0 0x000f4000 0x0 0x2000>; + clocks = <&gcc GCC_PCIE2_AUX_CLK>, + <&gcc GCC_PCIE2_AHB_CLK>, + <&gcc GCC_PCIE2_PIPE_CLK>; + clock-names = "aux", "cfg_ahb", "pipe"; + + assigned-clocks = <&gcc GCC_PCIE2_AUX_CLK>; + assigned-clock-rates = <20000000>; + + resets = <&gcc GCC_PCIE2_PHY_BCR>, + <&gcc GCC_PCIE2PHY_PHY_BCR>; + reset-names = "phy", "common"; + + #clock-cells = <0>; + clock-output-names = "gcc_pcie2_pipe_clk_src"; + + #phy-cells = <0>; + status = "disabled"; + }; + + pcie3_phy: phy@fc000 { + compatible = "qcom,ipq5424-qmp-gen3x2-pcie-phy", + "qcom,ipq9574-qmp-gen3x2-pcie-phy"; + reg = <0x0 0x000fc000 0x0 0x2000>; + clocks = <&gcc GCC_PCIE3_AUX_CLK>, + <&gcc GCC_PCIE3_AHB_CLK>, + <&gcc GCC_PCIE3_PIPE_CLK>; + clock-names = "aux", "cfg_ahb", "pipe"; + + assigned-clocks = <&gcc GCC_PCIE3_AUX_CLK>; + assigned-clock-rates = <20000000>; + + resets = <&gcc GCC_PCIE3_PHY_BCR>, + <&gcc GCC_PCIE3PHY_PHY_BCR>; + reset-names = "phy", "common"; + + #clock-cells = <0>; + clock-output-names = "gcc_pcie3_pipe_clk_src"; + + #phy-cells = <0>; + status = "disabled"; + }; + rng: rng@4c3000 { compatible = "qcom,ipq5424-trng", "qcom,trng"; reg = <0 0x004c3000 0 0x1000>; @@ -189,14 +283,14 @@ gcc: clock-controller@1800000 { reg = <0 0x01800000 0 0x40000>; clocks = <&xo_board>, <&sleep_clk>, - <0>, - <0>, - <0>, - <0>, + <&pcie0_phy>, + <&pcie1_phy>, + <&pcie2_phy>, + <&pcie3_phy>, <0>; #clock-cells = <1>; #reset-cells = <1>; - #interconnect-cells = <1>; + #interconnect-cells = <2>; }; tcsr_mutex: hwlock@1905000 { @@ -506,6 +600,418 @@ frame@f42d000 { }; }; + pcie3: pcie@40000000 { + compatible = "qcom,pcie-ipq5424", "qcom,pcie-ipq9574"; + reg = <0x0 0x40000000 0x0 0xf1d>, + <0x0 0x40000f20 0x0 0xa8>, + <0x0 0x40001000 0x0 0x1000>, + <0x0 0x000f8000 0x0 0x3000>, + <0x0 0x40100000 0x0 0x1000>; + reg-names = "dbi", + "elbi", + "atu", + "parf", + "config"; + device_type = "pci"; + linux,pci-domain = <3>; + bus-range = <0x00 0xff>; + num-lanes = <2>; + #address-cells = <3>; + #size-cells = <2>; + + ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x00100000>, + <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x0fd00000>; + interrupts = <GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 475 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 476 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 477 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 478 IRQ_TYPE_LEVEL_HIGH>; + + interrupt-names = "msi0", + "msi1", + "msi2", + "msi3", + "msi4", + "msi5", + "msi6", + "msi7", + "global"; + + #interrupt-cells = <1>; + interrupt-map-mask = <0x0 0x0 0x0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 479 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 2 &intc 0 480 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 3 &intc 0 481 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 4 &intc 0 482 IRQ_TYPE_LEVEL_HIGH>; + + clocks = <&gcc GCC_PCIE3_AXI_M_CLK>, + <&gcc GCC_PCIE3_AXI_S_CLK>, + <&gcc GCC_PCIE3_AXI_S_BRIDGE_CLK>, + <&gcc GCC_PCIE3_RCHNG_CLK>, + <&gcc GCC_PCIE3_AHB_CLK>, + <&gcc GCC_PCIE3_AUX_CLK>; + clock-names = "axi_m", + "axi_s", + "axi_bridge", + "rchng", + "ahb", + "aux"; + + assigned-clocks = <&gcc GCC_PCIE3_RCHNG_CLK>; + assigned-clock-rates = <100000000>; + + resets = <&gcc GCC_PCIE3_PIPE_ARES>, + <&gcc GCC_PCIE3_CORE_STICKY_RESET>, + <&gcc GCC_PCIE3_AXI_S_STICKY_RESET>, + <&gcc GCC_PCIE3_AXI_S_ARES>, + <&gcc GCC_PCIE3_AXI_M_STICKY_RESET>, + <&gcc GCC_PCIE3_AXI_M_ARES>, + <&gcc GCC_PCIE3_AUX_ARES>, + <&gcc GCC_PCIE3_AHB_ARES>; + reset-names = "pipe", + "sticky", + "axi_s_sticky", + "axi_s", + "axi_m_sticky", + "axi_m", + "aux", + "ahb"; + + msi-map = <0x0 &intc 0x0 0x1000>; + + phys = <&pcie3_phy>; + phy-names = "pciephy"; + interconnects = <&gcc MASTER_ANOC_PCIE3 QCOM_ICC_TAG_ALWAYS + &gcc SLAVE_ANOC_PCIE3 QCOM_ICC_TAG_ALWAYS>, + <&gcc MASTER_CNOC_PCIE3 QCOM_ICC_TAG_ALWAYS + &gcc SLAVE_CNOC_PCIE3 QCOM_ICC_TAG_ALWAYS>; + interconnect-names = "pcie-mem", "cpu-pcie"; + + status = "disabled"; + + pcie@0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + bus-range = <0x01 0xff>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + }; + }; + + pcie2: pcie@50000000 { + compatible = "qcom,pcie-ipq5424", "qcom,pcie-ipq9574"; + reg = <0x0 0x50000000 0x0 0xf1d>, + <0x0 0x50000f20 0x0 0xa8>, + <0x0 0x50001000 0x0 0x1000>, + <0x0 0x000f0000 0x0 0x3000>, + <0x0 0x50100000 0x0 0x1000>; + reg-names = "dbi", + "elbi", + "atu", + "parf", + "config"; + device_type = "pci"; + linux,pci-domain = <2>; + bus-range = <0x00 0xff>; + num-lanes = <2>; + #address-cells = <3>; + #size-cells = <2>; + + ranges = <0x01000000 0x0 0x00000000 0x0 0x50200000 0x0 0x00100000>, + <0x02000000 0x0 0x50300000 0x0 0x50300000 0x0 0x0fd00000>; + interrupts = <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "msi0", + "msi1", + "msi2", + "msi3", + "msi4", + "msi5", + "msi6", + "msi7", + "global"; + + #interrupt-cells = <1>; + interrupt-map-mask = <0x0 0x0 0x0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 464 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 2 &intc 0 465 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 3 &intc 0 466 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 4 &intc 0 467 IRQ_TYPE_LEVEL_HIGH>; + + clocks = <&gcc GCC_PCIE2_AXI_M_CLK>, + <&gcc GCC_PCIE2_AXI_S_CLK>, + <&gcc GCC_PCIE2_AXI_S_BRIDGE_CLK>, + <&gcc GCC_PCIE2_RCHNG_CLK>, + <&gcc GCC_PCIE2_AHB_CLK>, + <&gcc GCC_PCIE2_AUX_CLK>; + clock-names = "axi_m", + "axi_s", + "axi_bridge", + "rchng", + "ahb", + "aux"; + + assigned-clocks = <&gcc GCC_PCIE2_RCHNG_CLK>; + assigned-clock-rates = <100000000>; + + resets = <&gcc GCC_PCIE2_PIPE_ARES>, + <&gcc GCC_PCIE2_CORE_STICKY_RESET>, + <&gcc GCC_PCIE2_AXI_S_STICKY_RESET>, + <&gcc GCC_PCIE2_AXI_S_ARES>, + <&gcc GCC_PCIE2_AXI_M_STICKY_RESET>, + <&gcc GCC_PCIE2_AXI_M_ARES>, + <&gcc GCC_PCIE2_AUX_ARES>, + <&gcc GCC_PCIE2_AHB_ARES>; + reset-names = "pipe", + "sticky", + "axi_s_sticky", + "axi_s", + "axi_m_sticky", + "axi_m", + "aux", + "ahb"; + + msi-map = <0x0 &intc 0x0 0x1000>; + + phys = <&pcie2_phy>; + phy-names = "pciephy"; + interconnects = <&gcc MASTER_ANOC_PCIE2 QCOM_ICC_TAG_ALWAYS + &gcc SLAVE_ANOC_PCIE2 QCOM_ICC_TAG_ALWAYS>, + <&gcc MASTER_CNOC_PCIE2 QCOM_ICC_TAG_ALWAYS + &gcc SLAVE_CNOC_PCIE2 QCOM_ICC_TAG_ALWAYS>; + interconnect-names = "pcie-mem", "cpu-pcie"; + + status = "disabled"; + + pcie@0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + bus-range = <0x01 0xff>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + }; + }; + + pcie1: pcie@60000000 { + compatible = "qcom,pcie-ipq5424", "qcom,pcie-ipq9574"; + reg = <0x0 0x60000000 0x0 0xf1d>, + <0x0 0x60000f20 0x0 0xa8>, + <0x0 0x60001000 0x0 0x1000>, + <0x0 0x00088000 0x0 0x3000>, + <0x0 0x60100000 0x0 0x1000>; + reg-names = "dbi", + "elbi", + "atu", + "parf", + "config"; + device_type = "pci"; + linux,pci-domain = <1>; + bus-range = <0x00 0xff>; + num-lanes = <1>; + #address-cells = <3>; + #size-cells = <2>; + + ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x00100000>, + <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x0fd00000>; + interrupts = <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 448 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "msi0", + "msi1", + "msi2", + "msi3", + "msi4", + "msi5", + "msi6", + "msi7", + "global"; + + #interrupt-cells = <1>; + interrupt-map-mask = <0x0 0x0 0x0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 449 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 2 &intc 0 450 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 3 &intc 0 451 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 4 &intc 0 452 IRQ_TYPE_LEVEL_HIGH>; + + clocks = <&gcc GCC_PCIE1_AXI_M_CLK>, + <&gcc GCC_PCIE1_AXI_S_CLK>, + <&gcc GCC_PCIE1_AXI_S_BRIDGE_CLK>, + <&gcc GCC_PCIE1_RCHNG_CLK>, + <&gcc GCC_PCIE1_AHB_CLK>, + <&gcc GCC_PCIE1_AUX_CLK>; + clock-names = "axi_m", + "axi_s", + "axi_bridge", + "rchng", + "ahb", + "aux"; + + assigned-clocks = <&gcc GCC_PCIE1_RCHNG_CLK>; + assigned-clock-rates = <100000000>; + + resets = <&gcc GCC_PCIE1_PIPE_ARES>, + <&gcc GCC_PCIE1_CORE_STICKY_RESET>, + <&gcc GCC_PCIE1_AXI_S_STICKY_RESET>, + <&gcc GCC_PCIE1_AXI_S_ARES>, + <&gcc GCC_PCIE1_AXI_M_STICKY_RESET>, + <&gcc GCC_PCIE1_AXI_M_ARES>, + <&gcc GCC_PCIE1_AUX_ARES>, + <&gcc GCC_PCIE1_AHB_ARES>; + reset-names = "pipe", + "sticky", + "axi_s_sticky", + "axi_s", + "axi_m_sticky", + "axi_m", + "aux", + "ahb"; + + msi-map = <0x0 &intc 0x0 0x1000>; + + phys = <&pcie1_phy>; + phy-names = "pciephy"; + interconnects = <&gcc MASTER_ANOC_PCIE1 QCOM_ICC_TAG_ALWAYS + &gcc SLAVE_ANOC_PCIE1 QCOM_ICC_TAG_ALWAYS>, + <&gcc MASTER_CNOC_PCIE1 QCOM_ICC_TAG_ALWAYS + &gcc SLAVE_CNOC_PCIE1 QCOM_ICC_TAG_ALWAYS>; + interconnect-names = "pcie-mem", "cpu-pcie"; + + status = "disabled"; + + pcie@0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + bus-range = <0x01 0xff>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + }; + }; + + pcie0: pcie@70000000 { + compatible = "qcom,pcie-ipq5424", "qcom,pcie-ipq9574"; + reg = <0x0 0x70000000 0x0 0xf1d>, + <0x0 0x70000f20 0x0 0xa8>, + <0x0 0x70001000 0x0 0x1000>, + <0x0 0x00080000 0x0 0x3000>, + <0x0 0x70100000 0x0 0x1000>; + reg-names = "dbi", + "elbi", + "atu", + "parf", + "config"; + device_type = "pci"; + linux,pci-domain = <0>; + bus-range = <0x00 0xff>; + num-lanes = <1>; + #address-cells = <3>; + #size-cells = <2>; + + ranges = <0x01000000 0x0 0x00000000 0x0 0x70200000 0x0 0x00100000>, + <0x02000000 0x0 0x70300000 0x0 0x70300000 0x0 0x0fd00000>; + interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 432 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 433 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "msi0", + "msi1", + "msi2", + "msi3", + "msi4", + "msi5", + "msi6", + "msi7", + "global"; + + #interrupt-cells = <1>; + interrupt-map-mask = <0x0 0x0 0x0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 434 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 2 &intc 0 435 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 3 &intc 0 436 IRQ_TYPE_LEVEL_HIGH>, + <0 0 0 4 &intc 0 437 IRQ_TYPE_LEVEL_HIGH>; + + clocks = <&gcc GCC_PCIE0_AXI_M_CLK>, + <&gcc GCC_PCIE0_AXI_S_CLK>, + <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>, + <&gcc GCC_PCIE0_RCHNG_CLK>, + <&gcc GCC_PCIE0_AHB_CLK>, + <&gcc GCC_PCIE0_AUX_CLK>; + clock-names = "axi_m", + "axi_s", + "axi_bridge", + "rchng", + "ahb", + "aux"; + + assigned-clocks = <&gcc GCC_PCIE0_RCHNG_CLK>; + assigned-clock-rates = <100000000>; + + resets = <&gcc GCC_PCIE0_PIPE_ARES>, + <&gcc GCC_PCIE0_CORE_STICKY_RESET>, + <&gcc GCC_PCIE0_AXI_S_STICKY_RESET>, + <&gcc GCC_PCIE0_AXI_S_ARES>, + <&gcc GCC_PCIE0_AXI_M_STICKY_RESET>, + <&gcc GCC_PCIE0_AXI_M_ARES>, + <&gcc GCC_PCIE0_AUX_ARES>, + <&gcc GCC_PCIE0_AHB_ARES>; + reset-names = "pipe", + "sticky", + "axi_s_sticky", + "axi_s", + "axi_m_sticky", + "axi_m", + "aux", + "ahb"; + + msi-map = <0x0 &intc 0x0 0x1000>; + + phys = <&pcie0_phy>; + phy-names = "pciephy"; + interconnects = <&gcc MASTER_ANOC_PCIE0 QCOM_ICC_TAG_ALWAYS + &gcc SLAVE_ANOC_PCIE0 QCOM_ICC_TAG_ALWAYS>, + <&gcc MASTER_CNOC_PCIE0 QCOM_ICC_TAG_ALWAYS + &gcc SLAVE_CNOC_PCIE0 QCOM_ICC_TAG_ALWAYS>; + interconnect-names = "pcie-mem", "cpu-pcie"; + + status = "disabled"; + + pcie@0 { + device_type = "pci"; + reg = <0x0 0x0 0x0 0x0 0x0>; + bus-range = <0x01 0xff>; + + #address-cells = <3>; + #size-cells = <2>; + ranges; + }; + }; }; timer { -- 2.34.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v3 3/4] arm64: dts: qcom: ipq5424: Add PCIe PHYs and controller nodes 2025-01-25 3:59 ` [PATCH v3 3/4] arm64: dts: qcom: ipq5424: Add PCIe PHYs and controller nodes Manikanta Mylavarapu @ 2025-01-28 11:38 ` Konrad Dybcio 2025-01-30 6:57 ` Manikanta Mylavarapu 0 siblings, 1 reply; 16+ messages in thread From: Konrad Dybcio @ 2025-01-28 11:38 UTC (permalink / raw) To: Manikanta Mylavarapu, andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci Cc: quic_srichara, quic_varada On 25.01.2025 4:59 AM, Manikanta Mylavarapu wrote: > Add PCIe0, PCIe1, PCIe2, PCIe3 (and corresponding PHY) devices > found on IPQ5424 platform. The PCIe0 & PCIe1 are 1-lane Gen3 > host whereas PCIe2 & PCIe3 are 2-lane Gen3 host. > > Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> > --- > Changes in V3: > - Replace all instances of ‘0’ with ‘0x0’ wherever applicable in > PCIe nodes. > - Place both compatible entries in a single line for each PCIe > controller node. > - Global interrupt is defined for each PCIe controller node. > - Remove all clocks except the RCHNG clock from the assigned-clocks. > - ICC tag is defined for the interconnect path of each pcie controller > node. This one is wrong, please undo.. Konrad ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 3/4] arm64: dts: qcom: ipq5424: Add PCIe PHYs and controller nodes 2025-01-28 11:38 ` Konrad Dybcio @ 2025-01-30 6:57 ` Manikanta Mylavarapu 0 siblings, 0 replies; 16+ messages in thread From: Manikanta Mylavarapu @ 2025-01-30 6:57 UTC (permalink / raw) To: Konrad Dybcio, andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci Cc: quic_srichara, quic_varada On 1/28/2025 5:08 PM, Konrad Dybcio wrote: > On 25.01.2025 4:59 AM, Manikanta Mylavarapu wrote: >> Add PCIe0, PCIe1, PCIe2, PCIe3 (and corresponding PHY) devices >> found on IPQ5424 platform. The PCIe0 & PCIe1 are 1-lane Gen3 >> host whereas PCIe2 & PCIe3 are 2-lane Gen3 host. >> >> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> >> --- >> Changes in V3: >> - Replace all instances of ‘0’ with ‘0x0’ wherever applicable in >> PCIe nodes. >> - Place both compatible entries in a single line for each PCIe >> controller node. >> - Global interrupt is defined for each PCIe controller node. >> - Remove all clocks except the RCHNG clock from the assigned-clocks. >> - ICC tag is defined for the interconnect path of each pcie controller >> node. > > This one is wrong, please undo.. Okay, sure. Thanks & Regards, Manikanta. ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v3 4/4] arm64: dts: qcom: ipq5424: Enable PCIe PHYs and controllers 2025-01-25 3:59 [PATCH v3 0/4] Add PCIe support for IPQ5424 Manikanta Mylavarapu ` (2 preceding siblings ...) 2025-01-25 3:59 ` [PATCH v3 3/4] arm64: dts: qcom: ipq5424: Add PCIe PHYs and controller nodes Manikanta Mylavarapu @ 2025-01-25 3:59 ` Manikanta Mylavarapu 2025-01-28 11:39 ` Konrad Dybcio 3 siblings, 1 reply; 16+ messages in thread From: Manikanta Mylavarapu @ 2025-01-25 3:59 UTC (permalink / raw) To: andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci Cc: quic_srichara, quic_varada Enable the PCIe controller and PHY nodes corresponding to RDP466. Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> --- Changes in V3: - No change. arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts | 41 ++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts index b6e4bb3328b3..73e6b38ecc26 100644 --- a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts +++ b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts @@ -53,6 +53,30 @@ &dwc_1 { dr_mode = "host"; }; +&pcie2 { + pinctrl-0 = <&pcie2_default_state>; + pinctrl-names = "default"; + + perst-gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; + status = "okay"; +}; + +&pcie2_phy { + status = "okay"; +}; + +&pcie3 { + pinctrl-0 = <&pcie3_default_state>; + pinctrl-names = "default"; + + perst-gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; + status = "okay"; +}; + +&pcie3_phy { + status = "okay"; +}; + &qusb_phy_0 { vdd-supply = <&vreg_misc_0p925>; vdda-pll-supply = <&vreg_misc_1p8>; @@ -147,6 +171,22 @@ data-pins { bias-pull-up; }; }; + + pcie2_default_state: pcie2-default-state { + pins = "gpio31"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + output-low; + }; + + pcie3_default_state: pcie3-default-state { + pins = "gpio34"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + output-low; + }; }; &uart1 { @@ -166,4 +206,3 @@ &usb3 { &xo_board { clock-frequency = <24000000>; }; - -- 2.34.1 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v3 4/4] arm64: dts: qcom: ipq5424: Enable PCIe PHYs and controllers 2025-01-25 3:59 ` [PATCH v3 4/4] arm64: dts: qcom: ipq5424: Enable PCIe PHYs and controllers Manikanta Mylavarapu @ 2025-01-28 11:39 ` Konrad Dybcio 2025-01-29 10:11 ` Manikanta Mylavarapu 0 siblings, 1 reply; 16+ messages in thread From: Konrad Dybcio @ 2025-01-28 11:39 UTC (permalink / raw) To: Manikanta Mylavarapu, andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci Cc: quic_srichara, quic_varada On 25.01.2025 4:59 AM, Manikanta Mylavarapu wrote: > Enable the PCIe controller and PHY nodes corresponding to RDP466. > > Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> > --- > Changes in V3: > - No change. > > arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts | 41 ++++++++++++++++++++- > 1 file changed, 40 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts > index b6e4bb3328b3..73e6b38ecc26 100644 > --- a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts > +++ b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts > @@ -53,6 +53,30 @@ &dwc_1 { > dr_mode = "host"; > }; > > +&pcie2 { > + pinctrl-0 = <&pcie2_default_state>; > + pinctrl-names = "default"; > + > + perst-gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; > + status = "okay"; Please add a new line before 'status' > +}; > + > +&pcie2_phy { > + status = "okay"; > +}; > + > +&pcie3 { > + pinctrl-0 = <&pcie3_default_state>; > + pinctrl-names = "default"; > + > + perst-gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; > + status = "okay"; > +}; > + > +&pcie3_phy { > + status = "okay"; > +}; > + > &qusb_phy_0 { > vdd-supply = <&vreg_misc_0p925>; > vdda-pll-supply = <&vreg_misc_1p8>; > @@ -147,6 +171,22 @@ data-pins { > bias-pull-up; > }; > }; > + > + pcie2_default_state: pcie2-default-state { > + pins = "gpio31"; > + function = "gpio"; > + drive-strength = <8>; > + bias-pull-up; > + output-low; > + }; > + > + pcie3_default_state: pcie3-default-state { > + pins = "gpio34"; > + function = "gpio"; > + drive-strength = <8>; > + bias-pull-up; > + output-low; The GPIO APIs are in control of in/out state instead, please remove the last property from both entries Konrad ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 4/4] arm64: dts: qcom: ipq5424: Enable PCIe PHYs and controllers 2025-01-28 11:39 ` Konrad Dybcio @ 2025-01-29 10:11 ` Manikanta Mylavarapu 0 siblings, 0 replies; 16+ messages in thread From: Manikanta Mylavarapu @ 2025-01-29 10:11 UTC (permalink / raw) To: Konrad Dybcio, andersson, mturquette, sboyd, robh, krzk+dt, conor+dt, lpieralisi, kw, manivannan.sadhasivam, bhelgaas, konradybcio, linux-arm-msm, linux-clk, devicetree, linux-kernel, linux-pci Cc: quic_srichara, quic_varada On 1/28/2025 5:09 PM, Konrad Dybcio wrote: > On 25.01.2025 4:59 AM, Manikanta Mylavarapu wrote: >> Enable the PCIe controller and PHY nodes corresponding to RDP466. >> >> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com> >> --- >> Changes in V3: >> - No change. >> >> arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts | 41 ++++++++++++++++++++- >> 1 file changed, 40 insertions(+), 1 deletion(-) >> >> diff --git a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts >> index b6e4bb3328b3..73e6b38ecc26 100644 >> --- a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts >> +++ b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts >> @@ -53,6 +53,30 @@ &dwc_1 { >> dr_mode = "host"; >> }; >> >> +&pcie2 { >> + pinctrl-0 = <&pcie2_default_state>; >> + pinctrl-names = "default"; >> + >> + perst-gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; >> + status = "okay"; > > Please add a new line before 'status' > Okay, sure. >> +}; >> + >> +&pcie2_phy { >> + status = "okay"; >> +}; >> + >> +&pcie3 { >> + pinctrl-0 = <&pcie3_default_state>; >> + pinctrl-names = "default"; >> + >> + perst-gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; >> + status = "okay"; >> +}; >> + >> +&pcie3_phy { >> + status = "okay"; >> +}; >> + >> &qusb_phy_0 { >> vdd-supply = <&vreg_misc_0p925>; >> vdda-pll-supply = <&vreg_misc_1p8>; >> @@ -147,6 +171,22 @@ data-pins { >> bias-pull-up; >> }; >> }; >> + >> + pcie2_default_state: pcie2-default-state { >> + pins = "gpio31"; >> + function = "gpio"; >> + drive-strength = <8>; >> + bias-pull-up; >> + output-low; >> + }; >> + >> + pcie3_default_state: pcie3-default-state { >> + pins = "gpio34"; >> + function = "gpio"; >> + drive-strength = <8>; >> + bias-pull-up; >> + output-low; > > The GPIO APIs are in control of in/out state instead, please remove the > last property from both entries Okay, sure. Thanks & Regards, Manikanta. ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2025-01-30 6:58 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-01-25 3:59 [PATCH v3 0/4] Add PCIe support for IPQ5424 Manikanta Mylavarapu 2025-01-25 3:59 ` [PATCH v3 1/4] dt-bindings: PCI: qcom: add global interrupt for ipq5424 Manikanta Mylavarapu 2025-01-27 7:25 ` Krzysztof Kozlowski 2025-01-28 7:00 ` Manikanta Mylavarapu 2025-01-28 7:30 ` Krzysztof Kozlowski 2025-01-25 3:59 ` [PATCH v3 2/4] dt-bindings: clock: update interconnect cells " Manikanta Mylavarapu 2025-01-27 7:27 ` Krzysztof Kozlowski 2025-01-28 7:12 ` Manikanta Mylavarapu 2025-01-28 11:26 ` Konrad Dybcio 2025-01-30 6:56 ` Manikanta Mylavarapu 2025-01-25 3:59 ` [PATCH v3 3/4] arm64: dts: qcom: ipq5424: Add PCIe PHYs and controller nodes Manikanta Mylavarapu 2025-01-28 11:38 ` Konrad Dybcio 2025-01-30 6:57 ` Manikanta Mylavarapu 2025-01-25 3:59 ` [PATCH v3 4/4] arm64: dts: qcom: ipq5424: Enable PCIe PHYs and controllers Manikanta Mylavarapu 2025-01-28 11:39 ` Konrad Dybcio 2025-01-29 10:11 ` Manikanta Mylavarapu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox