|
@@ -11,30 +11,10 @@
|
|
|
* (at your option) any later version.
|
|
|
*/
|
|
|
|
|
|
-
|
|
|
/*
|
|
|
* This file requires the following identifiers used in USB strings to
|
|
|
* be defined (each of type pointer to char):
|
|
|
- * - fsg_string_manufacturer -- name of the manufacturer
|
|
|
- * - fsg_string_product -- name of the product
|
|
|
- * - fsg_string_config -- name of the configuration
|
|
|
* - fsg_string_interface -- name of the interface
|
|
|
- * The first four are only needed when FSG_DESCRIPTORS_DEVICE_STRINGS
|
|
|
- * macro is defined prior to including this file.
|
|
|
- */
|
|
|
-
|
|
|
-/*
|
|
|
- * When FSG_NO_INTR_EP is defined fsg_fs_intr_in_desc and
|
|
|
- * fsg_hs_intr_in_desc objects as well as
|
|
|
- * FSG_FS_FUNCTION_PRE_EP_ENTRIES and FSG_HS_FUNCTION_PRE_EP_ENTRIES
|
|
|
- * macros are not defined.
|
|
|
- *
|
|
|
- * When FSG_NO_DEVICE_STRINGS is defined FSG_STRING_MANUFACTURER,
|
|
|
- * FSG_STRING_PRODUCT, FSG_STRING_SERIAL and FSG_STRING_CONFIG are not
|
|
|
- * defined (as well as corresponding entries in string tables are
|
|
|
- * missing) and FSG_STRING_INTERFACE has value of zero.
|
|
|
- *
|
|
|
- * When FSG_NO_OTG is defined fsg_otg_desc won't be defined.
|
|
|
*/
|
|
|
|
|
|
/*
|
|
@@ -280,26 +260,10 @@ static inline u32 get_unaligned_be24(u8 *buf)
|
|
|
|
|
|
|
|
|
enum {
|
|
|
-#ifndef FSG_NO_DEVICE_STRINGS
|
|
|
- FSG_STRING_MANUFACTURER = 1,
|
|
|
- FSG_STRING_PRODUCT,
|
|
|
- FSG_STRING_SERIAL,
|
|
|
- FSG_STRING_CONFIG,
|
|
|
-#endif
|
|
|
FSG_STRING_INTERFACE
|
|
|
};
|
|
|
|
|
|
|
|
|
-#ifndef FSG_NO_OTG
|
|
|
-static struct usb_otg_descriptor
|
|
|
-fsg_otg_desc = {
|
|
|
- .bLength = sizeof fsg_otg_desc,
|
|
|
- .bDescriptorType = USB_DT_OTG,
|
|
|
-
|
|
|
- .bmAttributes = USB_OTG_SRP,
|
|
|
-};
|
|
|
-#endif
|
|
|
-
|
|
|
/* There is only one interface. */
|
|
|
|
|
|
static struct usb_interface_descriptor
|
|
@@ -339,37 +303,10 @@ fsg_fs_bulk_out_desc = {
|
|
|
/* wMaxPacketSize set by autoconfiguration */
|
|
|
};
|
|
|
|
|
|
-#ifndef FSG_NO_INTR_EP
|
|
|
-
|
|
|
-static struct usb_endpoint_descriptor
|
|
|
-fsg_fs_intr_in_desc = {
|
|
|
- .bLength = USB_DT_ENDPOINT_SIZE,
|
|
|
- .bDescriptorType = USB_DT_ENDPOINT,
|
|
|
-
|
|
|
- .bEndpointAddress = USB_DIR_IN,
|
|
|
- .bmAttributes = USB_ENDPOINT_XFER_INT,
|
|
|
- .wMaxPacketSize = cpu_to_le16(2),
|
|
|
- .bInterval = 32, /* frames -> 32 ms */
|
|
|
-};
|
|
|
-
|
|
|
-#ifndef FSG_NO_OTG
|
|
|
-# define FSG_FS_FUNCTION_PRE_EP_ENTRIES 2
|
|
|
-#else
|
|
|
-# define FSG_FS_FUNCTION_PRE_EP_ENTRIES 1
|
|
|
-#endif
|
|
|
-
|
|
|
-#endif
|
|
|
-
|
|
|
static struct usb_descriptor_header *fsg_fs_function[] = {
|
|
|
-#ifndef FSG_NO_OTG
|
|
|
- (struct usb_descriptor_header *) &fsg_otg_desc,
|
|
|
-#endif
|
|
|
(struct usb_descriptor_header *) &fsg_intf_desc,
|
|
|
(struct usb_descriptor_header *) &fsg_fs_bulk_in_desc,
|
|
|
(struct usb_descriptor_header *) &fsg_fs_bulk_out_desc,
|
|
|
-#ifndef FSG_NO_INTR_EP
|
|
|
- (struct usb_descriptor_header *) &fsg_fs_intr_in_desc,
|
|
|
-#endif
|
|
|
NULL,
|
|
|
};
|
|
|
|
|
@@ -403,37 +340,11 @@ fsg_hs_bulk_out_desc = {
|
|
|
.bInterval = 1, /* NAK every 1 uframe */
|
|
|
};
|
|
|
|
|
|
-#ifndef FSG_NO_INTR_EP
|
|
|
-
|
|
|
-static struct usb_endpoint_descriptor
|
|
|
-fsg_hs_intr_in_desc = {
|
|
|
- .bLength = USB_DT_ENDPOINT_SIZE,
|
|
|
- .bDescriptorType = USB_DT_ENDPOINT,
|
|
|
-
|
|
|
- /* bEndpointAddress copied from fs_intr_in_desc during fsg_bind() */
|
|
|
- .bmAttributes = USB_ENDPOINT_XFER_INT,
|
|
|
- .wMaxPacketSize = cpu_to_le16(2),
|
|
|
- .bInterval = USB_MS_TO_HS_INTERVAL(32), /* 32 ms */
|
|
|
-};
|
|
|
-
|
|
|
-#ifndef FSG_NO_OTG
|
|
|
-# define FSG_HS_FUNCTION_PRE_EP_ENTRIES 2
|
|
|
-#else
|
|
|
-# define FSG_HS_FUNCTION_PRE_EP_ENTRIES 1
|
|
|
-#endif
|
|
|
-
|
|
|
-#endif
|
|
|
|
|
|
static struct usb_descriptor_header *fsg_hs_function[] = {
|
|
|
-#ifndef FSG_NO_OTG
|
|
|
- (struct usb_descriptor_header *) &fsg_otg_desc,
|
|
|
-#endif
|
|
|
(struct usb_descriptor_header *) &fsg_intf_desc,
|
|
|
(struct usb_descriptor_header *) &fsg_hs_bulk_in_desc,
|
|
|
(struct usb_descriptor_header *) &fsg_hs_bulk_out_desc,
|
|
|
-#ifndef FSG_NO_INTR_EP
|
|
|
- (struct usb_descriptor_header *) &fsg_hs_intr_in_desc,
|
|
|
-#endif
|
|
|
NULL,
|
|
|
};
|
|
|
|
|
@@ -471,34 +382,6 @@ static struct usb_ss_ep_comp_descriptor fsg_ss_bulk_out_comp_desc = {
|
|
|
/*.bMaxBurst = DYNAMIC, */
|
|
|
};
|
|
|
|
|
|
-#ifndef FSG_NO_INTR_EP
|
|
|
-
|
|
|
-static struct usb_endpoint_descriptor
|
|
|
-fsg_ss_intr_in_desc = {
|
|
|
- .bLength = USB_DT_ENDPOINT_SIZE,
|
|
|
- .bDescriptorType = USB_DT_ENDPOINT,
|
|
|
-
|
|
|
- /* bEndpointAddress copied from fs_intr_in_desc during fsg_bind() */
|
|
|
- .bmAttributes = USB_ENDPOINT_XFER_INT,
|
|
|
- .wMaxPacketSize = cpu_to_le16(2),
|
|
|
- .bInterval = USB_MS_TO_HS_INTERVAL(32), /* 32 ms */
|
|
|
-};
|
|
|
-
|
|
|
-static struct usb_ss_ep_comp_descriptor fsg_ss_intr_in_comp_desc = {
|
|
|
- .bLength = sizeof(fsg_ss_bulk_in_comp_desc),
|
|
|
- .bDescriptorType = USB_DT_SS_ENDPOINT_COMP,
|
|
|
-
|
|
|
- .wBytesPerInterval = cpu_to_le16(2),
|
|
|
-};
|
|
|
-
|
|
|
-#ifndef FSG_NO_OTG
|
|
|
-# define FSG_SS_FUNCTION_PRE_EP_ENTRIES 2
|
|
|
-#else
|
|
|
-# define FSG_SS_FUNCTION_PRE_EP_ENTRIES 1
|
|
|
-#endif
|
|
|
-
|
|
|
-#endif
|
|
|
-
|
|
|
static __maybe_unused struct usb_ext_cap_descriptor fsg_ext_cap_desc = {
|
|
|
.bLength = USB_DT_USB_EXT_CAP_SIZE,
|
|
|
.bDescriptorType = USB_DT_DEVICE_CAPABILITY,
|
|
@@ -535,18 +418,11 @@ static __maybe_unused struct usb_bos_descriptor fsg_bos_desc = {
|
|
|
};
|
|
|
|
|
|
static struct usb_descriptor_header *fsg_ss_function[] = {
|
|
|
-#ifndef FSG_NO_OTG
|
|
|
- (struct usb_descriptor_header *) &fsg_otg_desc,
|
|
|
-#endif
|
|
|
(struct usb_descriptor_header *) &fsg_intf_desc,
|
|
|
(struct usb_descriptor_header *) &fsg_ss_bulk_in_desc,
|
|
|
(struct usb_descriptor_header *) &fsg_ss_bulk_in_comp_desc,
|
|
|
(struct usb_descriptor_header *) &fsg_ss_bulk_out_desc,
|
|
|
(struct usb_descriptor_header *) &fsg_ss_bulk_out_comp_desc,
|
|
|
-#ifndef FSG_NO_INTR_EP
|
|
|
- (struct usb_descriptor_header *) &fsg_ss_intr_in_desc,
|
|
|
- (struct usb_descriptor_header *) &fsg_ss_intr_in_comp_desc,
|
|
|
-#endif
|
|
|
NULL,
|
|
|
};
|
|
|
|
|
@@ -566,12 +442,6 @@ fsg_ep_desc(struct usb_gadget *g, struct usb_endpoint_descriptor *fs,
|
|
|
|
|
|
/* Static strings, in UTF-8 (for simplicity we use only ASCII characters) */
|
|
|
static struct usb_string fsg_strings[] = {
|
|
|
-#ifndef FSG_NO_DEVICE_STRINGS
|
|
|
- {FSG_STRING_MANUFACTURER, fsg_string_manufacturer},
|
|
|
- {FSG_STRING_PRODUCT, fsg_string_product},
|
|
|
- {FSG_STRING_SERIAL, ""},
|
|
|
- {FSG_STRING_CONFIG, fsg_string_config},
|
|
|
-#endif
|
|
|
{FSG_STRING_INTERFACE, fsg_string_interface},
|
|
|
{}
|
|
|
};
|