diff options
author | Patrick Georgi <patrick@georgi-clan.de> | 2013-03-06 14:08:31 +0000 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2013-03-18 18:58:54 +0100 |
commit | 8f62ca646fbad26b17f832cc3c2579080247de6e (patch) | |
tree | d21f4e48608e04cfff1d1a1cecfc89c4653f30bb /drivers/usb/host/ehci.h | |
parent | c74b0116b6cd839babfc57b0eb83e4e989227f17 (diff) | |
download | u-boot-imx-8f62ca646fbad26b17f832cc3c2579080247de6e.zip u-boot-imx-8f62ca646fbad26b17f832cc3c2579080247de6e.tar.gz u-boot-imx-8f62ca646fbad26b17f832cc3c2579080247de6e.tar.bz2 |
usb: ehci: Support interrupt transfers via periodic list
Interrupt transfers aren't meant to be used from the async list
(the EHCI spec indicates trouble with low/full-speed intr on async).
Build a periodic list instead, and provide an API to make use of it.
Then, use that API from the existing interrupt transfer API.
This provides support for USB keyboards using EHCI.
Use timeouts to ensure we cannot get stuck in the keyboard scanning
if something wrong happens (USB device unplugged or fatal I/O error)
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Signed-off-by: Julius Werner <jwerner@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/usb/host/ehci.h')
-rw-r--r-- | drivers/usb/host/ehci.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h index 1e3cd79..46b535f 100644 --- a/drivers/usb/host/ehci.h +++ b/drivers/usb/host/ehci.h @@ -69,6 +69,7 @@ struct ehci_hcor { #define CMD_RUN (1 << 0) /* start/stop HC */ uint32_t or_usbsts; #define STS_ASS (1 << 15) +#define STS_PSS (1 << 14) #define STS_HALT (1 << 12) uint32_t or_usbintr; #define INTR_UE (1 << 0) /* USB interrupt enable */ @@ -245,7 +246,10 @@ struct QH { * Add dummy fill value to make the size of this struct * aligned to 32 bytes */ - uint8_t fill[16]; + union { + uint8_t fill[16]; + void *buffer; + }; }; /* Low level init functions */ |