2 * Acess2 USB Stack - OHCI Driver
3 * - By John Hodge (thePowersGang)
6 * - Open Host Controller Interface driver
9 #define VERSION VER2(0,1)
14 #define MAX_CONTROLLERS 4
17 int OHCI_Initialise(char **Arguments);
18 void OHCI_Cleanup(void);
20 void *OHCI_DataIN(void *Ptr, int Dest, int DataTgl, tUSBHostCb Cb, void *CbData, void *Buf, size_t Length);
21 void *OHCI_DataOUT(void *Ptr, int Dest, int DataTgl, tUSBHostCb Cb, void *CbData, void *Buf, size_t Length);
22 void *OHCI_SendSetup(void *Ptr, int Dest, int DataTgl, tUSBHostCb Cb, void *CbData, void *Buf, size_t Length);
25 MODULE_DEFINE(0, VERSION, USB_OHCI, OHCI_Initialise, OHCI_Cleanup, "USB_Core", NULL);
26 tUSBHostDef gOHCI_HostDef = {
27 .SendIN = OHCI_DataIN,
28 .SendOUT = OHCI_DataOUT,
29 .SendSETUP = OHCI_DataSETUP,
33 int OHCI_Initialise(char **Arguments)
38 while( (id = PCI_GetDeviceByClass(0x0C0310, 0xFFFFFF)) != -1 && card_num < MAX_CONTROLLERS )
42 base_addr = PCI_GetBAR(id, 0); // Offset 0x10
50 void OHCI_Cleanup(void)
52 // TODO: Cleanup for unload
55 void *OHCI_DataIN(void *Ptr, int Dest, int DataTgl, tUSBHostCb Cb, void *CbData, void *Buf, size_t Length)
59 void *OHCI_DataOUT(void *Ptr, int Dest, int DataTgl, tUSBHostCb Cb, void *CbData, void *Buf, size_t Length);
63 void *OHCI_SendSetup(void *Ptr, int Dest, int DataTgl, tUSBHostCb Cb, void *CbData, void *Buf, size_t Length);