[PATCH v1] PCI: imx6: Fix reference clock source selection
Hongxing Zhu
hongxing.zhu at nxp.com
Wed Mar 25 18:20:20 PDT 2026
> -----Original Message-----
> From: Franz Schnyder <fra.schnyder at gmail.com>
> Sent: 2026Äê3ÔÂ25ÈÕ 17:31
> To: Hongxing Zhu <hongxing.zhu at nxp.com>; Lucas Stach
> <l.stach at pengutronix.de>; Lorenzo Pieralisi <lpieralisi at kernel.org>;
> Krzysztof Wilczy¨½ski <kwilczynski at kernel.org>; Manivannan Sadhasivam
> <mani at kernel.org>; Rob Herring <robh at kernel.org>; Bjorn Helgaas
> <bhelgaas at google.com>; Frank Li <frank.li at nxp.com>; Sascha Hauer
> <s.hauer at pengutronix.de>; Pengutronix Kernel Team
> <kernel at pengutronix.de>; Fabio Estevam <festevam at gmail.com>
> Cc: Franz Schnyder <franz.schnyder at toradex.com>;
> linux-pci at vger.kernel.org; linux-arm-kernel at lists.infradead.org;
> imx at lists.linux.dev; linux-kernel at vger.kernel.org; Francesco Dolcini
> <francesco.dolcini at toradex.com>; stable at vger.kernel.org
> Subject: [PATCH v1] PCI: imx6: Fix reference clock source selection
>
> From: Franz Schnyder <franz.schnyder at toradex.com>
>
> In the PCIe PHY init for the iMX95, the reference clock source selection uses
> a conditional instead of always passing the mask. This currently breaks
> functionality if the internal refclk is used.
>
> Pass always IMX95_PCIE_REF_USE_PAD as the mask and clear the bit if
> external refclk is not used.
>
> Fixes: d8574ce57d76 ("PCI: imx6: Add external reference clock input mode
> support")
> Cc: stable at vger.kernel.org
> Signed-off-by: Franz Schnyder <franz.schnyder at toradex.com>
Apologies, I made an error when organizing the code.
This bug was not caught during local testing because the external OSC clock
input is permanently enabled on the EVK board.
Acked-by: Richard Zhu <hongxing.zhu at nxp.com>
Best Regards
Richard Zhu
> ---
> drivers/pci/controller/dwc/pci-imx6.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pci/controller/dwc/pci-imx6.c
> b/drivers/pci/controller/dwc/pci-imx6.c
> index 81a7093494c8..e0580d6efa57 100644
> --- a/drivers/pci/controller/dwc/pci-imx6.c
> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -268,8 +268,8 @@ static int imx95_pcie_init_phy(struct imx_pcie
> *imx_pcie)
> IMX95_PCIE_PHY_CR_PARA_SEL);
>
> regmap_update_bits(imx_pcie->iomuxc_gpr,
> IMX95_PCIE_PHY_GEN_CTRL,
> - ext ? IMX95_PCIE_REF_USE_PAD : 0,
> - IMX95_PCIE_REF_USE_PAD);
> + IMX95_PCIE_REF_USE_PAD,
> + ext ? IMX95_PCIE_REF_USE_PAD : 0);
> regmap_update_bits(imx_pcie->iomuxc_gpr, IMX95_PCIE_SS_RW_REG_0,
> IMX95_PCIE_REF_CLKEN,
> ext ? 0 : IMX95_PCIE_REF_CLKEN);
> --
> 2.43.0
More information about the linux-arm-kernel
mailing list