Nodules/USB - Working on OHCI
[tpg/acess2.git] / KernelLand / Modules / USB / OHCI / ohci.c
1 /*
2  * Acess2 USB Stack - OHCI Driver
3  * - By John Hodge (thePowersGang)
4  *
5  * ohci.c
6  * - Open Host Controller Interface driver
7  */
8 #define DEBUG   0
9 #define VERSION VER2(0,1)
10 #include <usb_host.h>
11 #include "ohci.h"
12
13 // === CONSTANTS ===
14 #define MAX_CONTROLLERS 4
15
16 // === PROTOTYPES ===
17  int    OHCI_Initialise(char **Arguments);
18 void    OHCI_Cleanup(void);
19
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);
23
24 // === GLOBALS ===
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,
30         };
31
32 // === CODE ===
33 int OHCI_Initialise(char **Arguments)
34 {
35          int    id;
36          int    card_num = 0;
37         
38         while( (id = PCI_GetDeviceByClass(0x0C0310, 0xFFFFFF)) != -1 && card_num < MAX_CONTROLLERS )
39         {
40                 Uint32  base_addr;
41                 
42                 base_addr = PCI_GetBAR(id, 0);  // Offset 0x10
43         }
44
45         
46         // TODO: Initialise
47         return 0;
48 }
49
50 void OHCI_Cleanup(void)
51 {
52         // TODO: Cleanup for unload
53 }
54
55 void *OHCI_DataIN(void *Ptr, int Dest, int DataTgl, tUSBHostCb Cb, void *CbData, void *Buf, size_t Length)
56 {
57         return NULL;
58 }
59 void *OHCI_DataOUT(void *Ptr, int Dest, int DataTgl, tUSBHostCb Cb, void *CbData,  void *Buf, size_t Length);
60 {
61         return NULL;
62 }
63 void *OHCI_SendSetup(void *Ptr, int Dest, int DataTgl, tUSBHostCb Cb, void *CbData, void *Buf, size_t Length);
64 {
65         return NULL;
66 }

UCC git Repository :: git.ucc.asn.au