V-USB: Remove some stuff from usbconfig.h that should not be configurable (#8656)

* V-USB: Remove some stuff from usbconfig.h that should not be configurable

* Clean up some ifdefs

* And some more

* Even more
This commit is contained in:
Ryan 2020-04-06 08:25:07 +10:00 committed by GitHub
parent 26cb83b8c0
commit ca91dc594b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 53 deletions

View File

@ -41,15 +41,6 @@ section at the end of this file).
* interrupt, the USB interrupt will also be triggered at Start-Of-Frame * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
* markers every millisecond.] * markers every millisecond.]
*/ */
#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
* 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
* require no crystal, they tolerate +/- 1% deviation from the nominal
* frequency. All other rates require a precision of 2000 ppm and thus a
* crystal!
* Since F_CPU should be defined to your actual clock rate anyway, you should
* not need to modify this setting.
*/
#define USB_CFG_CHECK_CRC 0 #define USB_CFG_CHECK_CRC 0
/* Define this to 1 if you want that the driver checks integrity of incoming /* Define this to 1 if you want that the driver checks integrity of incoming
* data packets (CRC checks). CRC checks cost quite a bit of code size and are * data packets (CRC checks). CRC checks cost quite a bit of code size and are
@ -227,19 +218,6 @@ section at the end of this file).
* with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
* the implications! * the implications!
*/ */
#define USB_CFG_DEVICE_CLASS 0
#define USB_CFG_DEVICE_SUBCLASS 0
/* See USB specification if you want to conform to an existing device class.
* Class 0xff is "vendor specific".
*/
#define USB_CFG_INTERFACE_CLASS 3 /* HID */
#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
/* See USB specification if you want to conform to an existing device class or
* protocol. The following classes must be set at interface level:
* HID class is 3, no subclass and protocol required (but may be useful!)
* CDC class is 2, use subclass 2 and protocol 1 for ACM
*/
#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0 #define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
/* Define this to the length of the HID report descriptor, if you implement /* Define this to the length of the HID report descriptor, if you implement
* an HID device. Otherwise don't define it or define it to 0. * an HID device. Otherwise don't define it or define it to 0.

View File

@ -28,7 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "vusb.h" #include "vusb.h"
#include <util/delay.h> #include <util/delay.h>
#if defined(RAW_ENABLE) #ifdef RAW_ENABLE
# include "raw_hid.h" # include "raw_hid.h"
#endif #endif
@ -158,7 +158,7 @@ typedef struct {
} __attribute__((packed)) vusb_mouse_report_t; } __attribute__((packed)) vusb_mouse_report_t;
static void send_mouse(report_mouse_t *report) { static void send_mouse(report_mouse_t *report) {
#if defined(MOUSE_ENABLE) #ifdef MOUSE_ENABLE
vusb_mouse_report_t r = {.report_id = REPORT_ID_MOUSE, .report = *report}; vusb_mouse_report_t r = {.report_id = REPORT_ID_MOUSE, .report = *report};
if (usbInterruptIsReady3()) { if (usbInterruptIsReady3()) {
usbSetInterrupt3((void *)&r, sizeof(vusb_mouse_report_t)); usbSetInterrupt3((void *)&r, sizeof(vusb_mouse_report_t));
@ -410,7 +410,7 @@ const PROGMEM uchar mouse_extra_hid_report[] = {
}; };
#endif #endif
#if defined(RAW_ENABLE) #ifdef RAW_ENABLE
const PROGMEM uchar raw_hid_report[] = { const PROGMEM uchar raw_hid_report[] = {
0x06, 0x60, 0xFF, // Usage Page (Vendor Defined) 0x06, 0x60, 0xFF, // Usage Page (Vendor Defined)
0x09, 0x61, // Usage (Vendor Defined) 0x09, 0x61, // Usage (Vendor Defined)
@ -479,7 +479,6 @@ const PROGMEM usbStringDescriptor_t usbStringDescriptorSerial = {
.bString = LSTR(SERIAL_NUMBER) .bString = LSTR(SERIAL_NUMBER)
}; };
#if USB_CFG_DESCR_PROPS_DEVICE
/* /*
* Device descriptor * Device descriptor
*/ */
@ -489,8 +488,8 @@ const PROGMEM usbDeviceDescriptor_t usbDeviceDescriptor = {
.bDescriptorType = USBDESCR_DEVICE .bDescriptorType = USBDESCR_DEVICE
}, },
.bcdUSB = 0x0110, .bcdUSB = 0x0110,
.bDeviceClass = USB_CFG_DEVICE_CLASS, .bDeviceClass = 0x00,
.bDeviceSubClass = USB_CFG_DEVICE_SUBCLASS, .bDeviceSubClass = 0x00,
.bDeviceProtocol = 0x00, .bDeviceProtocol = 0x00,
.bMaxPacketSize0 = 8, .bMaxPacketSize0 = 8,
.idVendor = VENDOR_ID, .idVendor = VENDOR_ID,
@ -501,9 +500,7 @@ const PROGMEM usbDeviceDescriptor_t usbDeviceDescriptor = {
.iSerialNumber = 0x03, .iSerialNumber = 0x03,
.bNumConfigurations = 1 .bNumConfigurations = 1
}; };
#endif
#if USB_CFG_DESCR_PROPS_CONFIGURATION
/* /*
* Configuration descriptors * Configuration descriptors
*/ */
@ -535,10 +532,10 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
}, },
.bInterfaceNumber = 0, .bInterfaceNumber = 0,
.bAlternateSetting = 0x00, .bAlternateSetting = 0x00,
.bNumEndpoints = USB_CFG_HAVE_INTRIN_ENDPOINT, .bNumEndpoints = 1,
.bInterfaceClass = USB_CFG_INTERFACE_CLASS, .bInterfaceClass = 0x03,
.bInterfaceSubClass = USB_CFG_INTERFACE_SUBCLASS, .bInterfaceSubClass = 0x01,
.bInterfaceProtocol = USB_CFG_INTERFACE_PROTOCOL, .bInterfaceProtocol = 0x01,
.iInterface = 0x00 .iInterface = 0x00
}, },
.keyboardHID = { .keyboardHID = {
@ -552,7 +549,6 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
.bDescriptorType = USBDESCR_HID_REPORT, .bDescriptorType = USBDESCR_HID_REPORT,
.wDescriptorLength = sizeof(keyboard_hid_report) .wDescriptorLength = sizeof(keyboard_hid_report)
}, },
# ifdef USB_CFG_HAVE_INTRIN_ENDPOINT
.keyboardINEndpoint = { .keyboardINEndpoint = {
.header = { .header = {
.bLength = sizeof(usbEndpointDescriptor_t), .bLength = sizeof(usbEndpointDescriptor_t),
@ -563,7 +559,6 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
.wMaxPacketSize = 8, .wMaxPacketSize = 8,
.bInterval = USB_POLLING_INTERVAL_MS .bInterval = USB_POLLING_INTERVAL_MS
}, },
# endif
# if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) # if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
/* /*
@ -576,7 +571,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
}, },
.bInterfaceNumber = 1, .bInterfaceNumber = 1,
.bAlternateSetting = 0x00, .bAlternateSetting = 0x00,
.bNumEndpoints = USB_CFG_HAVE_INTRIN_ENDPOINT3, .bNumEndpoints = 1,
.bInterfaceClass = 0x03, .bInterfaceClass = 0x03,
.bInterfaceSubClass = 0x00, .bInterfaceSubClass = 0x00,
.bInterfaceProtocol = 0x00, .bInterfaceProtocol = 0x00,
@ -593,7 +588,6 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
.bDescriptorType = USBDESCR_HID_REPORT, .bDescriptorType = USBDESCR_HID_REPORT,
.wDescriptorLength = sizeof(mouse_extra_hid_report) .wDescriptorLength = sizeof(mouse_extra_hid_report)
}, },
# if USB_CFG_HAVE_INTRIN_ENDPOINT3
.mouseExtraINEndpoint = { .mouseExtraINEndpoint = {
.header = { .header = {
.bLength = sizeof(usbEndpointDescriptor_t), .bLength = sizeof(usbEndpointDescriptor_t),
@ -604,7 +598,6 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
.wMaxPacketSize = 8, .wMaxPacketSize = 8,
.bInterval = USB_POLLING_INTERVAL_MS .bInterval = USB_POLLING_INTERVAL_MS
} }
# endif
# elif defined(RAW_ENABLE) # elif defined(RAW_ENABLE)
.rawInterface = { .rawInterface = {
.header = { .header = {
@ -630,7 +623,6 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
.bDescriptorType = USBDESCR_HID_REPORT, .bDescriptorType = USBDESCR_HID_REPORT,
.wDescriptorLength = sizeof(raw_hid_report) .wDescriptorLength = sizeof(raw_hid_report)
}, },
# if USB_CFG_HAVE_INTRIN_ENDPOINT3
.rawINEndpoint = { .rawINEndpoint = {
.header = { .header = {
.bLength = sizeof(usbEndpointDescriptor_t), .bLength = sizeof(usbEndpointDescriptor_t),
@ -652,9 +644,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
.bInterval = USB_POLLING_INTERVAL_MS .bInterval = USB_POLLING_INTERVAL_MS
} }
# endif # endif
# endif
}; };
#endif
// clang-format on // clang-format on
@ -670,18 +660,14 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) {
debug_hex16(rq->wLength.word); debug("\n"); debug_hex16(rq->wLength.word); debug("\n");
*/ */
switch (rq->wValue.bytes[1]) { switch (rq->wValue.bytes[1]) {
#if USB_CFG_DESCR_PROPS_DEVICE
case USBDESCR_DEVICE: case USBDESCR_DEVICE:
usbMsgPtr = (unsigned char *)&usbDeviceDescriptor; usbMsgPtr = (unsigned char *)&usbDeviceDescriptor;
len = sizeof(usbDeviceDescriptor_t); len = sizeof(usbDeviceDescriptor_t);
break; break;
#endif
#if USB_CFG_DESCR_PROPS_CONFIGURATION
case USBDESCR_CONFIG: case USBDESCR_CONFIG:
usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor; usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor;
len = sizeof(usbConfigurationDescriptor_t); len = sizeof(usbConfigurationDescriptor_t);
break; break;
#endif
case USBDESCR_STRING: case USBDESCR_STRING:
switch (rq->wValue.bytes[0]) { switch (rq->wValue.bytes[0]) {
case 0: case 0:

View File

@ -87,24 +87,18 @@ typedef struct usbConfigurationDescriptor {
usbConfigurationDescriptorHeader_t header; usbConfigurationDescriptorHeader_t header;
usbInterfaceDescriptor_t keyboardInterface; usbInterfaceDescriptor_t keyboardInterface;
usbHIDDescriptor_t keyboardHID; usbHIDDescriptor_t keyboardHID;
#ifdef USB_CFG_HAVE_INTRIN_ENDPOINT
usbEndpointDescriptor_t keyboardINEndpoint; usbEndpointDescriptor_t keyboardINEndpoint;
#endif
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) #if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
usbInterfaceDescriptor_t mouseExtraInterface; usbInterfaceDescriptor_t mouseExtraInterface;
usbHIDDescriptor_t mouseExtraHID; usbHIDDescriptor_t mouseExtraHID;
# ifdef USB_CFG_HAVE_INTRIN_ENDPOINT3
usbEndpointDescriptor_t mouseExtraINEndpoint; usbEndpointDescriptor_t mouseExtraINEndpoint;
# endif
#elif defined(RAW_ENABLE) #elif defined(RAW_ENABLE)
usbInterfaceDescriptor_t rawInterface; usbInterfaceDescriptor_t rawInterface;
usbHIDDescriptor_t rawHID; usbHIDDescriptor_t rawHID;
# ifdef USB_CFG_HAVE_INTRIN_ENDPOINT3
usbEndpointDescriptor_t rawINEndpoint; usbEndpointDescriptor_t rawINEndpoint;
usbEndpointDescriptor_t rawOUTEndpoint; usbEndpointDescriptor_t rawOUTEndpoint;
#endif #endif
#endif
} __attribute__((packed)) usbConfigurationDescriptor_t; } __attribute__((packed)) usbConfigurationDescriptor_t;
#define USB_STRING_LEN(s) (sizeof(usbDescriptorHeader_t) + ((s) << 1)) #define USB_STRING_LEN(s) (sizeof(usbDescriptorHeader_t) + ((s) << 1))
@ -112,6 +106,6 @@ typedef struct usbConfigurationDescriptor {
host_driver_t *vusb_driver(void); host_driver_t *vusb_driver(void);
void vusb_transfer_keyboard(void); void vusb_transfer_keyboard(void);
#if defined(RAW_ENABLE) #ifdef RAW_ENABLE
void raw_hid_task(void); void raw_hid_task(void);
#endif #endif