aboutsummaryrefslogtreecommitdiff
path: root/cores/arduino/USBCore.h
diff options
context:
space:
mode:
Diffstat (limited to 'cores/arduino/USBCore.h')
-rw-r--r--cores/arduino/USBCore.h197
1 files changed, 0 insertions, 197 deletions
diff --git a/cores/arduino/USBCore.h b/cores/arduino/USBCore.h
deleted file mode 100644
index 578e1b8..0000000
--- a/cores/arduino/USBCore.h
+++ /dev/null
@@ -1,197 +0,0 @@
-
-// Copyright (c) 2010, Peter Barrett
-/*
-** Permission to use, copy, modify, and/or distribute this software for
-** any purpose with or without fee is hereby granted, provided that the
-** above copyright notice and this permission notice appear in all copies.
-**
-** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
-** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
-** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
-** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
-** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-** SOFTWARE.
-*/
-
-#ifndef __USBCORE_H__
-#define __USBCORE_H__
-
-#include "USBAPI.h"
-
-// Standard requests
-#define GET_STATUS 0
-#define CLEAR_FEATURE 1
-#define SET_FEATURE 3
-#define SET_ADDRESS 5
-#define GET_DESCRIPTOR 6
-#define SET_DESCRIPTOR 7
-#define GET_CONFIGURATION 8
-#define SET_CONFIGURATION 9
-#define GET_INTERFACE 10
-#define SET_INTERFACE 11
-
-
-// bmRequestType
-#define REQUEST_HOSTTODEVICE 0x00
-#define REQUEST_DEVICETOHOST 0x80
-#define REQUEST_DIRECTION 0x80
-
-#define REQUEST_STANDARD 0x00
-#define REQUEST_CLASS 0x20
-#define REQUEST_VENDOR 0x40
-#define REQUEST_TYPE 0x60
-
-#define REQUEST_DEVICE 0x00
-#define REQUEST_INTERFACE 0x01
-#define REQUEST_ENDPOINT 0x02
-#define REQUEST_OTHER 0x03
-#define REQUEST_RECIPIENT 0x03
-
-#define REQUEST_DEVICETOHOST_CLASS_INTERFACE (REQUEST_DEVICETOHOST | REQUEST_CLASS | REQUEST_INTERFACE)
-#define REQUEST_HOSTTODEVICE_CLASS_INTERFACE (REQUEST_HOSTTODEVICE | REQUEST_CLASS | REQUEST_INTERFACE)
-#define REQUEST_DEVICETOHOST_STANDARD_INTERFACE (REQUEST_DEVICETOHOST | REQUEST_STANDARD | REQUEST_INTERFACE)
-
-// Descriptors
-
-#define USB_DEVICE_DESC_SIZE 18
-#define USB_CONFIGUARTION_DESC_SIZE 9
-#define USB_INTERFACE_DESC_SIZE 9
-#define USB_ENDPOINT_DESC_SIZE 7
-
-#define USB_DEVICE_DESCRIPTOR_TYPE 1
-#define USB_CONFIGURATION_DESCRIPTOR_TYPE 2
-#define USB_STRING_DESCRIPTOR_TYPE 3
-#define USB_INTERFACE_DESCRIPTOR_TYPE 4
-#define USB_ENDPOINT_DESCRIPTOR_TYPE 5
-
-// usb_20.pdf Table 9.6 Standard Feature Selectors
-#define DEVICE_REMOTE_WAKEUP 1
-#define ENDPOINT_HALT 2
-#define TEST_MODE 3
-
-// usb_20.pdf Figure 9-4. Information Returned by a GetStatus() Request to a Device
-#define FEATURE_SELFPOWERED_ENABLED (1 << 0)
-#define FEATURE_REMOTE_WAKEUP_ENABLED (1 << 1)
-
-#define USB_DEVICE_CLASS_COMMUNICATIONS 0x02
-#define USB_DEVICE_CLASS_HUMAN_INTERFACE 0x03
-#define USB_DEVICE_CLASS_STORAGE 0x08
-#define USB_DEVICE_CLASS_VENDOR_SPECIFIC 0xFF
-
-#define USB_CONFIG_POWERED_MASK 0x40
-#define USB_CONFIG_BUS_POWERED 0x80
-#define USB_CONFIG_SELF_POWERED 0xC0
-#define USB_CONFIG_REMOTE_WAKEUP 0x20
-
-// bMaxPower in Configuration Descriptor
-#define USB_CONFIG_POWER_MA(mA) ((mA)/2)
-#ifndef USB_CONFIG_POWER
- #define USB_CONFIG_POWER (500)
-#endif
-
-// bEndpointAddress in Endpoint Descriptor
-#define USB_ENDPOINT_DIRECTION_MASK 0x80
-#define USB_ENDPOINT_OUT(addr) (lowByte((addr) | 0x00))
-#define USB_ENDPOINT_IN(addr) (lowByte((addr) | 0x80))
-
-#define USB_ENDPOINT_TYPE_MASK 0x03
-#define USB_ENDPOINT_TYPE_CONTROL 0x00
-#define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
-#define USB_ENDPOINT_TYPE_BULK 0x02
-#define USB_ENDPOINT_TYPE_INTERRUPT 0x03
-
-#define TOBYTES(x) ((x) & 0xFF),(((x) >> 8) & 0xFF)
-
-#ifndef USB_VERSION
-#define USB_VERSION 0x200
-#endif
-
-// Device
-typedef struct {
- u8 len; // 18
- u8 dtype; // 1 USB_DEVICE_DESCRIPTOR_TYPE
- u16 usbVersion; // 0x200 or 0x210
- u8 deviceClass;
- u8 deviceSubClass;
- u8 deviceProtocol;
- u8 packetSize0; // Packet 0
- u16 idVendor;
- u16 idProduct;
- u16 deviceVersion; // 0x100
- u8 iManufacturer;
- u8 iProduct;
- u8 iSerialNumber;
- u8 bNumConfigurations;
-} DeviceDescriptor;
-
-// Config
-typedef struct {
- u8 len; // 9
- u8 dtype; // 2
- u16 clen; // total length
- u8 numInterfaces;
- u8 config;
- u8 iconfig;
- u8 attributes;
- u8 maxPower;
-} ConfigDescriptor;
-
-// String
-
-// Interface
-typedef struct
-{
- u8 len; // 9
- u8 dtype; // 4
- u8 number;
- u8 alternate;
- u8 numEndpoints;
- u8 interfaceClass;
- u8 interfaceSubClass;
- u8 protocol;
- u8 iInterface;
-} InterfaceDescriptor;
-
-// Endpoint
-typedef struct
-{
- u8 len; // 7
- u8 dtype; // 5
- u8 addr;
- u8 attr;
- u16 packetSize;
- u8 interval;
-} EndpointDescriptor;
-
-#define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs) \
- { 18, 1, USB_VERSION, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs }
-
-#define D_CONFIG(_totalLength,_interfaces) \
- { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED | USB_CONFIG_REMOTE_WAKEUP, USB_CONFIG_POWER_MA(USB_CONFIG_POWER) }
-
-#define D_INTERFACE(_n,_numEndpoints,_class,_subClass,_protocol) \
- { 9, 4, _n, 0, _numEndpoints, _class,_subClass, _protocol, 0 }
-
-#define D_ENDPOINT(_addr,_attr,_packetSize, _interval) \
- { 7, 5, _addr,_attr,_packetSize, _interval }
-
-// Bootloader related fields
-// Old Caterina bootloader places the MAGIC key into unsafe RAM locations (it can be rewritten
-// by the running sketch before to actual reboot).
-// Newer bootloaders, recognizable by the LUFA "signature" at the end of the flash, can handle both
-// the usafe and the safe location.
-#ifndef MAGIC_KEY
-#define MAGIC_KEY 0x7777
-#endif
-
-#ifndef MAGIC_KEY_POS
-#define MAGIC_KEY_POS 0x0800
-#endif
-
-#ifndef NEW_LUFA_SIGNATURE
-#define NEW_LUFA_SIGNATURE 0xDCFB
-#endif
-
-#endif