Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/uhci/uhci.h

    r67a1b78 rea991e84  
    11/*
    2  * Copyright (c) 2010 Jan Vesely
     2 * Copyright (c) 2010 Vojtech Horky
    33 * All rights reserved.
    44 *
     
    2626 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2727 */
    28 /** @addtogroup usb
     28
     29/** @addtogroup drvusbuhci
    2930 * @{
    3031 */
     
    3536#define DRV_UHCI_UHCI_H
    3637
    37 #include <fibril.h>
    38 
    39 #include <usb/addrkeep.h>
    4038#include <usbhc_iface.h>
    4139
    42 #include "root_hub/root_hub.h"
    43 #include "transfer_list.h"
     40#define NAME "uhci"
    4441
    45 typedef struct uhci_regs {
    46         uint16_t usbcmd;
    47 #define UHCI_CMD_MAX_PACKET (1 << 7)
    48 #define UHCI_CMD_CONFIGURE  (1 << 6)
    49 #define UHCI_CMD_DEBUG  (1 << 5)
    50 #define UHCI_CMD_FORCE_GLOBAL_RESUME  (1 << 4)
    51 #define UHCI_CMD_FORCE_GLOBAL_SUSPEND  (1 << 3)
    52 #define UHCI_CMD_GLOBAL_RESET  (1 << 2)
    53 #define UHCI_CMD_HCRESET  (1 << 1)
    54 #define UHCI_CMD_RUN_STOP  (1 << 0)
     42usbhc_iface_t uhci_iface;
    5543
    56         uint16_t usbsts;
    57 #define UHCI_STATUS_HALTED (1 << 5)
    58 #define UHCI_STATUS_PROCESS_ERROR (1 << 4)
    59 #define UHCI_STATUS_SYSTEM_ERROR (1 << 3)
    60 #define UHCI_STATUS_RESUME (1 << 2)
    61 #define UHCI_STATUS_ERROR_INTERRUPT (1 << 1)
    62 #define UHCI_STATUS_INTERRUPT (1 << 0)
    63 
    64         uint16_t usbintr;
    65         uint16_t frnum;
    66         uint32_t flbaseadd;
    67         uint8_t sofmod;
    68 } regs_t;
    69 
    70 #define TRANSFER_QUEUES 4
    71 #define UHCI_FRAME_LIST_COUNT 1024
    72 #define UHCI_CLEANER_TIMEOUT 1000000
    73 #define UHCI_DEBUGER_TIMEOUT 500000
    74 
    75 typedef struct uhci {
    76         usb_address_keeping_t address_manager;
    77         uhci_root_hub_t root_hub;
    78         volatile regs_t *registers;
    79 
    80         link_pointer_t *frame_list;
    81 
    82         transfer_list_t transfers[TRANSFER_QUEUES];
    83         fid_t cleaner;
    84         fid_t debug_checker;
    85 } uhci_t;
    86 
    87 /* init uhci specifics in device.driver_data */
    88 int uhci_init( device_t *device, void *regs );
    89 
    90 int uhci_destroy( device_t *device );
    91 
    92 int uhci_transfer(
    93   device_t *dev,
    94   usb_target_t target,
    95   usb_transfer_type_t transfer_type,
    96         bool toggle,
    97   usb_packet_id pid,
    98   void *buffer, size_t size,
    99   usbhc_iface_transfer_out_callback_t callback_out,
    100   usbhc_iface_transfer_in_callback_t callback_in,
    101   void *arg );
     44int pci_get_my_registers(device_t *, uintptr_t *, size_t *, int *);
    10245
    10346#endif
Note: See TracChangeset for help on using the changeset viewer.