diff options
author | AJM <poslathian@poslathian.(none)> | 2010-04-19 17:06:25 -0400 |
---|---|---|
committer | bnewbold <bnewbold@robocracy.org> | 2010-05-20 22:09:15 -0400 |
commit | 06f5a1d3ec3f54a4a6ec9bbe6b9e7c45d9c18c7c (patch) | |
tree | cb9495581dd001a18f1288b9e8a638fae6e13708 | |
parent | a81a7475f55feb33116a9101c9c24f9568f28678 (diff) | |
download | librambutan-06f5a1d3ec3f54a4a6ec9bbe6b9e7c45d9c18c7c.tar.gz librambutan-06f5a1d3ec3f54a4a6ec9bbe6b9e7c45d9c18c7c.zip |
added the string descriptors to the descriptor set so that when you plug in the device it can actually report "LeafLabs Maple R3"
-rw-r--r-- | core/usb/descriptors.c | 41 | ||||
-rw-r--r-- | core/usb/descriptors.h | 10 |
2 files changed, 49 insertions, 2 deletions
diff --git a/core/usb/descriptors.c b/core/usb/descriptors.c index eca3f3f..522b8d6 100644 --- a/core/usb/descriptors.c +++ b/core/usb/descriptors.c @@ -1,5 +1,6 @@ /* insert license */ + #include "descriptors.h" USB_Descriptor_Device usbVcomDescriptor_Device = { @@ -118,5 +119,43 @@ USB_Descriptor_Configuration usbVcomDescriptor_Config = { bmAttributes: EP_TYPE_BULK, wMaxPacketSize: VCOM_TX_EPSIZE, bInterval: 0x00 - }, + } }; + +/* + String Identifiers: + + we may choose to specify any or none of the following string + identifiers: + + iManufacturer: LeafLabs + iProduct: Maple R3 + iSerialNumber: NONE + iConfiguration: NONE + iInterface(CCI): NONE + iInterface(DCI): NONE + + additionally we must provide the unicode language identifier, + which is 0x0409 for US English +*/ + +USB_Descriptor_String usbVcomDescriptor_LangID = + { + bLength: USB_DESCRIPTOR_STRING_LEN(1), + bDescriptorType: USB_DESCRIPTOR_TYPE_STRING, + bString: 0x0409 + }; + +USB_Descriptor_String usbVcomDescriptor_iManufacturer = + { + bLength: USB_DESCRIPTOR_STRING_LEN(8), + bDescriptorType: USB_DESCRIPTOR_TYPE_STRING, + bString: L"LeafLabs" + }; + +USB_Descriptor_String usbVcomDescriptor_iProduct = + { + bLength: USB_DESCRIPTOR_STRING_LEN(8), + bDescriptorType: USB_DESCRIPTOR_TYPE_STRING, + bString: L"Maple R3" + }; diff --git a/core/usb/descriptors.h b/core/usb/descriptors.h index 1463221..1beabcc 100644 --- a/core/usb/descriptors.h +++ b/core/usb/descriptors.h @@ -18,6 +18,8 @@ uint8 Data[DataSize]; \ } +#define USB_DESCRIPTOR_STRING_LEN(x) (2 + (x << 1)) + typedef struct { uint8 bLength; uint8 bDescriptorType; @@ -78,7 +80,13 @@ typedef struct { USB_Descriptor_Interface DCI_Interface; USB_Descriptor_Endpoint DataOutEndpoint; USB_Descriptor_Endpoint DataInEndpoint; -} USB_Descriptor_Configuration; +}USB_Descriptor_Configuration; + +typedef struct { + uint8 bLength; + uint8 bDescriptorType; + uint16 bString[]; +} USB_Descriptor_String; #if defined(__cplusplus) |