Minor documentation adjustments to the demos, projects and bootloaders to ensure...
[pub/USBasp.git] / Projects / AVRISP-MKII / Descriptors.c
index 9889820..da57b71 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2011.
+     Copyright (C) Dean Camera, 2012.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -53,8 +53,8 @@ const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 
        .Endpoint0Size          = FIXED_CONTROL_ENDPOINT_SIZE,
 
-       .VendorID               = CPU_TO_LE16(0x03EB),
-       .ProductID              = CPU_TO_LE16(0x2104),
+       .VendorID               = 0x03EB,
+       .ProductID              = 0x2104,
        .ReleaseNumber          = VERSION_BCD(02.00),
 
        .ManufacturerStrIndex   = 0x01,
@@ -75,13 +75,13 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
                {
                        .Header                 = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration},
 
-                       .TotalConfigurationSize = CPU_TO_LE16(sizeof(USB_Descriptor_Configuration_t)),
+                       .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t),
                        .TotalInterfaces        = 1,
 
                        .ConfigurationNumber    = 1,
                        .ConfigurationStrIndex  = NO_DESCRIPTOR,
 
-                       .ConfigAttributes       = USB_CONFIG_ATTR_BUSPOWERED,
+                       .ConfigAttributes       = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_SELFPOWERED),
 
                        .MaxPowerConsumption    = USB_CONFIG_POWER_MA(100)
                },
@@ -96,8 +96,8 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
                        .TotalEndpoints         = 2,
 
                        .Class                  = USB_CSCP_VendorSpecificClass,
-                       .SubClass               = 0x00,
-                       .Protocol               = 0x00,
+                       .SubClass               = USB_CSCP_NoDeviceSubclass,
+                       .Protocol               = USB_CSCP_NoDeviceProtocol,
 
                        .InterfaceStrIndex      = NO_DESCRIPTOR
                },
@@ -106,9 +106,9 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
                {
                        .Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 
-                       .EndpointAddress        = (ENDPOINT_DESCRIPTOR_DIR_IN | AVRISP_DATA_IN_EPNUM),
+                       .EndpointAddress        = AVRISP_DATA_IN_EPADDR,
                        .Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
-                       .EndpointSize           = CPU_TO_LE16(AVRISP_DATA_EPSIZE),
+                       .EndpointSize           = AVRISP_DATA_EPSIZE,
                        .PollingIntervalMS      = 0x0A
                },
 
@@ -116,9 +116,9 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
                {
                        .Header                 = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
 
-                       .EndpointAddress        = (ENDPOINT_DESCRIPTOR_DIR_OUT | AVRISP_DATA_OUT_EPNUM),
+                       .EndpointAddress        = AVRISP_DATA_OUT_EPADDR,
                        .Attributes             = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
-                       .EndpointSize           = CPU_TO_LE16(AVRISP_DATA_EPSIZE),
+                       .EndpointSize           = AVRISP_DATA_EPSIZE,
                        .PollingIntervalMS      = 0x0A
                },
 };
@@ -140,19 +140,9 @@ const USB_Descriptor_String_t PROGMEM LanguageString =
  */
 const USB_Descriptor_String_t PROGMEM ManufacturerString =
 {
-       .Header                 = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String},
+       .Header                 = {.Size = USB_STRING_LEN(5), .Type = DTYPE_String},
 
-       .UnicodeString          = {CPU_TO_LE16('D'),
-                                  CPU_TO_LE16('e'), 
-                                  CPU_TO_LE16('a'), 
-                                  CPU_TO_LE16('n'), 
-                                  CPU_TO_LE16(' '), 
-                                  CPU_TO_LE16('C'), 
-                                  CPU_TO_LE16('a'), 
-                                  CPU_TO_LE16('m'), 
-                                  CPU_TO_LE16('e'), 
-                                  CPU_TO_LE16('r'), 
-                                  CPU_TO_LE16('a')}
+       .UnicodeString          = L"ATMEL"
 };
 
 /** Product descriptor string. This is a Unicode string containing the product's details in human readable form,
@@ -161,30 +151,9 @@ const USB_Descriptor_String_t PROGMEM ManufacturerString =
  */
 const USB_Descriptor_String_t PROGMEM ProductString =
 {
-       .Header                 = {.Size = USB_STRING_LEN(22), .Type = DTYPE_String},
-
-       .UnicodeString          = {CPU_TO_LE16('L'), 
-                                  CPU_TO_LE16('U'), 
-                                  CPU_TO_LE16('F'), 
-                                  CPU_TO_LE16('A'), 
-                                  CPU_TO_LE16(' '), 
-                                  CPU_TO_LE16('A'), 
-                                  CPU_TO_LE16('V'), 
-                                  CPU_TO_LE16('R'), 
-                                  CPU_TO_LE16('I'), 
-                                  CPU_TO_LE16('S'), 
-                                  CPU_TO_LE16('P'), 
-                                  CPU_TO_LE16(' '), 
-                                  CPU_TO_LE16('M'), 
-                                  CPU_TO_LE16('k'), 
-                                  CPU_TO_LE16('I'), 
-                                  CPU_TO_LE16('I'), 
-                                  CPU_TO_LE16(' '), 
-                                  CPU_TO_LE16('C'), 
-                                  CPU_TO_LE16('l'), 
-                                  CPU_TO_LE16('o'), 
-                                  CPU_TO_LE16('n'), 
-                                  CPU_TO_LE16('e')}
+       .Header                 = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String},
+
+       .UnicodeString          = L"AVRISP mkII"
 };
 
 /** Serial number string. This is a Unicode string containing the device's unique serial number, expressed as a
@@ -193,20 +162,8 @@ const USB_Descriptor_String_t PROGMEM ProductString =
 const USB_Descriptor_String_t PROGMEM SerialString =
 {
        .Header                 = {.Size = USB_STRING_LEN(13), .Type = DTYPE_String},
-
-       .UnicodeString          = {CPU_TO_LE16('0'), 
-                                  CPU_TO_LE16('0'), 
-                                  CPU_TO_LE16('0'), 
-                                  CPU_TO_LE16('0'), 
-                                  CPU_TO_LE16('A'), 
-                                  CPU_TO_LE16('0'), 
-                                  CPU_TO_LE16('0'), 
-                                  CPU_TO_LE16('1'), 
-                                  CPU_TO_LE16('2'), 
-                                  CPU_TO_LE16('8'), 
-                                  CPU_TO_LE16('2'), 
-                                  CPU_TO_LE16('5'), 
-                                  CPU_TO_LE16('5')}
+       
+       .UnicodeString          = L"000200012345\0" // Note: Real AVRISP-MKII has the embedded NUL byte, bug in firmware?
 };
 
 /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"