[PATCH v5 0/2] PCI: imx6: Add a method to handle CLKREQ# override
From: Richard Zhu <hongxing.zhu@nxp.com>
Date: 2025-09-23 07:40:12
Also in:
imx, linux-pci, lkml
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 reserved. Since the reference clock controlled by CLKREQ# may be required by i.MX PCIe host too. To make sure this clock is ready even when the CLKREQ# isn't driven low by the card(e.x the scenario described above), force CLKREQ# override active low for i.MX PCIe host during initialization. The CLKREQ# override can be cleared safely when supports-clkreq is present and PCIe link is up later. Because the CLKREQ# would be driven low by the card at this time. Main changes in v5: - New create imx8mm_pcie_clkreq_override() and keep the original enable_ref_clk callback function. Main changes in v4: - To align the function name when add the CLKREQ# override clear, rename imx8mm_pcie_enable_ref_clk(), clean up codes refer to Mani' suggestions. Main changes in v3: - Rebase to v6.17-rc1. - Update the commit message refer to Bjorn's suggestions. Main changes in v2: - Update the commit message, and collect the reviewed-by tag. [PATCH v5 1/2] PCI: dwc: Invoke post_init in dw_pcie_resume_noirq() [PATCH v5 2/2] PCI: imx6: Add a method to handle CLKREQ# override drivers/pci/controller/dwc/pci-imx6.c | 43 ++++++++++++++++++++++++++++++++++++++++++- drivers/pci/controller/dwc/pcie-designware-host.c | 3 +++ 2 files changed, 45 insertions(+), 1 deletion(-)