Re: [PATCH v6 0/11] PCI: imx6: Add a method to handle CLKREQ# override

Manivannan Sadhasivam
2026-01-06T12:54:29Z

On Wed, Oct 15, 2025 at 11:04:17AM +0800, Richard Zhu wrote:
> Clock Request is a reference clock request signal as defined by the PCIe
> Mini CEM and M.2 specification; Also used by L1 PM Substates. But it's
> an optional signal added in PCIe CEM r4.0, sec 2. The CLKREQ# support is
> relied on the exact hardware board and device designs.
>
> Add supports-clkreq property to i.MX PCIe M.2 port since the CLKREQ#
> signal would be driven active low on this M.2 connector by the add-in
> card to requtest reference clock. And, the host bridge driver can enable
> the ASPM L1 PM Substates support if this property present.
>
> To support L1 PM Substates, add a callback to clear CLKREQ# override on
> the boards that support CLKREQ# in the hardware designs.
>
> Main changes in v6:
> - Rebase to v6.18-rc1.
> - Add the dts changes into the v6 version patch-set.
> - Fix the i.MX95 refclk enable that was missed in the v5 series.
> - Make i.MX95 refclk enable parallel to the others.
> - Describe the potential CLKREQ# problem on i.MX95 19x19 EVK second
> slot in the commit, and emphasis the CLKREQ# issue is caused by the
> board and device hardware designs.
>
> 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 v6 01/11] arm64: dts: imx95-15x15-evk: Add supports-clkreq
> [PATCH v6 02/11] arm64: dts: imx95-19x19-evk: Add supports-clkreq
> [PATCH v6 03/11] arm64: dts: imx8mm-evk: Add supports-clkreq property
> [PATCH v6 04/11] arm64: dts: imx8mp-evk: Add supports-clkreq property
> [PATCH v6 05/11] arm64: dts: imx8mq-evk: Add supports-clkreq property
> [PATCH v6 06/11] arm64: dts: imx8qm-mek: Add supports-clkreq property
> [PATCH v6 07/11] arm64: dts: imx8qxp-mek: Add supports-clkreq
> [PATCH v6 08/11] PCI: dwc: Invoke post_init in dw_pcie_resume_noirq()
> [PATCH v6 09/11] PCI: imx6: Add a new imx8mm_pcie_clkreq_override()
> [PATCH v6 10/11] PCI: imx6: Add CLKREQ# override to enable REFCLK for
> [PATCH v6 11/11] PCI: imx6: Add a callback to clear CLKREQ# override

Squashed patch 9 with 11 and applied to controller/dwc-imx6, thanks!

- Mani

>
> arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi | 1 +
> arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 1 +
> arch/arm64/boot/dts/freescale/imx8mq-evk.dts | 2 ++
> arch/arm64/boot/dts/freescale/imx8qm-mek.dts | 1 +
> arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 1 +
> arch/arm64/boot/dts/freescale/imx95-15x15-evk.dts | 1 +
> arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts | 1 +
> drivers/pci/controller/dwc/pci-imx6.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
> drivers/pci/controller/dwc/pcie-designware-host.c | 3 +++
> 9 files changed, 60 insertions(+), 1 deletion(-)
>

--
மணிவண்ணன் சதாசிவம்