#include <errno.h>
#include <str_error.h>
#include <adt/list.h>
#include <libarch/ddi.h>
#include <usb/debug.h>
#include <usb/usb.h>
#include <usb/ddfiface.h>
#include "hc.h"
#include "hcd_endpoint.h"
Go to the source code of this file.
Defines | |
#define | OHCI_USED_INTERRUPTS (I_SO | I_WDH | I_UE | I_RHSC) |
Functions | |
int | hc_add_endpoint (hc_t *instance, usb_address_t address, usb_endpoint_t endpoint, usb_speed_t speed, usb_transfer_type_t type, usb_direction_t direction, size_t mps, size_t size, unsigned interval) |
Create end register endpoint structures. | |
static void | hc_gain_control (hc_t *instance) |
Turn off any (BIOS)driver that might be in control of the device. | |
endpoint_t * | hc_get_endpoint (hc_t *instance, usb_address_t address, usb_endpoint_t endpoint, usb_direction_t direction, size_t *bw) |
Get access to endpoint structures. | |
int | hc_init (hc_t *instance, uintptr_t regs, size_t reg_size, bool interrupts) |
Initialize OHCI hc driver structure. | |
static int | hc_init_memory (hc_t *instance) |
Initialize memory structures used by the OHCI hcd. | |
static int | hc_init_transfer_lists (hc_t *instance) |
Initialize schedule queues. | |
void | hc_interrupt (hc_t *instance, uint32_t status) |
Interrupt handling routine. | |
int | hc_register_hub (hc_t *instance, ddf_fun_t *hub_fun) |
Announce OHCI root hub to the DDF. | |
int | hc_remove_endpoint (hc_t *instance, usb_address_t address, usb_endpoint_t endpoint, usb_direction_t direction) |
Dequeue and delete endpoint structures. | |
int | hc_schedule (hc_t *instance, usb_transfer_batch_t *batch) |
Add USB transfer to the schedule. | |
void | hc_start_hw (hc_t *instance) |
OHCI hw initialization routine. | |
static int | interrupt_emulator (hc_t *instance) |
Check status register regularly. |
Definition in file hc.c.