linux/drivers/phy
Stefan Eichenberger beb9a5cb7a phy: freescale: imx8m-pcie: assert phy reset and perst in power off
commit aecb63e88c upstream.

Ensure the PHY reset and perst is asserted during power-off to
guarantee it is in a reset state upon repeated power-on calls. This
resolves an issue where the PHY may not properly initialize during
subsequent power-on cycles. Power-on will deassert the reset at the
appropriate time after tuning the PHY parameters.

During suspend/resume cycles, we observed that the PHY PLL failed to
lock during resume when the CPU temperature increased from 65C to 75C.
The observed errors were:
  phy phy-32f00000.pcie-phy.3: phy poweron failed --> -110
  imx6q-pcie 33800000.pcie: waiting for PHY ready timeout!
  imx6q-pcie 33800000.pcie: PM: dpm_run_callback(): genpd_resume_noirq+0x0/0x80 returns -110
  imx6q-pcie 33800000.pcie: PM: failed to resume noirq: error -110

This resulted in a complete CPU freeze, which is resolved by ensuring
the PHY is in reset during power-on, thus preventing PHY PLL failures.

Cc: stable@vger.kernel.org
Fixes: 1aa97b0022 ("phy: freescale: pcie: Initialize the imx8 pcie standalone phy driver")
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://lore.kernel.org/r/20250305144355.20364-3-eichest@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-04-20 10:15:58 +02:00
..
allwinner phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
amlogic phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
broadcom phy: usb: Toggle the PHY power during init 2025-01-02 10:34:13 +01:00
cadence phy: cadence: Sierra: Fix offset of DEQ open eye algorithm control register 2024-10-07 11:55:34 +05:30
freescale phy: freescale: imx8m-pcie: assert phy reset and perst in power off 2025-04-20 10:15:58 +02:00
hisilicon phy: hisilicon: usb2: Simplify with scoped for each OF child loop 2024-08-30 13:26:37 +05:30
ingenic phy: Explicitly include correct DT includes 2023-07-17 11:52:56 +05:30
intel phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
lantiq phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
marvell phy: marvell: phy-mvebu-cp110-comphy: improve eth_port1 on comphy4 2024-08-04 22:52:11 +05:30
mediatek phy: mediatek: xsphy: Simplify with scoped for each OF child loop 2024-08-30 13:26:37 +05:30
microchip phy-for-6.9 2024-03-16 11:24:51 -07:00
motorola phy: Drop unnecessary of_match_device() calls 2023-10-13 15:47:53 +05:30
mscc phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
nuvoton phy: nuvoton: add new driver for the Nuvoton MA35 SoC USB 2.0 PHY 2024-08-29 23:52:37 +05:30
qualcomm phy: qcom-qmp: Fix register name in RX Lane config of SC8280XP 2025-01-02 10:34:12 +01:00
ralink phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
realtek phy: realtek: usb: fix NULL deref in rtk_usb3phy_probe 2024-12-05 14:02:38 +01:00
renesas phy: renesas: rcar-gen3-usb2: Add support for the RZ/G3S SoC 2024-08-30 13:33:44 +05:30
rockchip phy: phy-rockchip-samsung-hdptx: Don't use dt aliases to determine phy-id 2025-04-10 14:39:22 +02:00
samsung phy: exynos5-usbdrd: gs101: ensure power is gated to SS phy in phy_exit() 2025-03-07 18:25:42 +01:00
socionext phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30
st phy: miphy28lp: remove unused struct 'miphy_initval' 2024-06-03 19:29:44 +05:30
starfive phy: starfive: jh7110-usb: Fix link configuration to controller 2024-10-17 20:19:44 +05:30
sunplus phy: sunplus: return negative error code in sp_usb_phy_probe 2023-11-27 18:39:18 +05:30
tegra phy: tegra: xusb: reset VBUS & ID OVERRIDE 2025-03-07 18:25:41 +01:00
ti phy: ti: gmii-sel: Do not use syscon helper to build regmap 2025-03-22 12:54:20 -07:00
xilinx phy: xilinx: phy-zynqmp: Fix SGMII linkup failure on resume 2024-08-05 21:46:58 +05:30
Kconfig phy: nuvoton: add new driver for the Nuvoton MA35 SoC USB 2.0 PHY 2024-08-29 23:52:37 +05:30
Makefile phy: nuvoton: add new driver for the Nuvoton MA35 SoC USB 2.0 PHY 2024-08-29 23:52:37 +05:30
phy-airoha-pcie-regs.h phy: airoha: Fix REG_CSR_2L_RX{0,1}_REV0 definitions 2024-12-05 14:02:28 +01:00
phy-airoha-pcie.c phy: airoha: Fix REG_CSR_2L_JCPLL_SDM_HREN config in airoha_pcie_phy_init_ssc_jcpll() 2024-12-05 14:02:28 +01:00
phy-can-transceiver.c phy: phy-can-transceiver: insert space after include 2023-12-21 22:39:59 +05:30
phy-core-mipi-dphy.c phy: dphy: add support to calculate the timing based on hs_clk_rate 2022-10-27 14:38:04 +03:00
phy-core.c phy: core: Fix that API devm_phy_destroy() fails to destroy the phy 2025-01-02 10:34:13 +01:00
phy-lgm-usb.c phy: phy-lgm-usb: Convert to platform remove callback returning void 2023-03-20 18:14:56 +05:30
phy-lpc18xx-usb-otg.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
phy-pistachio-usb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
phy-xgene.c phy: constify of_phandle_args in xlate 2024-02-23 17:43:14 +05:30