source: mainline/uspace/drv/uhci/uhci.c@ 8324b65

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 8324b65 was 8324b65, checked in by Jan Vesely <jano.vesely@…>, 14 years ago

Pretend that all went well in sending usb setup packets

  • Property mode set to 100644
File size: 2.4 KB
Line 
1#include <errno.h>
2#include <usb/debug.h>
3#include <usb/usb.h>
4
5#include "debug.h"
6#include "name.h"
7#include "uhci.h"
8
9
10int uhci_init(device_t *device, void *regs)
11{
12 assert( device );
13 uhci_print_info( "Initializing device at address %p\n", device);
14
15 /* create instance */
16 uhci_t *instance = malloc( sizeof(uhci_t) );
17 if (!instance)
18 { return ENOMEM; }
19 memset( instance, 0, sizeof(uhci_t) );
20
21 /* init address keeper(libusb) */
22 usb_address_keeping_init( &instance->address_manager, USB11_ADDRESS_MAX );
23
24 /* allow access to hc control registers */
25 regs_t *io;
26 int ret = pio_enable( regs, sizeof(regs_t), (void**)&io);
27 if (ret < 0) {
28 free( instance );
29 printf(NAME": Failed to gain access to registers at %p\n", io);
30 return ret;
31 }
32 instance->registers = io;
33
34 /* init root hub */
35 ret = uhci_root_hub_init( &instance->root_hub, device,
36 (char*)regs + UHCI_ROOT_HUB_PORT_REGISTERS_OFFSET );
37 if (ret < 0) {
38 free( instance );
39 printf(NAME": Failed to initialize root hub driver.\n");
40 return ret;
41 }
42
43 device->driver_data = instance;
44 return EOK;
45}
46/*----------------------------------------------------------------------------*/
47int uhci_in(
48 device_t *dev,
49 usb_target_t target,
50 usb_transfer_type_t transfer_type,
51 void *buffer, size_t size,
52 usbhc_iface_transfer_in_callback_t callback, void *arg
53 )
54{
55 uhci_print_info( "transfer IN [%d.%d (%s); %zu]\n",
56 target.address, target.endpoint,
57 usb_str_transfer_type(transfer_type),
58 size);
59
60 return ENOTSUP;
61}
62/*----------------------------------------------------------------------------*/
63int uhci_out(
64 device_t *dev,
65 usb_target_t target,
66 usb_transfer_type_t transfer_type,
67 void *buffer, size_t size,
68 usbhc_iface_transfer_out_callback_t callback, void *arg
69 )
70{
71 uhci_print_info( "transfer OUT [%d.%d (%s); %zu]\n",
72 target.address, target.endpoint,
73 usb_str_transfer_type(transfer_type),
74 size);
75
76 return ENOTSUP;
77}
78/*----------------------------------------------------------------------------*/
79int uhci_setup(
80 device_t *dev,
81 usb_target_t target,
82 usb_transfer_type_t transfer_type,
83 void *buffer, size_t size,
84 usbhc_iface_transfer_out_callback_t callback, void *arg
85 )
86{
87 uhci_print_info( "transfer SETUP [%d.%d (%s); %zu]\n",
88 target.address, target.endpoint,
89 usb_str_transfer_type(transfer_type),
90 size);
91 callback( dev, USB_OUTCOME_OK, arg );
92
93 return ENOTSUP;
94}
95/*----------------------------------------------------------------------------*/
Note: See TracBrowser for help on using the repository browser.