OSDN Git Service

phy: stm32-usphyc: add 200 to 300 us delay to fix timeout on some machines
authorMichael Grzeschik <m.grzeschik@pengutronix.de>
Mon, 27 Feb 2023 15:13:19 +0000 (16:13 +0100)
committerVinod Koul <vkoul@kernel.org>
Fri, 31 Mar 2023 13:29:16 +0000 (18:59 +0530)
An minimum udelay of 200 us seems to be necessary on some machines. After
the setup of the pll, which needs about 100 us to be locked there seem
to be additional 100 us to get the phy really functional. Without this
delay the usb runs not functional. With this additional short udelay
this issue was not reported again.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Reviewed-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Link: https://lore.kernel.org/r/20230227151318.1894938-1-m.grzeschik@pengutronix.de
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/st/phy-stm32-usbphyc.c

index 1add3b7..0a85526 100644 (file)
@@ -317,6 +317,9 @@ static int stm32_usbphyc_pll_enable(struct stm32_usbphyc *usbphyc)
 
        stm32_usbphyc_set_bits(pll_reg, PLLEN);
 
+       /* Wait for maximum lock time */
+       usleep_range(200, 300);
+
        return 0;
 
 reg_disable: