]> git.ipfire.org Git - thirdparty/kernel/linux.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)
committerManivannan Sadhasivam <mani@kernel.org>
Wed, 21 Jan 2026 07:39:35 +0000 (13:09 +0530)
commit27a064aba2da6bc58fc36a6b8e889187ae3bf89d
treec1653c185a52b79d77bebadcb396347557b54127
parentc577ce2881f9c76892de5ffc1a122e3ef427ecee
PCI: imx6: Add CLKREQ# override to enable REFCLK for i.MX95 PCIe

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
drivers/pci/controller/dwc/pci-imx6.c