Re: [PATCH 2/9] arm64: dts: qcom: ipq8074: fix Gen3 PCIe QMP PHY

From: Robert Marko
Date: Tue Dec 06 2022 - 04:56:03 EST


On Mon, 5 Dec 2022 at 22:52, Bjorn Andersson <andersson@xxxxxxxxxx> wrote:
>
> On Wed, Nov 16, 2022 at 10:48:34PM +0100, Robert Marko wrote:
> > IPQ8074 comes in 2 silicon versions:
> > * v1 with 2x Gen2 PCIe ports and QMP PHY-s
> > * v2 with 1x Gen3 and 1x Gen2 PCIe ports and QMP PHY-s
> >
> > v2 is the final and production version that is actually supported by the
> > kernel, however it looks like PCIe related nodes were added for the v1 SoC.
> >
> > Now that we have Gen3 QMP PHY support, we can start fixing the PCIe support
> > by fixing the Gen3 QMP PHY node first.
> >
> > Change the compatible to the Gen3 QMP PHY, correct the register space start
> > and size, add the missing misc PCS register space.
> >
>
> Does this imply that the current node doesn't actually work?

Hi Bjorn,
Yes, the node is for a completely different PHY generation, basically
PCIe on IPQ8074
is completely broken, hence this patch series.

>
> If that's the case, could we perhaps adopt Johan Hovolds' new binding
> and drop the subnode in favor of just a flat reg covering the whole
> QMP region?

I have not seen that so far, any examples?

Regards,
Robert
>
> Regards,
> Bjorn
>
> > Fixes: 33057e1672fe ("ARM: dts: ipq8074: Add pcie nodes")
> > Signed-off-by: Robert Marko <robimarko@xxxxxxxxx>
> > ---
> > arch/arm64/boot/dts/qcom/ipq8074.dtsi | 15 ++++++++-------
> > 1 file changed, 8 insertions(+), 7 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/ipq8074.dtsi b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
> > index 6649a758d8df..9503dfb25d50 100644
> > --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
> > @@ -232,9 +232,9 @@ qusb_phy_0: phy@79000 {
> > status = "disabled";
> > };
> >
> > - pcie_qmp0: phy@86000 {
> > - compatible = "qcom,ipq8074-qmp-pcie-phy";
> > - reg = <0x00086000 0x1c4>;
> > + pcie_qmp0: phy@84000 {
> > + compatible = "qcom,ipq8074-qmp-gen3-pcie-phy";
> > + reg = <0x00084000 0x1bc>;
> > #address-cells = <1>;
> > #size-cells = <1>;
> > ranges;
> > @@ -248,10 +248,11 @@ pcie_qmp0: phy@86000 {
> > "common";
> > status = "disabled";
> >
> > - pcie_phy0: phy@86200 {
> > - reg = <0x86200 0x16c>,
> > - <0x86400 0x200>,
> > - <0x86800 0x4f4>;
> > + pcie_phy0: phy@84200 {
> > + reg = <0x84200 0x16c>,
> > + <0x84400 0x200>,
> > + <0x84800 0x1f0>,
> > + <0x84c00 0xf4>;
> > #phy-cells = <0>;
> > #clock-cells = <0>;
> > clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
> > --
> > 2.38.1
> >