]> git.sur5r.net Git - u-boot/blobdiff - drivers/usb/host/ehci.h
Merge branch 'master' of git://git.denx.de/u-boot-nios
[u-boot] / drivers / usb / host / ehci.h
index 6fae8baf9505972e4403dc7bba46e53f78ac6592..3d0ad0c85212f1caf05c7192953cd02df2619e8c 100644 (file)
@@ -55,7 +55,7 @@ struct ehci_hccr {
 #define HCS_N_PORTS(p)         (((p) >> 0) & 0xf)
        uint32_t cr_hccparams;
        uint8_t cr_hcsp_portrt[8];
-} __attribute__ ((packed));
+} __attribute__ ((packed, aligned(4)));
 
 struct ehci_hcor {
        uint32_t or_usbcmd;
@@ -85,7 +85,7 @@ struct ehci_hcor {
 #define FLAG_CF                (1 << 0)        /* true:  we'll support "high speed" */
        uint32_t or_portsc[CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS];
        uint32_t or_systune;
-} __attribute__ ((packed));
+} __attribute__ ((packed, aligned(4)));
 
 #define USBMODE                0x68            /* USB Device mode */
 #define USBMODE_SDIS   (1 << 3)        /* Stream disable */
@@ -166,11 +166,15 @@ struct usb_linux_config_descriptor {
 
 /* Queue Element Transfer Descriptor (qTD). */
 struct qTD {
-       uint32_t qt_next;
+       /* this part defined by EHCI spec */
+       uint32_t qt_next;               /* see EHCI 3.5.1 */
 #define        QT_NEXT_TERMINATE       1
-       uint32_t qt_altnext;
-       uint32_t qt_token;
-       uint32_t qt_buffer[5];
+       uint32_t qt_altnext;            /* see EHCI 3.5.2 */
+       uint32_t qt_token;              /* see EHCI 3.5.3 */
+       uint32_t qt_buffer[5];          /* see EHCI 3.5.4 */
+       uint32_t qt_buffer_hi[5];       /* Appendix B */
+       /* pad struct for 32 byte alignment */
+       uint32_t unused[3];
 };
 
 /* Queue Head (QH). */