grml...
[seabios.git] / src / usb-ohci.h
index 9d13f8ce27b4a2ac27e7bcfd96a95ac694650809..c7670ffd86c7669549fe438e4f69314cdaa28fa8 100644 (file)
@@ -2,12 +2,16 @@
 #define __USB_OHCI_H
 
 // usb-ohci.c
-struct usb_s;
-int ohci_init(struct usb_s *cntl);
-int ohci_control(u32 endp, int dir, const void *cmd, int cmdsize
+void ohci_init(struct pci_device *pci, int busid);
+struct usb_pipe;
+void ohci_free_pipe(struct usb_pipe *p);
+struct usb_pipe *ohci_alloc_control_pipe(struct usb_pipe *dummy);
+int ohci_control(struct usb_pipe *p, int dir, const void *cmd, int cmdsize
                  , void *data, int datasize);
-struct usb_pipe *ohci_alloc_intr_pipe(u32 endp, int period);
-int ohci_poll_intr(void *pipe, void *data);
+struct usb_pipe *ohci_alloc_bulk_pipe(struct usb_pipe *dummy);
+int ohci_send_bulk(struct usb_pipe *p, int dir, void *data, int datasize);
+struct usb_pipe *ohci_alloc_intr_pipe(struct usb_pipe *dummy, int frameexp);
+int ohci_poll_intr(struct usb_pipe *p, void *data);
 
 
 /****************************************************************
@@ -40,7 +44,6 @@ struct ohci_td {
 #define TD_CC       0xf0000000
 #define TD_CC_GET(td_p) ((td_p >>28) & 0x0f)
 #define TD_DI       0x00E00000
-#define TD_DI_SET(X) (((X) & 0x07)<< 21)
 
 #define TD_DONE     0x00020000
 #define TD_ISO      0x00010000
@@ -92,6 +95,49 @@ struct ohci_regs {
     u32  roothub_portstatus[15];
 } PACKED;
 
+#define OHCI_CTRL_CBSR  (3 << 0)
+#define OHCI_CTRL_PLE   (1 << 2)
+#define OHCI_CTRL_CLE   (1 << 4)
+#define OHCI_CTRL_BLE   (1 << 5)
+#define OHCI_CTRL_HCFS  (3 << 6)
+#       define OHCI_USB_RESET   (0 << 6)
+#       define OHCI_USB_OPER    (2 << 6)
+#define OHCI_CTRL_RWC   (1 << 9)
+
+#define OHCI_HCR        (1 << 0)
+#define OHCI_CLF        (1 << 1)
+
 #define OHCI_INTR_MIE   (1 << 31)
 
+#define RH_PS_CCS            0x00000001
+#define RH_PS_PES            0x00000002
+#define RH_PS_PSS            0x00000004
+#define RH_PS_POCI           0x00000008
+#define RH_PS_PRS            0x00000010
+#define RH_PS_PPS            0x00000100
+#define RH_PS_LSDA           0x00000200
+#define RH_PS_CSC            0x00010000
+#define RH_PS_PESC           0x00020000
+#define RH_PS_PSSC           0x00040000
+#define RH_PS_OCIC           0x00080000
+#define RH_PS_PRSC           0x00100000
+
+#define RH_HS_LPS            0x00000001
+#define RH_HS_OCI            0x00000002
+#define RH_HS_DRWE           0x00008000
+#define RH_HS_LPSC           0x00010000
+#define RH_HS_OCIC           0x00020000
+#define RH_HS_CRWE           0x80000000
+
+#define RH_B_DR         0x0000ffff
+#define RH_B_PPCM       0xffff0000
+
+#define RH_A_NDP        (0xff << 0)
+#define RH_A_PSM        (1 << 8)
+#define RH_A_NPS        (1 << 9)
+#define RH_A_DT         (1 << 10)
+#define RH_A_OCPM       (1 << 11)
+#define RH_A_NOCP       (1 << 12)
+#define RH_A_POTPGT     (0xff << 24)
+
 #endif // usb-ohci.h