From 9bdf2f92bf95c69d668772e1c289ab89868aa738 Mon Sep 17 00:00:00 2001 From: Bernhard Tittelbach Date: Thu, 17 May 2012 06:14:24 +0000 Subject: usb lib git-svn-id: https://svn.spreadspace.org/mur.sat@415 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- software/hhd70dongle/usb_rawhid.h | 85 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 software/hhd70dongle/usb_rawhid.h (limited to 'software/hhd70dongle/usb_rawhid.h') diff --git a/software/hhd70dongle/usb_rawhid.h b/software/hhd70dongle/usb_rawhid.h new file mode 100644 index 0000000..65bc4de --- /dev/null +++ b/software/hhd70dongle/usb_rawhid.h @@ -0,0 +1,85 @@ +#ifndef usb_serial_h__ +#define usb_serial_h__ + +#include + +void usb_init(void); // initialize everything +uint8_t usb_configured(void); // is the USB port configured +int8_t usb_rawhid_recv(uint8_t *buffer, uint8_t timeout); // receive a packet, with timeout +int8_t usb_rawhid_send(const uint8_t *buffer, uint8_t timeout); // send a packet, with timeout + +// This file does not include the HID debug functions, so these empty +// macros replace them with nothing, so users can compile code that +// has calls to these functions. +#define usb_debug_putchar(c) +#define usb_debug_flush_output() + + +// Everything below this point is only intended for usb_serial.c +#ifdef USB_PRIVATE_INCLUDE +#include +#include +#include + +#define EP_TYPE_CONTROL 0x00 +#define EP_TYPE_BULK_IN 0x81 +#define EP_TYPE_BULK_OUT 0x80 +#define EP_TYPE_INTERRUPT_IN 0xC1 +#define EP_TYPE_INTERRUPT_OUT 0xC0 +#define EP_TYPE_ISOCHRONOUS_IN 0x41 +#define EP_TYPE_ISOCHRONOUS_OUT 0x40 + +#define EP_SINGLE_BUFFER 0x02 +#define EP_DOUBLE_BUFFER 0x06 + +#define EP_SIZE(s) ((s) > 32 ? 0x30 : \ + ((s) > 16 ? 0x20 : \ + ((s) > 8 ? 0x10 : \ + 0x00))) + +#define MAX_ENDPOINT 4 + +#define LSB(n) (n & 255) +#define MSB(n) ((n >> 8) & 255) + +#if defined(__AVR_AT90USB162__) +#define HW_CONFIG() +#define PLL_CONFIG() (PLLCSR = ((1<