|
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 |