linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Workaround for IMX7d PCI-e PLL lock failure
@ 2018-07-18 19:44 Trent Piepho
  2018-07-18 19:44 ` [PATCH 1/2] ARM: dts: imx7d: Add node for PCIe PHY Trent Piepho
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Trent Piepho @ 2018-07-18 19:44 UTC (permalink / raw)
  To: linux-arm-kernel

This is the workaround for the IMX7d Erratum e10728, failure of
initialize PCIe PLL VCO oscillation resulting in PLL lock failure and
failure of the PCI-e link to come up.

The registers used in the workaround are based on the latest patch in
the NXP kernel, but many things around that have been changed.

This uses a new node of type fsl,imx-pcie-phy to get the PHY's
registers.  The node is found via a phandle added to the PCI-e
controller's node, rather than the incorrect way done in the NXP kernel.

There is no error if the phandle is not preset (since it's needed except
for the imx7d workaround and no existing dtses have it), but if preset
it is an error if something relating to it does not work.

** Should the node be fsl,imx7d-pcie-phy?  snps,dw-pcie-phy?  

There is little to no documenation from NXP and Synopsis about this, so I'm
unsure of the PHY's lineage.

The imx6 PCI-e driver does not use the generic phy layer to interact
with the PHY.  It appears PHY related hardware, like clocks, regulators,
and resets, are part of the fsl,imx6q-pcie node.  But again, the
topology of this hardware is not documented very well.

Another approach would be to add the PHY registers as another bank in
the PCI-e node.  This would match how the PHY reset, clock, etc.  are
done.  However, the PHY is attached to a different AXI master than the
PCI-e controller, so the register range really does not belong there.

Trent Piepho (2):
  ARM: dts: imx7d: Add node for PCIe PHY
  PCI: imx: Add workaround for e10728, IMX7d PCIe PLL failure

 .../devicetree/bindings/pci/fsl,imx6q-pcie.txt     | 11 ++++
 arch/arm/boot/dts/imx7d.dtsi                       |  9 ++++
 drivers/pci/dwc/pci-imx6.c                         | 59 ++++++++++++++++++++++
 3 files changed, 79 insertions(+)

Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Richard Zhu <hongxing.zhu@nxp.com>
Cc: Lucas Stach <l.stach@pengutronix.de>

-- 
2.14.4

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-09-17 10:13 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-18 19:44 [PATCH 0/2] Workaround for IMX7d PCI-e PLL lock failure Trent Piepho
2018-07-18 19:44 ` [PATCH 1/2] ARM: dts: imx7d: Add node for PCIe PHY Trent Piepho
2018-07-19  3:24   ` Shawn Guo
2018-08-01 10:39   ` Lucas Stach
2018-08-01 17:33     ` Trent Piepho
2018-08-02  0:43       ` Richard Zhu
2018-08-02  6:55         ` Lucas Stach
2018-07-18 19:44 ` [PATCH 2/2] PCI: imx: Add workaround for e10728, IMX7d PCIe PLL failure Trent Piepho
2018-08-01 10:44   ` Lucas Stach
2018-08-01 10:47 ` [PATCH 0/2] Workaround for IMX7d PCI-e PLL lock failure Lucas Stach
2018-09-17 10:13 ` Lorenzo Pieralisi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).