From 0ae5e456f639ccf30e002ed6f4f738c44dad14c9 Mon Sep 17 00:00:00 2001 From: Peter Chen Date: Tue, 20 Aug 2013 17:47:06 +0800 Subject: ENGR00276811 mx6-msl: usb: add 2ns delay between clear PHY CLKGATE and PHY_PWD It can fix the bugs that there is no SOF after resume sometimes. Without SOF after resume the device will go to suspend again, and host assumes it is disconnected and sends reset later. Signed-off-by: Peter Chen --- arch/arm/mach-mx6/usb_dr.c | 3 +++ arch/arm/mach-mx6/usb_h1.c | 1 + 2 files changed, 4 insertions(+) (limited to 'arch') diff --git a/arch/arm/mach-mx6/usb_dr.c b/arch/arm/mach-mx6/usb_dr.c index 40bb978ce0a9..c1e1e19ddc7d 100644 --- a/arch/arm/mach-mx6/usb_dr.c +++ b/arch/arm/mach-mx6/usb_dr.c @@ -255,6 +255,9 @@ static void enter_phy_lowpower_suspend(struct fsl_usb2_platform_data *pdata, boo mdelay(1); usbotg_internal_phy_clock_gate(true); + + udelay(2); + tmp = (BM_USBPHY_PWD_TXPWDFS | BM_USBPHY_PWD_TXPWDIBIAS | BM_USBPHY_PWD_TXPWDV2I diff --git a/arch/arm/mach-mx6/usb_h1.c b/arch/arm/mach-mx6/usb_h1.c index 657c1cb09b34..657ca89ee0bf 100644 --- a/arch/arm/mach-mx6/usb_h1.c +++ b/arch/arm/mach-mx6/usb_h1.c @@ -339,6 +339,7 @@ static void _phy_lowpower_suspend(struct fsl_usb2_platform_data *pdata, bool ena mdelay(1); usbh1_internal_phy_clock_gate(true); + udelay(2); tmp = (BM_USBPHY_PWD_TXPWDFS | BM_USBPHY_PWD_TXPWDIBIAS | BM_USBPHY_PWD_TXPWDV2I -- cgit v1.2.3