usb: dwc3: rockchip: power off usb2 phy in suspend
authorWilliam Wu <wulf@rock-chips.com>
Thu, 15 Dec 2016 06:46:53 +0000 (14:46 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 21 Dec 2016 03:06:11 +0000 (11:06 +0800)
commit47b413c592a35db9159072e1f84bb4d75dab066f
tree3d3d9455d5d20cd63ed32626ce29c76299f32a8e
parentc2428419e7d9596f07b62269954ea9c4fcc7e422
usb: dwc3: rockchip: power off usb2 phy in suspend

DWC3 use extcon notifier to manage USB cable detection
and mode switch. For host mode, if USB device connected,
it requires to reset the whole DWC3 controller to make
sure that pipe power state in P2 before power on USB3 PHY,
after do DWC3 reset we will do phy power on in extcon evt
work, however, the DWC3 core will do phy power on again
in runtime resume process (dwc3_runtime_resume() ->
dwc3_core_init() -> phy_power_on()). This will cause PHY
power off failure during suspend because we just do once
phy power off in suspend(dwc3_suspend() -> dwc3_core_exit()
-> phy_power_off()).

This patch does phy power off in suspend to make sure that
USB2 PHY enter suspend in HOST mode. And because USB3 PHY
power on operation need to be done while the pipe is in P2
state, but after resume the pipe is in P0 state, so we just
put USB3 PHY in power on state.

Change-Id: I643ba0abeb015be9285fd29d59fa0e006131c39b
Signed-off-by: William Wu <wulf@rock-chips.com>
drivers/usb/dwc3/dwc3-rockchip.c