summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@freescale.com>2013-08-20 17:47:06 +0800
committerPeter Chen <peter.chen@freescale.com>2013-08-27 11:19:18 +0800
commit0ae5e456f639ccf30e002ed6f4f738c44dad14c9 (patch)
treeb90304b02aa341bd80241501bf11f69110925e4b
parentfed537a64d73dfffc8defcf865e0c228c430de2b (diff)
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 <peter.chen@freescale.com>
-rw-r--r--arch/arm/mach-mx6/usb_dr.c3
-rw-r--r--arch/arm/mach-mx6/usb_h1.c1
2 files changed, 4 insertions, 0 deletions
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