diff options
-rw-r--r-- | arch/arm/mach-mx6/usb_dr.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-mx6/usb_h1.c | 8 |
2 files changed, 10 insertions, 6 deletions
diff --git a/arch/arm/mach-mx6/usb_dr.c b/arch/arm/mach-mx6/usb_dr.c index e6496bc9cd50..c02158b4a2fc 100644 --- a/arch/arm/mach-mx6/usb_dr.c +++ b/arch/arm/mach-mx6/usb_dr.c @@ -248,10 +248,12 @@ static void enter_phy_lowpower_suspend(struct fsl_usb2_platform_data *pdata, boo usbotg_internal_phy_clock_gate(false); } else { - if (UOG_PORTSC1 & PORTSC_PHCD) { + if (UOG_PORTSC1 & PORTSC_PHCD) UOG_PORTSC1 &= ~PORTSC_PHCD; - mdelay(1); - } + + /* Wait PHY clock stable */ + mdelay(1); + usbotg_internal_phy_clock_gate(true); tmp = (BM_USBPHY_PWD_TXPWDFS | BM_USBPHY_PWD_TXPWDIBIAS diff --git a/arch/arm/mach-mx6/usb_h1.c b/arch/arm/mach-mx6/usb_h1.c index 6de99d96142b..a95bcdead9d6 100644 --- a/arch/arm/mach-mx6/usb_h1.c +++ b/arch/arm/mach-mx6/usb_h1.c @@ -332,10 +332,12 @@ static void _phy_lowpower_suspend(struct fsl_usb2_platform_data *pdata, bool ena usbh1_internal_phy_clock_gate(false); } else { - if (UH1_PORTSC1 & PORTSC_PHCD) { + if (UH1_PORTSC1 & PORTSC_PHCD) UH1_PORTSC1 &= ~PORTSC_PHCD; - mdelay(1); - } + + /* Wait PHY clock stable */ + mdelay(1); + usbh1_internal_phy_clock_gate(true); tmp = (BM_USBPHY_PWD_TXPWDFS | BM_USBPHY_PWD_TXPWDIBIAS |