root / arduino-1.0 / hardware / arduino / firmwares / arduino-usbserial / Descriptors.h @ 58d82c77
History | View | Annotate | Download (3.37 KB)
1 | 58d82c77 | Tom Mullins | /*
|
---|---|---|---|
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
|