summaryrefslogtreecommitdiff
path: root/mcc_generated_files/usb/usb_descriptors.h
blob: 7b001b8b48b9b0a30579f78b4cbaf37e7619ff3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/**
 * USB_DEVICE_STACK Generated API Header File
 * 
 * @file usb_descriptors.h
 * 
 * @ingroup usb_device_stack
 * 
 * @brief Header file for example application descriptors.
 *
 * @version USB_DEVICE_STACK Driver Version 1.0.0
*/
/*
© [2025] Microchip Technology Inc. and its subsidiaries.

    Subject to your compliance with these terms, you may use Microchip 
    software and any derivatives exclusively with Microchip products. 
    You are responsible for complying with 3rd party license terms  
    applicable to your use of 3rd party software (including open source  
    software) that may accompany Microchip software. SOFTWARE IS ?AS IS.? 
    NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS 
    SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,  
    MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT 
    WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, 
    INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY 
    KIND WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF 
    MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE 
    FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP?S 
    TOTAL LIABILITY ON ALL CLAIMS RELATED TO THE SOFTWARE WILL NOT 
    EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR 
    THIS SOFTWARE.
*/

#ifndef USB_DESCRIPTORS_H
#define USB_DESCRIPTORS_H

#include <stddef.h>
#include <usb_protocol_headers.h>
#include "usb_config.h"


/**
 * @ingroup usb_device_stack
 * @def LANG_EN_US
 * @brief Language ID String Descriptor, for English (US).
 */
#define LANG_EN_US 0x0409U

/**
 * @ingroup usb_device_stack
 * @def STRING_MANUFACTURER
 * @brief Manufacturer String descriptor.
 */
#define STRING_MANUFACTURER L"Microchip Technology Inc."

/**
 * @ingroup usb_device_stack
 * @def STRING_PRODUCT
 * @brief Product String descriptor.
 */
#define STRING_PRODUCT      L"Vendor Class Demo"

/**
 * @ingroup usb_device_stack
 * @def STRING_SERIAL
 * @brief Serial Number String descriptor.
 */
#define STRING_SERIAL       L"1"

/**
 * @ingroup usb_device_stack
 * @struct USB_APPLICATION_CONFIGURATION1_struct
 * @brief USB Configuration, Interface and Endpoint descriptors for Config1.
 */
typedef struct USB_APPLICATION_CONFIGURATION1_struct
{
    USB_CONFIGURATION_DESCRIPTOR_t Configuration;
    USB_INTERFACE_DESCRIPTOR_t Interface0Alternate1;
    USB_ENDPOINT_DESCRIPTOR_t Interface0Alternate1_Endpoint1IN;
} USB_APPLICATION_CONFIGURATION1_t;

/**
 * @ingroup usb_device_stack
 * @struct USB_APPLICATION_CONFIGURATION_struct
 * @brief USB Configuration, Interface and Endpoint descriptors.
 */
typedef struct USB_APPLICATION_CONFIGURATION_struct
{
    USB_APPLICATION_CONFIGURATION1_t Config1;
} USB_APPLICATION_CONFIGURATION_t;

/**
 * @ingroup usb_device_stack
 * @struct USB_APPLICATION_STRING_DESCRIPTORS_struct
 * @brief USB String descriptors.
 */
typedef struct USB_APPLICATION_STRING_DESCRIPTORS_struct
{
    USB_DESCRIPTOR_HEADER_t manufacturer_header;
    wchar_t manufacturer[DESCRIPTOR_STRING_LENGTH(STRING_MANUFACTURER)];
    USB_DESCRIPTOR_HEADER_t product_header;
    wchar_t product[DESCRIPTOR_STRING_LENGTH(STRING_PRODUCT)];
    USB_DESCRIPTOR_HEADER_t serial_header;
    wchar_t serial[DESCRIPTOR_STRING_LENGTH(STRING_SERIAL)]; 
} USB_APPLICATION_STRING_DESCRIPTORS_t;

/**
 * @ingroup usb_device_stack
 * @struct descriptorPointers
 * @brief Pointers to the standard USB descriptors.
 */
extern USB_DESCRIPTOR_POINTERS_t descriptorPointers;


#endif // USB_DESCRIPTORS_H
/**
 End of File
*/