linux/drivers/usb/chipidea
Peter Chen 78f0357ec8 usb: chipidea: host: add .bus_suspend quirk
For chipidea, its resume sequence is not-EHCI compatible, see
below description for FPR at portsc. So in order to send SoF in
time for remote wakeup sequence(within 3ms), the RUN/STOP bit must
be set before the resume signal is ended, but the usb resume
code may run after resume signal is ended, so we had to set it
at suspend path.

Force Port Resume - RW. Default = 0b.
1= Resume detected/driven on port.
0=No resume (K-state) detected/driven on port.
Host mode:
Software sets this bit to one to drive resume signaling. The Controller sets this bit to '1' if
a J-to-K transition is detected while the port is in the Suspend state. When this bit
transitions to a '1' because a J-to-K transition is detected, the Port Change Detect bit in
the USBSTS register is also set to '1'. This bit will automatically change to '0' after the
resume sequence is complete. This behavior is different from EHCI where the controller
driver is required to set this bit to a '0' after the resume duration is timed in the driver.
Note that when the controller owns the port, the resume sequence follows the defined

sequence documented in the USB Specification Revision 2.0. The resume signaling
(Full-speed 'K') is driven on the port as long as this bit remains a '1'. This bit will remain
a '1' until the port has switched to idle. Writing a '0' has no affect because the port
controller will time the resume operation, clear the bit and the port control state switches
to HS or FS idle.
This field is '0' if Port Power(PP) is '0' in host mode.

This bit is not-EHCI compatible.

Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-03-18 16:19:11 +01:00
..
bits.h usb: chipidea: add chipidea revision information 2015-03-18 16:19:10 +01:00
ci_hdrc_imx.c usb: chipidea: imx: add usb as system wakeup source 2015-03-18 16:19:09 +01:00
ci_hdrc_imx.h usb: chipidea: usbmisc_imx: add .set_wakeup interface 2015-03-18 16:19:09 +01:00
ci_hdrc_msm.c usb: chipidea: remove flag CI_HDRC_REQUIRE_TRANSCEIVER 2014-11-26 09:28:12 -08:00
ci_hdrc_pci.c ehci-pci: disable for Intel MID platforms (update) 2015-02-03 15:28:31 -08:00
ci_hdrc_usb2.c usb: chipidea: fix platform_no_drv_owner.cocci warnings 2014-11-26 11:47:43 -08:00
ci_hdrc_zevio.c Chipidea: TI-NSPIRE USB OTG hardware does not support high speed and must connect at full speed 2015-03-18 16:19:11 +01:00
ci.h usb: chipidea: add chipidea revision information 2015-03-18 16:19:10 +01:00
core.c usb: chipidea: add chipidea revision information 2015-03-18 16:19:10 +01:00
debug.c usb: allow to supply the PHY in the drivers when using HCD 2014-11-03 10:02:50 -06:00
debug.h usb: chipidea: drop "13xxx" infix 2013-06-24 16:16:55 -07:00
host.c usb: chipidea: host: add .bus_suspend quirk 2015-03-18 16:19:11 +01:00
host.h usb: chipidea: add role init and destroy APIs 2013-08-14 12:37:19 -07:00
Kconfig usb: chipidea: USB_CHIPIDEA should depend on HAS_DMA 2013-09-25 17:30:39 -07:00
Makefile usb: chipidea: add a usb2 driver for ci13xxx 2014-11-26 09:28:13 -08:00
otg_fsm.c usb: chipidea: Fixed a few typos in comments 2014-11-26 09:28:13 -08:00
otg_fsm.h usb: chipidea: add sys inputs for OTG fsm input 2014-04-24 12:56:35 -07:00
otg.c usb: chipidea: add runtime power management support 2015-03-18 16:19:08 +01:00
otg.h usb: chipidea: using one inline function to cover queue work operations 2014-05-23 11:35:02 +09:00
udc.c usb: chipidea: Add errata for revision 2.40a 2015-03-18 16:19:10 +01:00
udc.h usb: chipidea: add role init and destroy APIs 2013-08-14 12:37:19 -07:00
usbmisc_imx.c usb: chipidea: usbmisc_imx: add imx6sx initialization routine 2015-03-18 16:19:10 +01:00