[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20251015030428.2980427-1-hongxing.zhu@nxp.com>
Date: Wed, 15 Oct 2025 11:04:17 +0800
From: Richard Zhu <hongxing.zhu@....com>
To: frank.li@....com,
l.stach@...gutronix.de,
lpieralisi@...nel.org,
kwilczynski@...nel.org,
mani@...nel.org,
robh@...nel.org,
krzk+dt@...nel.org,
conor+dt@...nel.org,
bhelgaas@...gle.com,
shawnguo@...nel.org,
s.hauer@...gutronix.de,
kernel@...gutronix.de,
festevam@...il.com
Cc: linux-pci@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
devicetree@...r.kernel.org,
imx@...ts.linux.dev,
linux-kernel@...r.kernel.org
Subject: [PATCH v6 0/11] PCI: imx6: Add a method to handle CLKREQ# override
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
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(-)
Powered by blists - more mailing lists