summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx6/usb_h1.c
diff options
context:
space:
mode:
authorXinyu Chen <b03824@freescale.com>2012-01-09 12:16:21 +0800
committerXinyu Chen <b03824@freescale.com>2012-01-09 12:16:21 +0800
commit951b812436e9aed71d44665e2243cf409b27adcd (patch)
treec2af101cbc1d0113e1043e0516ea63a0de772220 /arch/arm/mach-mx6/usb_h1.c
parent083a297c124a17f6a98c3da885c4b2e5fd77d645 (diff)
parente14ab2b954bc8725c220bd54d26f71b23c1836ad (diff)
Merge commit 'rel_imx_2.6.38_12.01.00_RC1' into imx_2.6.38_android
Conflicts: drivers/input/touchscreen/egalax_ts.c
Diffstat (limited to 'arch/arm/mach-mx6/usb_h1.c')
-rw-r--r--arch/arm/mach-mx6/usb_h1.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/arm/mach-mx6/usb_h1.c b/arch/arm/mach-mx6/usb_h1.c
index 9c247d568754..f4b84df63f2f 100644
--- a/arch/arm/mach-mx6/usb_h1.c
+++ b/arch/arm/mach-mx6/usb_h1.c
@@ -148,6 +148,36 @@ static void _wake_up_enable(struct fsl_usb2_platform_data *pdata, bool enable)
}
}
+static void usbh1_platform_suspend(struct fsl_usb2_platform_data *pdata)
+{
+ void __iomem *phy_reg = MX6_IO_ADDRESS(USB_PHY1_BASE_ADDR);
+ u32 tmp;
+
+ tmp = (BM_USBPHY_PWD_TXPWDFS
+ | BM_USBPHY_PWD_TXPWDIBIAS
+ | BM_USBPHY_PWD_TXPWDV2I
+ | BM_USBPHY_PWD_RXPWDENV
+ | BM_USBPHY_PWD_RXPWD1PT1
+ | BM_USBPHY_PWD_RXPWDDIFF
+ | BM_USBPHY_PWD_RXPWDRX);
+ __raw_writel(tmp, phy_reg + HW_USBPHY_PWD_SET);
+}
+
+static void usbh1_platform_resume(struct fsl_usb2_platform_data *pdata)
+{
+ void __iomem *phy_reg = MX6_IO_ADDRESS(USB_PHY1_BASE_ADDR);
+ u32 tmp;
+
+ tmp = (BM_USBPHY_PWD_TXPWDFS
+ | BM_USBPHY_PWD_TXPWDIBIAS
+ | BM_USBPHY_PWD_TXPWDV2I
+ | BM_USBPHY_PWD_RXPWDENV
+ | BM_USBPHY_PWD_RXPWD1PT1
+ | BM_USBPHY_PWD_RXPWDDIFF
+ | BM_USBPHY_PWD_RXPWDRX);
+ __raw_writel(tmp, phy_reg + HW_USBPHY_PWD_CLR);
+}
+
static void _phy_lowpower_suspend(struct fsl_usb2_platform_data *pdata, bool enable)
{
u32 tmp;
@@ -224,6 +254,8 @@ static struct fsl_usb2_platform_data usbh1_config = {
.power_budget = 500, /* 500 mA max power */
.wake_up_enable = _wake_up_enable,
.usb_clock_for_pm = usbh1_clock_gate,
+ .platform_suspend = usbh1_platform_suspend,
+ .platform_resume = usbh1_platform_resume,
.phy_lowpower_suspend = _phy_lowpower_suspend,
.is_wakeup_event = _is_usbh1_wakeup,
.wakeup_handler = h1_wakeup_handler,