aboutsummaryrefslogtreecommitdiff
path: root/lib/libusb/usb-ehci.h
diff options
context:
space:
mode:
authorAvik Sil <aviksil@linux.vnet.ibm.com>2013-07-24 14:27:12 +0530
committerNikunj A Dadhania <nikunj@linux.vnet.ibm.com>2013-07-24 14:46:23 +0530
commita12848da7e574c87b908aad6044c5af33e1835cc (patch)
tree1c963611b1ed1d212093a3a4add94720e09c0b74 /lib/libusb/usb-ehci.h
parent6eb646603dd5f874c97f887ad3ffa469cc3e154f (diff)
downloadSLOF-a12848da7e574c87b908aad6044c5af33e1835cc.zip
SLOF-a12848da7e574c87b908aad6044c5af33e1835cc.tar.gz
SLOF-a12848da7e574c87b908aad6044c5af33e1835cc.tar.bz2
usb-ehci: initialize controller
Signed-off-by: Avik Sil <aviksil@linux.vnet.ibm.com> Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Diffstat (limited to 'lib/libusb/usb-ehci.h')
-rw-r--r--lib/libusb/usb-ehci.h43
1 files changed, 42 insertions, 1 deletions
diff --git a/lib/libusb/usb-ehci.h b/lib/libusb/usb-ehci.h
index 1f95388..6a780fa 100644
--- a/lib/libusb/usb-ehci.h
+++ b/lib/libusb/usb-ehci.h
@@ -19,6 +19,8 @@
#include <stdint.h>
+#define FL_SIZE 1024
+
struct ehci_cap_regs {
uint8_t caplength;
uint8_t reserved;
@@ -41,9 +43,48 @@ struct ehci_op_regs {
uint32_t portsc[0];
} __attribute__ ((packed));
-struct ehci_controller {
+struct ehci_hcd {
struct ehci_cap_regs *cap_regs;
struct ehci_op_regs *op_regs;
+ struct usb_hcd_dev *hcidev;
};
+struct ehci_framelist {
+ uint32_t fl_ptr[FL_SIZE];
+} __attribute__ ((packed));
+
+struct ehci_qtd {
+ uint32_t next_qtd;
+ uint32_t alt_next_qtd;
+ uint32_t token;
+ uint32_t buffer[5];
+} __attribute__ ((packed));
+
+struct ehci_qh {
+ uint32_t qh_ptr;
+ uint32_t ep_cap1;
+ uint32_t ep_cap2;
+ uint32_t curr_qtd;
+ uint32_t next_qtd;
+ uint32_t alt_next_qtd;
+ uint32_t token;
+ uint32_t buffer[5];
+} __attribute__ ((packed));
+
+#define EHCI_TYP_ITD 0x00
+#define EHCI_TYP_QH 0x02
+#define EHCI_TYP_SITD 0x04
+#define EHCI_TYP_FSTN 0x06
+
+#define CMD_ASE (1 << 5)
+#define CMD_PSE (1 << 4)
+#define CMD_FLS_MASK (3 << 2)
+#define CMD_HCRESET (1 << 1)
+#define CMD_RUN (1 << 0)
+
+#define QH_CAP_H (1 << 15)
+#define QH_PTR_TERM 0x0001
+#define QH_SMASK_SHIFT 0
+#define QH_STS_HALTED (1 << 6)
+
#endif /* USB_EHCI_H */