aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLi Jun <b47624@freescale.com>2014-06-29 22:27:35 -0400
committerLi Jun <B47624@freescale.com>2014-06-30 04:38:01 -0400
commit8ffde85d6522d4c813fd0c77f17800d82ef2e274 (patch)
tree73d51195ebfb76ae2e8e992e2ee482a49a442a8a
parenta7d025f0f9494294b057fb4a2e89d5ace41c76e8 (diff)
ENGR00320439-10 usb: phy: mxs: refine phy shutdown
Complete mxs phy shutdown sequence including disable wakeup and auto bits, power down phy and clock gate. Signed-off-by: Li Jun <b47624@freescale.com>
-rw-r--r--drivers/usb/phy/phy-mxs-usb.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/usb/phy/phy-mxs-usb.c b/drivers/usb/phy/phy-mxs-usb.c
index 56602e905dc0..8555ef3c7d3b 100644
--- a/drivers/usb/phy/phy-mxs-usb.c
+++ b/drivers/usb/phy/phy-mxs-usb.c
@@ -316,7 +316,17 @@ static int mxs_phy_init(struct usb_phy *phy)
316static void mxs_phy_shutdown(struct usb_phy *phy) 316static void mxs_phy_shutdown(struct usb_phy *phy)
317{ 317{
318 struct mxs_phy *mxs_phy = to_mxs_phy(phy); 318 struct mxs_phy *mxs_phy = to_mxs_phy(phy);
319 319 u32 value = BM_USBPHY_CTRL_ENVBUSCHG_WKUP |
320 BM_USBPHY_CTRL_ENDPDMCHG_WKUP |
321 BM_USBPHY_CTRL_ENIDCHG_WKUP |
322 BM_USBPHY_CTRL_ENAUTOSET_USBCLKS |
323 BM_USBPHY_CTRL_ENAUTOCLR_USBCLKGATE |
324 BM_USBPHY_CTRL_ENAUTOCLR_PHY_PWD |
325 BM_USBPHY_CTRL_ENAUTOCLR_CLKGATE |
326 BM_USBPHY_CTRL_ENAUTO_PWRON_PLL;
327
328 writel(value, phy->io_priv + HW_USBPHY_CTRL_CLR);
329 writel(0xffffffff, phy->io_priv + HW_USBPHY_PWD);
320 writel(BM_USBPHY_CTRL_CLKGATE, 330 writel(BM_USBPHY_CTRL_CLKGATE,
321 phy->io_priv + HW_USBPHY_CTRL_SET); 331 phy->io_priv + HW_USBPHY_CTRL_SET);
322 332