linux/drivers/phy
Richard Zhu 163e632379 phy: freescale: imx8m-pcie: Do CMN_RST just before PHY PLL lock check
[ Upstream commit f89263b697 ]

When enable initcall_debug together with higher debug level below.
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=9
CONFIG_CONSOLE_LOGLEVEL_QUIET=9
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7

The initialization of i.MX8MP PCIe PHY might be timeout failed randomly.
To fix this issue, adjust the sequence of the resets refer to the power
up sequence listed below.

i.MX8MP PCIe PHY power up sequence:
                          /---------------------------------------------
1.8v supply     ---------/
                    /---------------------------------------------------
0.8v supply     ---/

                ---\ /--------------------------------------------------
                    X        REFCLK Valid
Reference Clock ---/ \--------------------------------------------------
                             -------------------------------------------
                             |
i_init_restn    --------------
                                    ------------------------------------
                                    |
i_cmn_rstn      ---------------------
                                         -------------------------------
                                         |
o_pll_lock_done --------------------------

Logs:
imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
imx6q-pcie 33800000.pcie:       IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
imx6q-pcie 33800000.pcie:      MEM 0x0018000000..0x001fefffff -> 0x0018000000
probe of clk_imx8mp_audiomix.reset.0 returned 0 after 1052 usecs
probe of 30e20000.clock-controller returned 0 after 32971 usecs
phy phy-32f00000.pcie-phy.4: phy poweron failed --> -110
probe of 30e10000.dma-controller returned 0 after 10235 usecs
imx6q-pcie 33800000.pcie: waiting for PHY ready timeout!
dwhdmi-imx 32fd8000.hdmi: Detected HDMI TX controller v2.13a with HDCP (samsung_dw_hdmi_phy2)
imx6q-pcie 33800000.pcie: probe with driver imx6q-pcie failed with error -110

Fixes: dce9edff16 ("phy: freescale: imx8m-pcie: Add i.MX8MP PCIe PHY support")
Cc: stable@vger.kernel.org
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>

v2 changes:
- Rebase to latest fixes branch of linux-phy git repo.
- Richard's environment have problem and can't sent out patch. So I help
post this fix patch.

Link: https://lore.kernel.org/r/20241021155241.943665-1-Frank.Li@nxp.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-11-08 16:28:24 +01:00
..
allwinner phy: Explicitly include correct DT includes 2023-07-17 11:52:56 +05:30
amlogic phy: amlogic: meson-g12a-usb2: fix Wvoid-pointer-to-enum-cast warning 2023-08-22 19:28:10 +05:30
broadcom phy: broadcom: sr-usb: fix Wvoid-pointer-to-enum-cast warning 2023-08-11 09:25:14 +01:00
cadence phy: cadence-torrent: Check return value on register read 2024-08-03 08:54:35 +02:00
freescale phy: freescale: imx8m-pcie: Do CMN_RST just before PHY PLL lock check 2024-11-08 16:28:24 +01:00
hisilicon phy-for-6.6 2023-09-03 10:38:02 -07:00
ingenic phy: Explicitly include correct DT includes 2023-07-17 11:52:56 +05:30
intel phy-for-6.4 2023-05-03 11:17:34 -07:00
lantiq phy: Explicitly include correct DT includes 2023-07-17 11:52:56 +05:30
marvell phy: marvell: a3700-comphy: Fix hardcoded array size 2024-05-02 16:32:48 +02:00
mediatek phy: mediatek: mipi: mt8183: fix minimal supported frequency 2024-01-10 17:16:57 +01:00
microchip phy: sparx5-serdes: add skip_cmu_cfg check when configuring lanes 2023-05-08 17:13:01 +05:30
motorola phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins 2023-09-14 17:05:27 +05:30
mscc phy: phy-ocelot-serdes: add ability to be used in a non-syscon configuration 2023-03-20 09:08:48 +00:00
qualcomm phy: qcom: qmp-usb-legacy: fix NULL-deref on runtime suspend 2024-11-08 16:28:22 +01:00
ralink phy: Explicitly include correct DT includes 2023-07-17 11:52:56 +05:30
renesas phy: renesas: rcar-gen3-usb2: Fix returning wrong error code 2024-02-16 19:10:42 +01:00
rockchip phy: rockchip: naneng-combphy: Fix mux on rk3588 2024-05-02 16:32:48 +02:00
samsung phy: exynos5-usbdrd: Add Exynos850 support 2023-08-22 19:41:15 +05:30
socionext phy: Explicitly include correct DT includes 2023-07-17 11:52:56 +05:30
st phy: Explicitly include correct DT includes 2023-07-17 11:52:56 +05:30
starfive phy: starfive: StarFive PHYs should depend on ARCH_STARFIVE 2023-07-26 19:09:08 +05:30
sunplus phy: sunplus: return negative error code in sp_usb_phy_probe 2024-01-10 17:16:57 +01:00
tegra phy: tegra: xusb: Add API to retrieve the port number of phy 2024-04-03 15:28:28 +02:00
ti phy: ti: tusb1210: Resolve charger-det crash if charger psy is unregistered 2024-05-02 16:32:49 +02:00
xilinx phy: zynqmp: Take the phy mutex in xlate 2024-09-12 11:11:35 +02:00
Kconfig Revert "phy: realtek: usb: Add driver for the Realtek SoC USB 2.0 PHY" 2023-12-03 07:33:08 +01:00
Makefile Revert "phy: realtek: usb: Add driver for the Realtek SoC USB 2.0 PHY" 2023-12-03 07:33:08 +01:00
phy-can-transceiver.c phy: Explicitly include correct DT includes 2023-07-17 11:52:56 +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: add debugfs files 2023-05-19 23:23:52 +05:30
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: Explicitly include correct DT includes 2023-07-17 11:52:56 +05:30