usb: phy: qusb2: Enable phy auto-resume
phy auto-resume allows phy to automatically drive bus resume right after device driving bus resume for at least 1ms due to remote wake up, before host XHCI driver gets a chance to drive bus resume. Change-Id: Ifbd2d8212fe5ed1bdad32418300ac615091f0226 Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
This commit is contained in:
parent
2f817b68f0
commit
4ff07c149c
1 changed files with 18 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2014-2017, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -47,6 +47,8 @@
|
|||
#define FREEZIO_N BIT(1)
|
||||
#define POWER_DOWN BIT(0)
|
||||
|
||||
#define QUSB2PHY_PORT_TEST_CTRL 0xB8
|
||||
|
||||
#define QUSB2PHY_PWR_CTRL1 0x210
|
||||
#define PWR_CTRL1_CLAMP_N_EN BIT(1)
|
||||
#define PWR_CTRL1_POWR_DOWN BIT(0)
|
||||
|
@ -688,6 +690,21 @@ static int qusb_phy_set_suspend(struct usb_phy *phy, int suspend)
|
|||
writel_relaxed(intr_mask,
|
||||
qphy->base + QUSB2PHY_PORT_INTR_CTRL);
|
||||
|
||||
/* enable phy auto-resume */
|
||||
writel_relaxed(0x0C,
|
||||
qphy->base + QUSB2PHY_PORT_TEST_CTRL);
|
||||
/* flush the previous write before next write */
|
||||
wmb();
|
||||
writel_relaxed(0x04,
|
||||
qphy->base + QUSB2PHY_PORT_TEST_CTRL);
|
||||
|
||||
|
||||
dev_dbg(phy->dev, "%s: intr_mask = %x\n",
|
||||
__func__, intr_mask);
|
||||
|
||||
/* Makes sure that above write goes through */
|
||||
wmb();
|
||||
|
||||
qusb_phy_enable_clocks(qphy, false);
|
||||
} else { /* Disconnect case */
|
||||
/* Disable all interrupts */
|
||||
|
|
Loading…
Add table
Reference in a new issue