diff options
author | Avik Sil <aviksil@linux.vnet.ibm.com> | 2013-07-24 14:27:12 +0530 |
---|---|---|
committer | Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> | 2013-07-24 14:46:23 +0530 |
commit | a12848da7e574c87b908aad6044c5af33e1835cc (patch) | |
tree | 1c963611b1ed1d212093a3a4add94720e09c0b74 /lib/libusb/usb-ehci.h | |
parent | 6eb646603dd5f874c97f887ad3ffa469cc3e154f (diff) | |
download | SLOF-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.h | 43 |
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 */ |