]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
PCI: imx6: Add CLKREQ# override to enable REFCLK for i.MX95 PCIe
authorRichard Zhu <hongxing.zhu@nxp.com>
Wed, 15 Oct 2025 03:04:27 +0000 (11:04 +0800)
committerSasha Levin <sashal@kernel.org>
Wed, 4 Mar 2026 12:20:26 +0000 (07:20 -0500)
commit59bbe3e4ae151b6f1b98dd3917c7260a36d22fbf
treeb48eae0352a9684106efe02d2fd2d78f387be367
parentd4e18022a59a78407c5b308d7f12cc3c96f61e17
PCI: imx6: Add CLKREQ# override to enable REFCLK for i.MX95 PCIe

[ Upstream commit 27a064aba2da6bc58fc36a6b8e889187ae3bf89d ]

The CLKREQ# is an open drain, active low signal that is driven low by
the card to request reference clock. It's an optional signal added in
PCIe CEM r4.0, sec 2. Thus, this signal wouldn't be driven low if it's
not exposed on the slot.

On the i.MX95 EVK board, REFCLK to the host and endpoint is gated by this
CLKREQ# signal. So if the CLKREQ# signal is not driven by the endpoint, it
will gate the REFCLK to host too, leading to operational failure.

Hence, enable the REFCLK on this SoC by enabling the CLKREQ# override using
imx95_pcie_clkreq_override() helper during probe. This override should only
be cleared when the CLKREQ# signal is exposed on the slot.

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
[mani: reworded description]
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20251015030428.2980427-11-hongxing.zhu@nxp.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pci/controller/dwc/pci-imx6.c