root / arduino-1.0 / hardware / arduino / firmwares / arduino-usbserial / Descriptors.h @ 58d82c77
History | View | Annotate | Download (3.37 KB)
1 |
/*
|
---|---|
2 |
LUFA Library
|
3 |
Copyright (C) Dean Camera, 2010.
|
4 |
|
5 |
dean [at] fourwalledcubicle [dot] com
|
6 |
www.fourwalledcubicle.com
|
7 |
*/
|
8 |
|
9 |
/*
|
10 |
Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
|
11 |
|
12 |
Permission to use, copy, modify, distribute, and sell this
|
13 |
software and its documentation for any purpose is hereby granted
|
14 |
without fee, provided that the above copyright notice appear in
|
15 |
all copies and that both that the copyright notice and this
|
16 |
permission notice and warranty disclaimer appear in supporting
|
17 |
documentation, and that the name of the author not be used in
|
18 |
advertising or publicity pertaining to distribution of the
|
19 |
software without specific, written prior permission.
|
20 |
|
21 |
The author disclaim all warranties with regard to this
|
22 |
software, including all implied warranties of merchantability
|
23 |
and fitness. In no event shall the author be liable for any
|
24 |
special, indirect or consequential damages or any damages
|
25 |
whatsoever resulting from loss of use, data or profits, whether
|
26 |
in an action of contract, negligence or other tortious action,
|
27 |
arising out of or in connection with the use or performance of
|
28 |
this software.
|
29 |
*/
|
30 |
|
31 |
/** \file
|
32 |
*
|
33 |
* Header file for Descriptors.c.
|
34 |
*/
|
35 |
|
36 |
#ifndef _DESCRIPTORS_H_
|
37 |
#define _DESCRIPTORS_H_
|
38 |
|
39 |
/* Includes: */
|
40 |
#include <avr/pgmspace.h> |
41 |
|
42 |
#include <LUFA/Drivers/USB/USB.h> |
43 |
#include <LUFA/Drivers/USB/Class/CDC.h> |
44 |
|
45 |
/* Product-specific definitions: */
|
46 |
#define ARDUINO_UNO_PID 0x0001 |
47 |
#define ARDUINO_MEGA2560_PID 0x0010 |
48 |
|
49 |
/* Macros: */
|
50 |
/** Endpoint number of the CDC device-to-host notification IN endpoint. */
|
51 |
#define CDC_NOTIFICATION_EPNUM 2 |
52 |
|
53 |
/** Endpoint number of the CDC device-to-host data IN endpoint. */
|
54 |
#define CDC_TX_EPNUM 3 |
55 |
|
56 |
/** Endpoint number of the CDC host-to-device data OUT endpoint. */
|
57 |
#define CDC_RX_EPNUM 4 |
58 |
|
59 |
/** Size in bytes of the CDC device-to-host notification IN endpoint. */
|
60 |
#define CDC_NOTIFICATION_EPSIZE 8 |
61 |
|
62 |
/** Size in bytes of the CDC data IN and OUT endpoints. */
|
63 |
#define CDC_TXRX_EPSIZE 64 |
64 |
|
65 |
/* Type Defines: */
|
66 |
/** Type define for the device configuration descriptor structure. This must be defined in the
|
67 |
* application code, as the configuration descriptor contains several sub-descriptors which
|
68 |
* vary between devices, and which describe the device's usage to the host.
|
69 |
*/
|
70 |
typedef struct |
71 |
{ |
72 |
USB_Descriptor_Configuration_Header_t Config; |
73 |
USB_Descriptor_Interface_t CDC_CCI_Interface; |
74 |
CDC_FUNCTIONAL_DESCRIPTOR(2) CDC_Functional_IntHeader;
|
75 |
CDC_FUNCTIONAL_DESCRIPTOR(1) CDC_Functional_AbstractControlManagement;
|
76 |
CDC_FUNCTIONAL_DESCRIPTOR(2) CDC_Functional_Union;
|
77 |
USB_Descriptor_Endpoint_t CDC_NotificationEndpoint; |
78 |
USB_Descriptor_Interface_t CDC_DCI_Interface; |
79 |
USB_Descriptor_Endpoint_t CDC_DataOutEndpoint; |
80 |
USB_Descriptor_Endpoint_t CDC_DataInEndpoint; |
81 |
} USB_Descriptor_Configuration_t; |
82 |
|
83 |
/* Function Prototypes: */
|
84 |
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
|
85 |
const uint8_t wIndex,
|
86 |
void** const DescriptorAddress) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); |
87 |
|
88 |
#endif
|