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 moredaktil_manuform
parent
26cb83b8c0
commit
ca91dc594b
|
@ -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.
|
||||||
|
|
|
@ -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),
|
||||||
|
@ -651,10 +643,8 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
|
||||||
.wMaxPacketSize = RAW_EPSIZE,
|
.wMaxPacketSize = RAW_EPSIZE,
|
||||||
.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:
|
||||||
|
|
|
@ -87,23 +87,17 @@ 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;
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue