aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2020-03-31 23:17:04 +1100
committerGitHub <noreply@github.com>2020-03-31 13:17:04 +0100
commit51a81813b0191d95f3ed774cbc410579e606dc5c (patch)
tree67c58e24aafdd1775b288977161ff8bf1e953a59
parent8566a684bc27d7298b8fcb20e4154bf4a091a5ab (diff)
downloadqmk_firmware-51a81813b0191d95f3ed774cbc410579e606dc5c.tar.gz
qmk_firmware-51a81813b0191d95f3ed774cbc410579e606dc5c.zip
V-USB: Consolidate usbconfig.h's into a single file (#8584)
-rw-r--r--keyboards/ares/usbconfig.h355
-rw-r--r--keyboards/bfake/usbconfig.h355
-rw-r--r--keyboards/chidori/usbconfig.h355
-rw-r--r--keyboards/coseyfannitutti/discipad/usbconfig.h355
-rw-r--r--keyboards/coseyfannitutti/discipline/usbconfig.h355
-rw-r--r--keyboards/coseyfannitutti/mysterium/usbconfig.h353
-rw-r--r--keyboards/coseyfannitutti/romeo/usbconfig.h355
-rw-r--r--keyboards/db/db63/usbconfig.h352
-rw-r--r--keyboards/donutcables/budget96/usbconfig.h353
-rw-r--r--keyboards/eve/meteor/usbconfig.h342
-rw-r--r--keyboards/exclusive/e6v2/oe_bmc/usbconfig.h352
-rw-r--r--keyboards/exent/usbconfig.h342
-rw-r--r--keyboards/facew/usbconfig.h352
-rw-r--r--keyboards/ft/mars80/usbconfig.h352
-rw-r--r--keyboards/gingham/usbconfig.h355
-rw-r--r--keyboards/gray_studio/hb85/usbconfig.h352
-rw-r--r--keyboards/handwired/hnah40/usbconfig.h355
-rw-r--r--keyboards/j80/usbconfig.h342
-rw-r--r--keyboards/jc65/v32a/usbconfig.h355
-rw-r--r--keyboards/jj40/usbconfig.h355
-rw-r--r--keyboards/jj4x4/usbconfig.h355
-rw-r--r--keyboards/jj50/usbconfig.h355
-rw-r--r--keyboards/kbdfans/kbdpad/mk1/usbconfig.h352
-rw-r--r--keyboards/keycapsss/plaid_pad/usbconfig.h352
-rw-r--r--keyboards/kira80/usbconfig.h355
-rw-r--r--keyboards/leeku/finger65/usbconfig.h336
-rw-r--r--keyboards/mechmini/v1/usbconfig.h355
-rw-r--r--keyboards/mehkee96/usbconfig.h355
-rw-r--r--keyboards/mt40/usbconfig.h355
-rw-r--r--keyboards/panc60/usbconfig.h352
-rw-r--r--keyboards/pearl/usbconfig.h352
-rw-r--r--keyboards/percent/canoe/usbconfig.h355
-rw-r--r--keyboards/percent/skog/usbconfig.h355
-rw-r--r--keyboards/percent/skog_lite/usbconfig.h352
-rw-r--r--keyboards/plaid/usbconfig.h355
-rw-r--r--keyboards/singa/usbconfig.h352
-rw-r--r--keyboards/tartan/usbconfig.h352
-rw-r--r--keyboards/tgr/alice/usbconfig.h355
-rw-r--r--keyboards/tgr/jane/usbconfig.h352
-rw-r--r--keyboards/unikorn/usbconfig.h352
-rw-r--r--keyboards/winkeyless/bface/usbconfig.h352
-rw-r--r--keyboards/winkeyless/bmini/usbconfig.h355
-rw-r--r--keyboards/winkeyless/bminiex/usbconfig.h355
-rw-r--r--keyboards/ymd75/usbconfig.h355
-rw-r--r--keyboards/ymd96/usbconfig.h355
-rw-r--r--keyboards/ymdk/bface/usbconfig.h352
-rw-r--r--keyboards/ymdk_np21/usbconfig.h355
-rw-r--r--quantum/template/ps2avrgb/usbconfig.h342
-rw-r--r--tmk_core/protocol/vusb/usbconfig.h (renamed from keyboards/exclusive/e6v2/le_bmc/usbconfig.h)2
49 files changed, 1 insertions, 16918 deletions
diff --git a/keyboards/ares/usbconfig.h b/keyboards/ares/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/ares/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/bfake/usbconfig.h b/keyboards/bfake/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/bfake/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/chidori/usbconfig.h b/keyboards/chidori/usbconfig.h
deleted file mode 100644
index 5f2a8baf0..000000000
--- a/keyboards/chidori/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 0
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348// /* #define USB_INTR_CFG_CLR 0 */
349// /* #define USB_INTR_ENABLE EIMSK */
350// #define USB_INTR_ENABLE_BIT INT1
351// /* #define USB_INTR_PENDING EIFR */
352// #define USB_INTR_PENDING_BIT INTF1
353// #define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/coseyfannitutti/discipad/usbconfig.h b/keyboards/coseyfannitutti/discipad/usbconfig.h
deleted file mode 100644
index 5f2a8baf0..000000000
--- a/keyboards/coseyfannitutti/discipad/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 0
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348// /* #define USB_INTR_CFG_CLR 0 */
349// /* #define USB_INTR_ENABLE EIMSK */
350// #define USB_INTR_ENABLE_BIT INT1
351// /* #define USB_INTR_PENDING EIFR */
352// #define USB_INTR_PENDING_BIT INTF1
353// #define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/coseyfannitutti/discipline/usbconfig.h b/keyboards/coseyfannitutti/discipline/usbconfig.h
deleted file mode 100644
index 5f2a8baf0..000000000
--- a/keyboards/coseyfannitutti/discipline/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 0
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348// /* #define USB_INTR_CFG_CLR 0 */
349// /* #define USB_INTR_ENABLE EIMSK */
350// #define USB_INTR_ENABLE_BIT INT1
351// /* #define USB_INTR_PENDING EIFR */
352// #define USB_INTR_PENDING_BIT INTF1
353// #define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/coseyfannitutti/mysterium/usbconfig.h b/keyboards/coseyfannitutti/mysterium/usbconfig.h
deleted file mode 100644
index 82c067a64..000000000
--- a/keyboards/coseyfannitutti/mysterium/usbconfig.h
+++ /dev/null
@@ -1,353 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115// max power draw with maxed white underglow measured at 120 mA (peaks)
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 0
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348// /* #define USB_INTR_CFG_CLR 0 */
349// /* #define USB_INTR_ENABLE EIMSK */
350// #define USB_INTR_ENABLE_BIT INT1
351// /* #define USB_INTR_PENDING EIFR */
352// #define USB_INTR_PENDING_BIT INTF1
353// #define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/coseyfannitutti/romeo/usbconfig.h b/keyboards/coseyfannitutti/romeo/usbconfig.h
deleted file mode 100644
index 5f2a8baf0..000000000
--- a/keyboards/coseyfannitutti/romeo/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 0
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348// /* #define USB_INTR_CFG_CLR 0 */
349// /* #define USB_INTR_ENABLE EIMSK */
350// #define USB_INTR_ENABLE_BIT INT1
351// /* #define USB_INTR_PENDING EIFR */
352// #define USB_INTR_PENDING_BIT INTF1
353// #define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/db/db63/usbconfig.h b/keyboards/db/db63/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/db/db63/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/donutcables/budget96/usbconfig.h b/keyboards/donutcables/budget96/usbconfig.h
deleted file mode 100644
index b70db217f..000000000
--- a/keyboards/donutcables/budget96/usbconfig.h
+++ /dev/null
@@ -1,353 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
353
diff --git a/keyboards/eve/meteor/usbconfig.h b/keyboards/eve/meteor/usbconfig.h
deleted file mode 100644
index 0874f1173..000000000
--- a/keyboards/eve/meteor/usbconfig.h
+++ /dev/null
@@ -1,342 +0,0 @@
1#pragma once
2
3#include "config.h"
4
5/*
6General Description:
7This file is an example configuration (with inline documentation) for the USB
8driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
9also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
10wire the lines to any other port, as long as D+ is also wired to INT0 (or any
11other hardware interrupt, as long as it is the highest level interrupt, see
12section at the end of this file).
13*/
14
15/* ---------------------------- Hardware Config ---------------------------- */
16
17#define USB_CFG_IOPORTNAME D
18/* This is the port where the USB bus is connected. When you configure it to
19 * "B", the registers PORTB, PINB and DDRB will be used.
20 */
21#define USB_CFG_DMINUS_BIT 3
22/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
23 * This may be any bit in the port.
24 */
25#define USB_CFG_DPLUS_BIT 2
26/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
27 * This may be any bit in the port. Please note that D+ must also be connected
28 * to interrupt pin INT0! [You can also use other interrupts, see section
29 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
30 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
31 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
32 * markers every millisecond.]
33 */
34#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
35/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
36 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
37 * require no crystal, they tolerate +/- 1% deviation from the nominal
38 * frequency. All other rates require a precision of 2000 ppm and thus a
39 * crystal!
40 * Since F_CPU should be defined to your actual clock rate anyway, you should
41 * not need to modify this setting.
42 */
43#define USB_CFG_CHECK_CRC 0
44/* Define this to 1 if you want that the driver checks integrity of incoming
45 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
46 * currently only available for 18 MHz crystal clock. You must choose
47 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
48 */
49
50/* ----------------------- Optional Hardware Config ------------------------ */
51
52/* #define USB_CFG_PULLUP_IOPORTNAME D */
53/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
54 * V+, you can connect and disconnect the device from firmware by calling
55 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
56 * This constant defines the port on which the pullup resistor is connected.
57 */
58/* #define USB_CFG_PULLUP_BIT 4 */
59/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
60 * above) where the 1.5k pullup resistor is connected. See description
61 * above for details.
62 */
63
64/* --------------------------- Functional Range ---------------------------- */
65
66#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
67/* Define this to 1 if you want to compile a version with two endpoints: The
68 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
69 * number).
70 */
71#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
72/* Define this to 1 if you want to compile a version with three endpoints: The
73 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
74 * configured below) and a catch-all default interrupt-in endpoint as above.
75 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
76 */
77#define USB_CFG_EP3_NUMBER 3
78/* If the so-called endpoint 3 is used, it can now be configured to any other
79 * endpoint number (except 0) with this macro. Default if undefined is 3.
80 */
81/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
82/* The above macro defines the startup condition for data toggling on the
83 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
84 * Since the token is toggled BEFORE sending any data, the first packet is
85 * sent with the oposite value of this configuration!
86 */
87#define USB_CFG_IMPLEMENT_HALT 0
88/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
89 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
90 * it is required by the standard. We have made it a config option because it
91 * bloats the code considerably.
92 */
93#define USB_CFG_SUPPRESS_INTR_CODE 0
94/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
95 * want to send any data over them. If this macro is defined to 1, functions
96 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
97 * you need the interrupt-in endpoints in order to comply to an interface
98 * (e.g. HID), but never want to send any data. This option saves a couple
99 * of bytes in flash memory and the transmit buffers in RAM.
100 */
101#define USB_CFG_IS_SELF_POWERED 0
102/* Define this to 1 if the device has its own power supply. Set it to 0 if the
103 * device is powered from the USB bus.
104 */
105#define USB_CFG_IMPLEMENT_FN_WRITE 1
106/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
107 * transfers. Set it to 0 if you don't need it and want to save a couple of
108 * bytes.
109 */
110#define USB_CFG_IMPLEMENT_FN_READ 0
111/* Set this to 1 if you need to send control replies which are generated
112 * "on the fly" when usbFunctionRead() is called. If you only want to send
113 * data from a static buffer, set it to 0 and return the data from
114 * usbFunctionSetup(). This saves a couple of bytes.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
117/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
118 * You must implement the function usbFunctionWriteOut() which receives all
119 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
120 * can be found in 'usbRxToken'.
121 */
122#define USB_CFG_HAVE_FLOWCONTROL 0
123/* Define this to 1 if you want flowcontrol over USB data. See the definition
124 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
125 * usbdrv.h.
126 */
127#define USB_CFG_DRIVER_FLASH_PAGE 0
128/* If the device has more than 64 kBytes of flash, define this to the 64 k page
129 * where the driver's constants (descriptors) are located. Or in other words:
130 * Define this to 1 for boot loaders on the ATMega128.
131 */
132#define USB_CFG_LONG_TRANSFERS 0
133/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
134 * in a single control-in or control-out transfer. Note that the capability
135 * for long transfers increases the driver size.
136 */
137/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
138/* This macro is a hook if you want to do unconventional things. If it is
139 * defined, it's inserted at the beginning of received message processing.
140 * If you eat the received message and don't want default processing to
141 * proceed, do a return after doing your things. One possible application
142 * (besides debugging) is to flash a status LED on each packet.
143 */
144/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
145/* This macro is a hook if you need to know when an USB RESET occurs. It has
146 * one parameter which distinguishes between the start of RESET state and its
147 * end.
148 */
149/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
150/* This macro (if defined) is executed when a USB SET_ADDRESS request was
151 * received.
152 */
153#define USB_COUNT_SOF 1
154/* define this macro to 1 if you need the global variable "usbSofCount" which
155 * counts SOF packets. This feature requires that the hardware interrupt is
156 * connected to D- instead of D+.
157 */
158/* #ifdef __ASSEMBLER__
159 * macro myAssemblerMacro
160 * in YL, TCNT0
161 * sts timer0Snapshot, YL
162 * endm
163 * #endif
164 * #define USB_SOF_HOOK myAssemblerMacro
165 * This macro (if defined) is executed in the assembler module when a
166 * Start Of Frame condition is detected. It is recommended to define it to
167 * the name of an assembler macro which is defined here as well so that more
168 * than one assembler instruction can be used. The macro may use the register
169 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
170 * immediately after an SOF pulse may be lost and must be retried by the host.
171 * What can you do with this hook? Since the SOF signal occurs exactly every
172 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
173 * designs running on the internal RC oscillator.
174 * Please note that Start Of Frame detection works only if D- is wired to the
175 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
176 */
177#define USB_CFG_CHECK_DATA_TOGGLING 0
178/* define this macro to 1 if you want to filter out duplicate data packets
179 * sent by the host. Duplicates occur only as a consequence of communication
180 * errors, when the host does not receive an ACK. Please note that you need to
181 * implement the filtering yourself in usbFunctionWriteOut() and
182 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
183 * for each control- and out-endpoint to check for duplicate packets.
184 */
185#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
186/* define this macro to 1 if you want the function usbMeasureFrameLength()
187 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
188 */
189#define USB_USE_FAST_CRC 0
190/* The assembler module has two implementations for the CRC algorithm. One is
191 * faster, the other is smaller. This CRC routine is only used for transmitted
192 * messages where timing is not critical. The faster routine needs 31 cycles
193 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
194 * may be worth the 32 bytes bigger code size if you transmit lots of data and
195 * run the AVR close to its limit.
196 */
197
198/* -------------------------- Device Description --------------------------- */
199
200#define USB_CFG_VENDOR_ID
201/* USB vendor ID for the device, low byte first. If you have registered your
202 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
203 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
204 * *** IMPORTANT NOTE ***
205 * This template uses obdev's shared VID/PID pair for Vendor Class devices
206 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
207 * the implications!
208 */
209#define USB_CFG_DEVICE_ID
210/* This is the ID of the product, low byte first. It is interpreted in the
211 * scope of the vendor ID. If you have registered your own VID with usb.org
212 * or if you have licensed a PID from somebody else, define it here. Otherwise
213 * you may use one of obdev's free shared VID/PID pairs. See the file
214 * USB-IDs-for-free.txt for details!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_CLASS 0
221#define USB_CFG_DEVICE_SUBCLASS 0
222/* See USB specification if you want to conform to an existing device class.
223 * Class 0xff is "vendor specific".
224 */
225#define USB_CFG_INTERFACE_CLASS 3 /* HID */
226#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
227#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
228/* See USB specification if you want to conform to an existing device class or
229 * protocol. The following classes must be set at interface level:
230 * HID class is 3, no subclass and protocol required (but may be useful!)
231 * CDC class is 2, use subclass 2 and protocol 1 for ACM
232 */
233#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
234/* Define this to the length of the HID report descriptor, if you implement
235 * an HID device. Otherwise don't define it or define it to 0.
236 * If you use this define, you must add a PROGMEM character array named
237 * "usbHidReportDescriptor" to your code which contains the report descriptor.
238 * Don't forget to keep the array and this define in sync!
239 */
240
241/* #define USB_PUBLIC static */
242/* Use the define above if you #include usbdrv.c instead of linking against it.
243 * This technique saves a couple of bytes in flash memory.
244 */
245
246/* ------------------- Fine Control over USB Descriptors ------------------- */
247/* If you don't want to use the driver's default USB descriptors, you can
248 * provide our own. These can be provided as (1) fixed length static data in
249 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
250 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
251 * information about this function.
252 * Descriptor handling is configured through the descriptor's properties. If
253 * no properties are defined or if they are 0, the default descriptor is used.
254 * Possible properties are:
255 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
256 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
257 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
258 * you want RAM pointers.
259 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
260 * in static memory is in RAM, not in flash memory.
261 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
262 * the driver must know the descriptor's length. The descriptor itself is
263 * found at the address of a well known identifier (see below).
264 * List of static descriptor names (must be declared PROGMEM if in flash):
265 * char usbDescriptorDevice[];
266 * char usbDescriptorConfiguration[];
267 * char usbDescriptorHidReport[];
268 * char usbDescriptorString0[];
269 * int usbDescriptorStringVendor[];
270 * int usbDescriptorStringDevice[];
271 * int usbDescriptorStringSerialNumber[];
272 * Other descriptors can't be provided statically, they must be provided
273 * dynamically at runtime.
274 *
275 * Descriptor properties are or-ed or added together, e.g.:
276 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
277 *
278 * The following descriptors are defined:
279 * USB_CFG_DESCR_PROPS_DEVICE
280 * USB_CFG_DESCR_PROPS_CONFIGURATION
281 * USB_CFG_DESCR_PROPS_STRINGS
282 * USB_CFG_DESCR_PROPS_STRING_0
283 * USB_CFG_DESCR_PROPS_STRING_VENDOR
284 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
285 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
286 * USB_CFG_DESCR_PROPS_HID
287 * USB_CFG_DESCR_PROPS_HID_REPORT
288 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
289 *
290 * Note about string descriptors: String descriptors are not just strings, they
291 * are Unicode strings prefixed with a 2 byte header. Example:
292 * int serialNumberDescriptor[] = {
293 * USB_STRING_DESCRIPTOR_HEADER(6),
294 * 'S', 'e', 'r', 'i', 'a', 'l'
295 * };
296 */
297
298#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
299#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
300#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
301#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
302#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
303#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
304#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
305#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
306#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
307#define USB_CFG_DESCR_PROPS_UNKNOWN 0
308
309#define usbMsgPtr_t unsigned short
310/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
311 * a scalar type here because gcc generates slightly shorter code for scalar
312 * arithmetics than for pointer arithmetics. Remove this define for backward
313 * type compatibility or define it to an 8 bit type if you use data in RAM only
314 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
315 */
316
317/* ----------------------- Optional MCU Description ------------------------ */
318
319/* The following configurations have working defaults in usbdrv.h. You
320 * usually don't need to set them explicitly. Only if you want to run
321 * the driver on a device which is not yet supported or with a compiler
322 * which is not fully supported (such as IAR C) or if you use a differnt
323 * interrupt than INT0, you may have to define some of these.
324 */
325/* #define USB_INTR_CFG MCUCR */
326/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
327/* #define USB_INTR_CFG_CLR 0 */
328/* #define USB_INTR_ENABLE GIMSK */
329/* #define USB_INTR_ENABLE_BIT INT0 */
330/* #define USB_INTR_PENDING GIFR */
331/* #define USB_INTR_PENDING_BIT INTF0 */
332/* #define USB_INTR_VECTOR INT0_vect */
333
334/* Set INT1 for D- falling edge to count SOF */
335/* #define USB_INTR_CFG EICRA */
336#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE EIMSK */
339#define USB_INTR_ENABLE_BIT INT1
340/* #define USB_INTR_PENDING EIFR */
341#define USB_INTR_PENDING_BIT INTF1
342#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/exclusive/e6v2/oe_bmc/usbconfig.h b/keyboards/exclusive/e6v2/oe_bmc/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/exclusive/e6v2/oe_bmc/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/exent/usbconfig.h b/keyboards/exent/usbconfig.h
deleted file mode 100644
index 6e910a703..000000000
--- a/keyboards/exent/usbconfig.h
+++ /dev/null
@@ -1,342 +0,0 @@
1#pragma once
2
3#include "config.h"
4
5/*
6General Description:
7This file is an example configuration (with inline documentation) for the USB
8driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
9also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
10wire the lines to any other port, as long as D+ is also wired to INT0 (or any
11other hardware interrupt, as long as it is the highest level interrupt, see
12section at the end of this file).
13*/
14
15/* ---------------------------- Hardware Config ---------------------------- */
16
17#define USB_CFG_IOPORTNAME D
18/* This is the port where the USB bus is connected. When you configure it to
19 * "B", the registers PORTB, PINB and DDRB will be used.
20 */
21#define USB_CFG_DMINUS_BIT 3
22/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
23 * This may be any bit in the port.
24 */
25#define USB_CFG_DPLUS_BIT 2
26/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
27 * This may be any bit in the port. Please note that D+ must also be connected
28 * to interrupt pin INT0! [You can also use other interrupts, see section
29 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
30 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
31 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
32 * markers every millisecond.]
33 */
34#define USB_CFG_CLOCK_KHZ (F_CPU / 1000)
35/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
36 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
37 * require no crystal, they tolerate +/- 1% deviation from the nominal
38 * frequency. All other rates require a precision of 2000 ppm and thus a
39 * crystal!
40 * Since F_CPU should be defined to your actual clock rate anyway, you should
41 * not need to modify this setting.
42 */
43#define USB_CFG_CHECK_CRC 0
44/* Define this to 1 if you want that the driver checks integrity of incoming
45 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
46 * currently only available for 18 MHz crystal clock. You must choose
47 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
48 */
49
50/* ----------------------- Optional Hardware Config ------------------------ */
51
52/* #define USB_CFG_PULLUP_IOPORTNAME D */
53/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
54 * V+, you can connect and disconnect the device from firmware by calling
55 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
56 * This constant defines the port on which the pullup resistor is connected.
57 */
58/* #define USB_CFG_PULLUP_BIT 4 */
59/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
60 * above) where the 1.5k pullup resistor is connected. See description
61 * above for details.
62 */
63
64/* --------------------------- Functional Range ---------------------------- */
65
66#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
67/* Define this to 1 if you want to compile a version with two endpoints: The
68 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
69 * number).
70 */
71#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
72/* Define this to 1 if you want to compile a version with three endpoints: The
73 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
74 * configured below) and a catch-all default interrupt-in endpoint as above.
75 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
76 */
77#define USB_CFG_EP3_NUMBER 3
78/* If the so-called endpoint 3 is used, it can now be configured to any other
79 * endpoint number (except 0) with this macro. Default if undefined is 3.
80 */
81/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
82/* The above macro defines the startup condition for data toggling on the
83 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
84 * Since the token is toggled BEFORE sending any data, the first packet is
85 * sent with the oposite value of this configuration!
86 */
87#define USB_CFG_IMPLEMENT_HALT 0
88/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
89 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
90 * it is required by the standard. We have made it a config option because it
91 * bloats the code considerably.
92 */
93#define USB_CFG_SUPPRESS_INTR_CODE 0
94/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
95 * want to send any data over them. If this macro is defined to 1, functions
96 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
97 * you need the interrupt-in endpoints in order to comply to an interface
98 * (e.g. HID), but never want to send any data. This option saves a couple
99 * of bytes in flash memory and the transmit buffers in RAM.
100 */
101#define USB_CFG_IS_SELF_POWERED 0
102/* Define this to 1 if the device has its own power supply. Set it to 0 if the
103 * device is powered from the USB bus.
104 */
105#define USB_CFG_IMPLEMENT_FN_WRITE 1
106/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
107 * transfers. Set it to 0 if you don't need it and want to save a couple of
108 * bytes.
109 */
110#define USB_CFG_IMPLEMENT_FN_READ 0
111/* Set this to 1 if you need to send control replies which are generated
112 * "on the fly" when usbFunctionRead() is called. If you only want to send
113 * data from a static buffer, set it to 0 and return the data from
114 * usbFunctionSetup(). This saves a couple of bytes.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
117/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
118 * You must implement the function usbFunctionWriteOut() which receives all
119 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
120 * can be found in 'usbRxToken'.
121 */
122#define USB_CFG_HAVE_FLOWCONTROL 0
123/* Define this to 1 if you want flowcontrol over USB data. See the definition
124 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
125 * usbdrv.h.
126 */
127#define USB_CFG_DRIVER_FLASH_PAGE 0
128/* If the device has more than 64 kBytes of flash, define this to the 64 k page
129 * where the driver's constants (descriptors) are located. Or in other words:
130 * Define this to 1 for boot loaders on the ATMega128.
131 */
132#define USB_CFG_LONG_TRANSFERS 0
133/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
134 * in a single control-in or control-out transfer. Note that the capability
135 * for long transfers increases the driver size.
136 */
137/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
138/* This macro is a hook if you want to do unconventional things. If it is
139 * defined, it's inserted at the beginning of received message processing.
140 * If you eat the received message and don't want default processing to
141 * proceed, do a return after doing your things. One possible application
142 * (besides debugging) is to flash a status LED on each packet.
143 */
144/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
145/* This macro is a hook if you need to know when an USB RESET occurs. It has
146 * one parameter which distinguishes between the start of RESET state and its
147 * end.
148 */
149/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
150/* This macro (if defined) is executed when a USB SET_ADDRESS request was
151 * received.
152 */
153#define USB_COUNT_SOF 1
154/* define this macro to 1 if you need the global variable "usbSofCount" which
155 * counts SOF packets. This feature requires that the hardware interrupt is
156 * connected to D- instead of D+.
157 */
158/* #ifdef __ASSEMBLER__
159 * macro myAssemblerMacro
160 * in YL, TCNT0
161 * sts timer0Snapshot, YL
162 * endm
163 * #endif
164 * #define USB_SOF_HOOK myAssemblerMacro
165 * This macro (if defined) is executed in the assembler module when a
166 * Start Of Frame condition is detected. It is recommended to define it to
167 * the name of an assembler macro which is defined here as well so that more
168 * than one assembler instruction can be used. The macro may use the register
169 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
170 * immediately after an SOF pulse may be lost and must be retried by the host.
171 * What can you do with this hook? Since the SOF signal occurs exactly every
172 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
173 * designs running on the internal RC oscillator.
174 * Please note that Start Of Frame detection works only if D- is wired to the
175 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
176 */
177#define USB_CFG_CHECK_DATA_TOGGLING 0
178/* define this macro to 1 if you want to filter out duplicate data packets
179 * sent by the host. Duplicates occur only as a consequence of communication
180 * errors, when the host does not receive an ACK. Please note that you need to
181 * implement the filtering yourself in usbFunctionWriteOut() and
182 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
183 * for each control- and out-endpoint to check for duplicate packets.
184 */
185#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
186/* define this macro to 1 if you want the function usbMeasureFrameLength()
187 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
188 */
189#define USB_USE_FAST_CRC 0
190/* The assembler module has two implementations for the CRC algorithm. One is
191 * faster, the other is smaller. This CRC routine is only used for transmitted
192 * messages where timing is not critical. The faster routine needs 31 cycles
193 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
194 * may be worth the 32 bytes bigger code size if you transmit lots of data and
195 * run the AVR close to its limit.
196 */
197
198/* -------------------------- Device Description --------------------------- */
199
200#define USB_CFG_VENDOR_ID
201/* USB vendor ID for the device, low byte first. If you have registered your
202 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
203 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
204 * *** IMPORTANT NOTE ***
205 * This template uses obdev's shared VID/PID pair for Vendor Class devices
206 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
207 * the implications!
208 */
209#define USB_CFG_DEVICE_ID
210/* This is the ID of the product, low byte first. It is interpreted in the
211 * scope of the vendor ID. If you have registered your own VID with usb.org
212 * or if you have licensed a PID from somebody else, define it here. Otherwise
213 * you may use one of obdev's free shared VID/PID pairs. See the file
214 * USB-IDs-for-free.txt for details!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_CLASS 0
221#define USB_CFG_DEVICE_SUBCLASS 0
222/* See USB specification if you want to conform to an existing device class.
223 * Class 0xff is "vendor specific".
224 */
225#define USB_CFG_INTERFACE_CLASS 3 /* HID */
226#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
227#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
228/* See USB specification if you want to conform to an existing device class or
229 * protocol. The following classes must be set at interface level:
230 * HID class is 3, no subclass and protocol required (but may be useful!)
231 * CDC class is 2, use subclass 2 and protocol 1 for ACM
232 */
233#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
234/* Define this to the length of the HID report descriptor, if you implement
235 * an HID device. Otherwise don't define it or define it to 0.
236 * If you use this define, you must add a PROGMEM character array named
237 * "usbHidReportDescriptor" to your code which contains the report descriptor.
238 * Don't forget to keep the array and this define in sync!
239 */
240
241/* #define USB_PUBLIC static */
242/* Use the define above if you #include usbdrv.c instead of linking against it.
243 * This technique saves a couple of bytes in flash memory.
244 */
245
246/* ------------------- Fine Control over USB Descriptors ------------------- */
247/* If you don't want to use the driver's default USB descriptors, you can
248 * provide our own. These can be provided as (1) fixed length static data in
249 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
250 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
251 * information about this function.
252 * Descriptor handling is configured through the descriptor's properties. If
253 * no properties are defined or if they are 0, the default descriptor is used.
254 * Possible properties are:
255 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
256 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
257 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
258 * you want RAM pointers.
259 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
260 * in static memory is in RAM, not in flash memory.
261 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
262 * the driver must know the descriptor's length. The descriptor itself is
263 * found at the address of a well known identifier (see below).
264 * List of static descriptor names (must be declared PROGMEM if in flash):
265 * char usbDescriptorDevice[];
266 * char usbDescriptorConfiguration[];
267 * char usbDescriptorHidReport[];
268 * char usbDescriptorString0[];
269 * int usbDescriptorStringVendor[];
270 * int usbDescriptorStringDevice[];
271 * int usbDescriptorStringSerialNumber[];
272 * Other descriptors can't be provided statically, they must be provided
273 * dynamically at runtime.
274 *
275 * Descriptor properties are or-ed or added together, e.g.:
276 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
277 *
278 * The following descriptors are defined:
279 * USB_CFG_DESCR_PROPS_DEVICE
280 * USB_CFG_DESCR_PROPS_CONFIGURATION
281 * USB_CFG_DESCR_PROPS_STRINGS
282 * USB_CFG_DESCR_PROPS_STRING_0
283 * USB_CFG_DESCR_PROPS_STRING_VENDOR
284 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
285 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
286 * USB_CFG_DESCR_PROPS_HID
287 * USB_CFG_DESCR_PROPS_HID_REPORT
288 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
289 *
290 * Note about string descriptors: String descriptors are not just strings, they
291 * are Unicode strings prefixed with a 2 byte header. Example:
292 * int serialNumberDescriptor[] = {
293 * USB_STRING_DESCRIPTOR_HEADER(6),
294 * 'S', 'e', 'r', 'i', 'a', 'l'
295 * };
296 */
297
298#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
299#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
300#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
301#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
302#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
303#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
304#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
305#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
306#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
307#define USB_CFG_DESCR_PROPS_UNKNOWN 0
308
309#define usbMsgPtr_t unsigned short
310/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
311 * a scalar type here because gcc generates slightly shorter code for scalar
312 * arithmetics than for pointer arithmetics. Remove this define for backward
313 * type compatibility or define it to an 8 bit type if you use data in RAM only
314 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
315 */
316
317/* ----------------------- Optional MCU Description ------------------------ */
318
319/* The following configurations have working defaults in usbdrv.h. You
320 * usually don't need to set them explicitly. Only if you want to run
321 * the driver on a device which is not yet supported or with a compiler
322 * which is not fully supported (such as IAR C) or if you use a differnt
323 * interrupt than INT0, you may have to define some of these.
324 */
325/* #define USB_INTR_CFG MCUCR */
326/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
327/* #define USB_INTR_CFG_CLR 0 */
328/* #define USB_INTR_ENABLE GIMSK */
329/* #define USB_INTR_ENABLE_BIT INT0 */
330/* #define USB_INTR_PENDING GIFR */
331/* #define USB_INTR_PENDING_BIT INTF0 */
332/* #define USB_INTR_VECTOR INT0_vect */
333
334/* Set INT1 for D- falling edge to count SOF */
335/* #define USB_INTR_CFG EICRA */
336#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE EIMSK */
339#define USB_INTR_ENABLE_BIT INT1
340/* #define USB_INTR_PENDING EIFR */
341#define USB_INTR_PENDING_BIT INTF1
342#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/facew/usbconfig.h b/keyboards/facew/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/facew/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/ft/mars80/usbconfig.h b/keyboards/ft/mars80/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/ft/mars80/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/gingham/usbconfig.h b/keyboards/gingham/usbconfig.h
deleted file mode 100644
index 5f2a8baf0..000000000
--- a/keyboards/gingham/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 0
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348// /* #define USB_INTR_CFG_CLR 0 */
349// /* #define USB_INTR_ENABLE EIMSK */
350// #define USB_INTR_ENABLE_BIT INT1
351// /* #define USB_INTR_PENDING EIFR */
352// #define USB_INTR_PENDING_BIT INTF1
353// #define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/gray_studio/hb85/usbconfig.h b/keyboards/gray_studio/hb85/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/gray_studio/hb85/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/handwired/hnah40/usbconfig.h b/keyboards/handwired/hnah40/usbconfig.h
deleted file mode 100644
index 5f2a8baf0..000000000
--- a/keyboards/handwired/hnah40/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 0
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348// /* #define USB_INTR_CFG_CLR 0 */
349// /* #define USB_INTR_ENABLE EIMSK */
350// #define USB_INTR_ENABLE_BIT INT1
351// /* #define USB_INTR_PENDING EIFR */
352// #define USB_INTR_PENDING_BIT INTF1
353// #define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/j80/usbconfig.h b/keyboards/j80/usbconfig.h
deleted file mode 100644
index 6e910a703..000000000
--- a/keyboards/j80/usbconfig.h
+++ /dev/null
@@ -1,342 +0,0 @@
1#pragma once
2
3#include "config.h"
4
5/*
6General Description:
7This file is an example configuration (with inline documentation) for the USB
8driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
9also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
10wire the lines to any other port, as long as D+ is also wired to INT0 (or any
11other hardware interrupt, as long as it is the highest level interrupt, see
12section at the end of this file).
13*/
14
15/* ---------------------------- Hardware Config ---------------------------- */
16
17#define USB_CFG_IOPORTNAME D
18/* This is the port where the USB bus is connected. When you configure it to
19 * "B", the registers PORTB, PINB and DDRB will be used.
20 */
21#define USB_CFG_DMINUS_BIT 3
22/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
23 * This may be any bit in the port.
24 */
25#define USB_CFG_DPLUS_BIT 2
26/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
27 * This may be any bit in the port. Please note that D+ must also be connected
28 * to interrupt pin INT0! [You can also use other interrupts, see section
29 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
30 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
31 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
32 * markers every millisecond.]
33 */
34#define USB_CFG_CLOCK_KHZ (F_CPU / 1000)
35/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
36 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
37 * require no crystal, they tolerate +/- 1% deviation from the nominal
38 * frequency. All other rates require a precision of 2000 ppm and thus a
39 * crystal!
40 * Since F_CPU should be defined to your actual clock rate anyway, you should
41 * not need to modify this setting.
42 */
43#define USB_CFG_CHECK_CRC 0
44/* Define this to 1 if you want that the driver checks integrity of incoming
45 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
46 * currently only available for 18 MHz crystal clock. You must choose
47 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
48 */
49
50/* ----------------------- Optional Hardware Config ------------------------ */
51
52/* #define USB_CFG_PULLUP_IOPORTNAME D */
53/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
54 * V+, you can connect and disconnect the device from firmware by calling
55 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
56 * This constant defines the port on which the pullup resistor is connected.
57 */
58/* #define USB_CFG_PULLUP_BIT 4 */
59/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
60 * above) where the 1.5k pullup resistor is connected. See description
61 * above for details.
62 */
63
64/* --------------------------- Functional Range ---------------------------- */
65
66#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
67/* Define this to 1 if you want to compile a version with two endpoints: The
68 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
69 * number).
70 */
71#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
72/* Define this to 1 if you want to compile a version with three endpoints: The
73 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
74 * configured below) and a catch-all default interrupt-in endpoint as above.
75 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
76 */
77#define USB_CFG_EP3_NUMBER 3
78/* If the so-called endpoint 3 is used, it can now be configured to any other
79 * endpoint number (except 0) with this macro. Default if undefined is 3.
80 */
81/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
82/* The above macro defines the startup condition for data toggling on the
83 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
84 * Since the token is toggled BEFORE sending any data, the first packet is
85 * sent with the oposite value of this configuration!
86 */
87#define USB_CFG_IMPLEMENT_HALT 0
88/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
89 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
90 * it is required by the standard. We have made it a config option because it
91 * bloats the code considerably.
92 */
93#define USB_CFG_SUPPRESS_INTR_CODE 0
94/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
95 * want to send any data over them. If this macro is defined to 1, functions
96 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
97 * you need the interrupt-in endpoints in order to comply to an interface
98 * (e.g. HID), but never want to send any data. This option saves a couple
99 * of bytes in flash memory and the transmit buffers in RAM.
100 */
101#define USB_CFG_IS_SELF_POWERED 0
102/* Define this to 1 if the device has its own power supply. Set it to 0 if the
103 * device is powered from the USB bus.
104 */
105#define USB_CFG_IMPLEMENT_FN_WRITE 1
106/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
107 * transfers. Set it to 0 if you don't need it and want to save a couple of
108 * bytes.
109 */
110#define USB_CFG_IMPLEMENT_FN_READ 0
111/* Set this to 1 if you need to send control replies which are generated
112 * "on the fly" when usbFunctionRead() is called. If you only want to send
113 * data from a static buffer, set it to 0 and return the data from
114 * usbFunctionSetup(). This saves a couple of bytes.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
117/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
118 * You must implement the function usbFunctionWriteOut() which receives all
119 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
120 * can be found in 'usbRxToken'.
121 */
122#define USB_CFG_HAVE_FLOWCONTROL 0
123/* Define this to 1 if you want flowcontrol over USB data. See the definition
124 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
125 * usbdrv.h.
126 */
127#define USB_CFG_DRIVER_FLASH_PAGE 0
128/* If the device has more than 64 kBytes of flash, define this to the 64 k page
129 * where the driver's constants (descriptors) are located. Or in other words:
130 * Define this to 1 for boot loaders on the ATMega128.
131 */
132#define USB_CFG_LONG_TRANSFERS 0
133/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
134 * in a single control-in or control-out transfer. Note that the capability
135 * for long transfers increases the driver size.
136 */
137/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
138/* This macro is a hook if you want to do unconventional things. If it is
139 * defined, it's inserted at the beginning of received message processing.
140 * If you eat the received message and don't want default processing to
141 * proceed, do a return after doing your things. One possible application
142 * (besides debugging) is to flash a status LED on each packet.
143 */
144/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
145/* This macro is a hook if you need to know when an USB RESET occurs. It has
146 * one parameter which distinguishes between the start of RESET state and its
147 * end.
148 */
149/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
150/* This macro (if defined) is executed when a USB SET_ADDRESS request was
151 * received.
152 */
153#define USB_COUNT_SOF 1
154/* define this macro to 1 if you need the global variable "usbSofCount" which
155 * counts SOF packets. This feature requires that the hardware interrupt is
156 * connected to D- instead of D+.
157 */
158/* #ifdef __ASSEMBLER__
159 * macro myAssemblerMacro
160 * in YL, TCNT0
161 * sts timer0Snapshot, YL
162 * endm
163 * #endif
164 * #define USB_SOF_HOOK myAssemblerMacro
165 * This macro (if defined) is executed in the assembler module when a
166 * Start Of Frame condition is detected. It is recommended to define it to
167 * the name of an assembler macro which is defined here as well so that more
168 * than one assembler instruction can be used. The macro may use the register
169 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
170 * immediately after an SOF pulse may be lost and must be retried by the host.
171 * What can you do with this hook? Since the SOF signal occurs exactly every
172 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
173 * designs running on the internal RC oscillator.
174 * Please note that Start Of Frame detection works only if D- is wired to the
175 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
176 */
177#define USB_CFG_CHECK_DATA_TOGGLING 0
178/* define this macro to 1 if you want to filter out duplicate data packets
179 * sent by the host. Duplicates occur only as a consequence of communication
180 * errors, when the host does not receive an ACK. Please note that you need to
181 * implement the filtering yourself in usbFunctionWriteOut() and
182 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
183 * for each control- and out-endpoint to check for duplicate packets.
184 */
185#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
186/* define this macro to 1 if you want the function usbMeasureFrameLength()
187 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
188 */
189#define USB_USE_FAST_CRC 0
190/* The assembler module has two implementations for the CRC algorithm. One is
191 * faster, the other is smaller. This CRC routine is only used for transmitted
192 * messages where timing is not critical. The faster routine needs 31 cycles
193 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
194 * may be worth the 32 bytes bigger code size if you transmit lots of data and
195 * run the AVR close to its limit.
196 */
197
198/* -------------------------- Device Description --------------------------- */
199
200#define USB_CFG_VENDOR_ID
201/* USB vendor ID for the device, low byte first. If you have registered your
202 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
203 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
204 * *** IMPORTANT NOTE ***
205 * This template uses obdev's shared VID/PID pair for Vendor Class devices
206 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
207 * the implications!
208 */
209#define USB_CFG_DEVICE_ID
210/* This is the ID of the product, low byte first. It is interpreted in the
211 * scope of the vendor ID. If you have registered your own VID with usb.org
212 * or if you have licensed a PID from somebody else, define it here. Otherwise
213 * you may use one of obdev's free shared VID/PID pairs. See the file
214 * USB-IDs-for-free.txt for details!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_CLASS 0
221#define USB_CFG_DEVICE_SUBCLASS 0
222/* See USB specification if you want to conform to an existing device class.
223 * Class 0xff is "vendor specific".
224 */
225#define USB_CFG_INTERFACE_CLASS 3 /* HID */
226#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
227#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
228/* See USB specification if you want to conform to an existing device class or
229 * protocol. The following classes must be set at interface level:
230 * HID class is 3, no subclass and protocol required (but may be useful!)
231 * CDC class is 2, use subclass 2 and protocol 1 for ACM
232 */
233#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
234/* Define this to the length of the HID report descriptor, if you implement
235 * an HID device. Otherwise don't define it or define it to 0.
236 * If you use this define, you must add a PROGMEM character array named
237 * "usbHidReportDescriptor" to your code which contains the report descriptor.
238 * Don't forget to keep the array and this define in sync!
239 */
240
241/* #define USB_PUBLIC static */
242/* Use the define above if you #include usbdrv.c instead of linking against it.
243 * This technique saves a couple of bytes in flash memory.
244 */
245
246/* ------------------- Fine Control over USB Descriptors ------------------- */
247/* If you don't want to use the driver's default USB descriptors, you can
248 * provide our own. These can be provided as (1) fixed length static data in
249 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
250 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
251 * information about this function.
252 * Descriptor handling is configured through the descriptor's properties. If
253 * no properties are defined or if they are 0, the default descriptor is used.
254 * Possible properties are:
255 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
256 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
257 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
258 * you want RAM pointers.
259 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
260 * in static memory is in RAM, not in flash memory.
261 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
262 * the driver must know the descriptor's length. The descriptor itself is
263 * found at the address of a well known identifier (see below).
264 * List of static descriptor names (must be declared PROGMEM if in flash):
265 * char usbDescriptorDevice[];
266 * char usbDescriptorConfiguration[];
267 * char usbDescriptorHidReport[];
268 * char usbDescriptorString0[];
269 * int usbDescriptorStringVendor[];
270 * int usbDescriptorStringDevice[];
271 * int usbDescriptorStringSerialNumber[];
272 * Other descriptors can't be provided statically, they must be provided
273 * dynamically at runtime.
274 *
275 * Descriptor properties are or-ed or added together, e.g.:
276 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
277 *
278 * The following descriptors are defined:
279 * USB_CFG_DESCR_PROPS_DEVICE
280 * USB_CFG_DESCR_PROPS_CONFIGURATION
281 * USB_CFG_DESCR_PROPS_STRINGS
282 * USB_CFG_DESCR_PROPS_STRING_0
283 * USB_CFG_DESCR_PROPS_STRING_VENDOR
284 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
285 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
286 * USB_CFG_DESCR_PROPS_HID
287 * USB_CFG_DESCR_PROPS_HID_REPORT
288 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
289 *
290 * Note about string descriptors: String descriptors are not just strings, they
291 * are Unicode strings prefixed with a 2 byte header. Example:
292 * int serialNumberDescriptor[] = {
293 * USB_STRING_DESCRIPTOR_HEADER(6),
294 * 'S', 'e', 'r', 'i', 'a', 'l'
295 * };
296 */
297
298#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
299#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
300#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
301#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
302#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
303#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
304#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
305#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
306#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
307#define USB_CFG_DESCR_PROPS_UNKNOWN 0
308
309#define usbMsgPtr_t unsigned short
310/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
311 * a scalar type here because gcc generates slightly shorter code for scalar
312 * arithmetics than for pointer arithmetics. Remove this define for backward
313 * type compatibility or define it to an 8 bit type if you use data in RAM only
314 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
315 */
316
317/* ----------------------- Optional MCU Description ------------------------ */
318
319/* The following configurations have working defaults in usbdrv.h. You
320 * usually don't need to set them explicitly. Only if you want to run
321 * the driver on a device which is not yet supported or with a compiler
322 * which is not fully supported (such as IAR C) or if you use a differnt
323 * interrupt than INT0, you may have to define some of these.
324 */
325/* #define USB_INTR_CFG MCUCR */
326/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
327/* #define USB_INTR_CFG_CLR 0 */
328/* #define USB_INTR_ENABLE GIMSK */
329/* #define USB_INTR_ENABLE_BIT INT0 */
330/* #define USB_INTR_PENDING GIFR */
331/* #define USB_INTR_PENDING_BIT INTF0 */
332/* #define USB_INTR_VECTOR INT0_vect */
333
334/* Set INT1 for D- falling edge to count SOF */
335/* #define USB_INTR_CFG EICRA */
336#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE EIMSK */
339#define USB_INTR_ENABLE_BIT INT1
340/* #define USB_INTR_PENDING EIFR */
341#define USB_INTR_PENDING_BIT INTF1
342#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/jc65/v32a/usbconfig.h b/keyboards/jc65/v32a/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/jc65/v32a/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/jj40/usbconfig.h b/keyboards/jj40/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/jj40/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/jj4x4/usbconfig.h b/keyboards/jj4x4/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/jj4x4/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/jj50/usbconfig.h b/keyboards/jj50/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/jj50/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/kbdfans/kbdpad/mk1/usbconfig.h b/keyboards/kbdfans/kbdpad/mk1/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/kbdfans/kbdpad/mk1/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/keycapsss/plaid_pad/usbconfig.h b/keyboards/keycapsss/plaid_pad/usbconfig.h
deleted file mode 100644
index 3e88910ce..000000000
--- a/keyboards/keycapsss/plaid_pad/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 0
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347// /* #define USB_INTR_CFG_CLR 0 */
348// /* #define USB_INTR_ENABLE EIMSK */
349// #define USB_INTR_ENABLE_BIT INT1
350// /* #define USB_INTR_PENDING EIFR */
351// #define USB_INTR_PENDING_BIT INTF1
352// #define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/kira80/usbconfig.h b/keyboards/kira80/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/kira80/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/leeku/finger65/usbconfig.h b/keyboards/leeku/finger65/usbconfig.h
deleted file mode 100644
index cb8e44d9d..000000000
--- a/keyboards/leeku/finger65/usbconfig.h
+++ /dev/null
@@ -1,336 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 0
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319/* ----------------------- Optional MCU Description ------------------------ */
320
321/* The following configurations have working defaults in usbdrv.h. You
322 * usually don't need to set them explicitly. Only if you want to run
323 * the driver on a device which is not yet supported or with a compiler
324 * which is not fully supported (such as IAR C) or if you use a differnt
325 * interrupt than INT0, you may have to define some of these.
326 */
327/* #define USB_INTR_CFG MCUCR */
328/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
329/* #define USB_INTR_CFG_CLR 0 */
330/* #define USB_INTR_ENABLE GIMSK */
331/* #define USB_INTR_ENABLE_BIT INT0 */
332/* #define USB_INTR_PENDING GIFR */
333/* #define USB_INTR_PENDING_BIT INTF0 */
334/* #define USB_INTR_VECTOR INT0_vect */
335
336#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/mechmini/v1/usbconfig.h b/keyboards/mechmini/v1/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/mechmini/v1/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/mehkee96/usbconfig.h b/keyboards/mehkee96/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/mehkee96/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/mt40/usbconfig.h b/keyboards/mt40/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/mt40/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/panc60/usbconfig.h b/keyboards/panc60/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/panc60/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/pearl/usbconfig.h b/keyboards/pearl/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/pearl/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/percent/canoe/usbconfig.h b/keyboards/percent/canoe/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/percent/canoe/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/percent/skog/usbconfig.h b/keyboards/percent/skog/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/percent/skog/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/percent/skog_lite/usbconfig.h b/keyboards/percent/skog_lite/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/percent/skog_lite/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/plaid/usbconfig.h b/keyboards/plaid/usbconfig.h
deleted file mode 100644
index 5f2a8baf0..000000000
--- a/keyboards/plaid/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 0
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348// /* #define USB_INTR_CFG_CLR 0 */
349// /* #define USB_INTR_ENABLE EIMSK */
350// #define USB_INTR_ENABLE_BIT INT1
351// /* #define USB_INTR_PENDING EIFR */
352// #define USB_INTR_PENDING_BIT INTF1
353// #define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/singa/usbconfig.h b/keyboards/singa/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/singa/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/tartan/usbconfig.h b/keyboards/tartan/usbconfig.h
deleted file mode 100644
index 3e88910ce..000000000
--- a/keyboards/tartan/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 0
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346// #define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347// /* #define USB_INTR_CFG_CLR 0 */
348// /* #define USB_INTR_ENABLE EIMSK */
349// #define USB_INTR_ENABLE_BIT INT1
350// /* #define USB_INTR_PENDING EIFR */
351// #define USB_INTR_PENDING_BIT INTF1
352// #define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/tgr/alice/usbconfig.h b/keyboards/tgr/alice/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/tgr/alice/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/tgr/jane/usbconfig.h b/keyboards/tgr/jane/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/tgr/jane/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/unikorn/usbconfig.h b/keyboards/unikorn/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/unikorn/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/winkeyless/bface/usbconfig.h b/keyboards/winkeyless/bface/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/winkeyless/bface/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/winkeyless/bmini/usbconfig.h b/keyboards/winkeyless/bmini/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/winkeyless/bmini/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/winkeyless/bminiex/usbconfig.h b/keyboards/winkeyless/bminiex/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/winkeyless/bminiex/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/ymd75/usbconfig.h b/keyboards/ymd75/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/ymd75/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/ymd96/usbconfig.h b/keyboards/ymd96/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/ymd96/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/keyboards/ymdk/bface/usbconfig.h b/keyboards/ymdk/bface/usbconfig.h
deleted file mode 100644
index 9ffec5280..000000000
--- a/keyboards/ymdk/bface/usbconfig.h
+++ /dev/null
@@ -1,352 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#pragma once
12
13#include "config.h"
14
15/*
16General Description:
17This file is an example configuration (with inline documentation) for the USB
18driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
19also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
20wire the lines to any other port, as long as D+ is also wired to INT0 (or any
21other hardware interrupt, as long as it is the highest level interrupt, see
22section at the end of this file).
23*/
24
25/* ---------------------------- Hardware Config ---------------------------- */
26
27#define USB_CFG_IOPORTNAME D
28/* This is the port where the USB bus is connected. When you configure it to
29 * "B", the registers PORTB, PINB and DDRB will be used.
30 */
31#define USB_CFG_DMINUS_BIT 3
32/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
33 * This may be any bit in the port.
34 */
35#define USB_CFG_DPLUS_BIT 2
36/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
37 * This may be any bit in the port. Please note that D+ must also be connected
38 * to interrupt pin INT0! [You can also use other interrupts, see section
39 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
40 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
41 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
42 * markers every millisecond.]
43 */
44#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
45/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
46 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
47 * require no crystal, they tolerate +/- 1% deviation from the nominal
48 * frequency. All other rates require a precision of 2000 ppm and thus a
49 * crystal!
50 * Since F_CPU should be defined to your actual clock rate anyway, you should
51 * not need to modify this setting.
52 */
53#define USB_CFG_CHECK_CRC 0
54/* Define this to 1 if you want that the driver checks integrity of incoming
55 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
56 * currently only available for 18 MHz crystal clock. You must choose
57 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
58 */
59
60/* ----------------------- Optional Hardware Config ------------------------ */
61
62/* #define USB_CFG_PULLUP_IOPORTNAME D */
63/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
64 * V+, you can connect and disconnect the device from firmware by calling
65 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
66 * This constant defines the port on which the pullup resistor is connected.
67 */
68/* #define USB_CFG_PULLUP_BIT 4 */
69/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
70 * above) where the 1.5k pullup resistor is connected. See description
71 * above for details.
72 */
73
74/* --------------------------- Functional Range ---------------------------- */
75
76#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
77/* Define this to 1 if you want to compile a version with two endpoints: The
78 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
79 * number).
80 */
81#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
82/* Define this to 1 if you want to compile a version with three endpoints: The
83 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
84 * configured below) and a catch-all default interrupt-in endpoint as above.
85 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
86 */
87#define USB_CFG_EP3_NUMBER 3
88/* If the so-called endpoint 3 is used, it can now be configured to any other
89 * endpoint number (except 0) with this macro. Default if undefined is 3.
90 */
91/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
92/* The above macro defines the startup condition for data toggling on the
93 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
94 * Since the token is toggled BEFORE sending any data, the first packet is
95 * sent with the oposite value of this configuration!
96 */
97#define USB_CFG_IMPLEMENT_HALT 0
98/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
99 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
100 * it is required by the standard. We have made it a config option because it
101 * bloats the code considerably.
102 */
103#define USB_CFG_SUPPRESS_INTR_CODE 0
104/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
105 * want to send any data over them. If this macro is defined to 1, functions
106 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
107 * you need the interrupt-in endpoints in order to comply to an interface
108 * (e.g. HID), but never want to send any data. This option saves a couple
109 * of bytes in flash memory and the transmit buffers in RAM.
110 */
111#define USB_CFG_IS_SELF_POWERED 0
112/* Define this to 1 if the device has its own power supply. Set it to 0 if the
113 * device is powered from the USB bus.
114 */
115#define USB_CFG_IMPLEMENT_FN_WRITE 1
116/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
117 * transfers. Set it to 0 if you don't need it and want to save a couple of
118 * bytes.
119 */
120#define USB_CFG_IMPLEMENT_FN_READ 0
121/* Set this to 1 if you need to send control replies which are generated
122 * "on the fly" when usbFunctionRead() is called. If you only want to send
123 * data from a static buffer, set it to 0 and return the data from
124 * usbFunctionSetup(). This saves a couple of bytes.
125 */
126#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
127/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
128 * You must implement the function usbFunctionWriteOut() which receives all
129 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
130 * can be found in 'usbRxToken'.
131 */
132#define USB_CFG_HAVE_FLOWCONTROL 0
133/* Define this to 1 if you want flowcontrol over USB data. See the definition
134 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
135 * usbdrv.h.
136 */
137#define USB_CFG_DRIVER_FLASH_PAGE 0
138/* If the device has more than 64 kBytes of flash, define this to the 64 k page
139 * where the driver's constants (descriptors) are located. Or in other words:
140 * Define this to 1 for boot loaders on the ATMega128.
141 */
142#define USB_CFG_LONG_TRANSFERS 0
143/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
144 * in a single control-in or control-out transfer. Note that the capability
145 * for long transfers increases the driver size.
146 */
147/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
148/* This macro is a hook if you want to do unconventional things. If it is
149 * defined, it's inserted at the beginning of received message processing.
150 * If you eat the received message and don't want default processing to
151 * proceed, do a return after doing your things. One possible application
152 * (besides debugging) is to flash a status LED on each packet.
153 */
154/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
155/* This macro is a hook if you need to know when an USB RESET occurs. It has
156 * one parameter which distinguishes between the start of RESET state and its
157 * end.
158 */
159/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
160/* This macro (if defined) is executed when a USB SET_ADDRESS request was
161 * received.
162 */
163#define USB_COUNT_SOF 1
164/* define this macro to 1 if you need the global variable "usbSofCount" which
165 * counts SOF packets. This feature requires that the hardware interrupt is
166 * connected to D- instead of D+.
167 */
168/* #ifdef __ASSEMBLER__
169 * macro myAssemblerMacro
170 * in YL, TCNT0
171 * sts timer0Snapshot, YL
172 * endm
173 * #endif
174 * #define USB_SOF_HOOK myAssemblerMacro
175 * This macro (if defined) is executed in the assembler module when a
176 * Start Of Frame condition is detected. It is recommended to define it to
177 * the name of an assembler macro which is defined here as well so that more
178 * than one assembler instruction can be used. The macro may use the register
179 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
180 * immediately after an SOF pulse may be lost and must be retried by the host.
181 * What can you do with this hook? Since the SOF signal occurs exactly every
182 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
183 * designs running on the internal RC oscillator.
184 * Please note that Start Of Frame detection works only if D- is wired to the
185 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
186 */
187#define USB_CFG_CHECK_DATA_TOGGLING 0
188/* define this macro to 1 if you want to filter out duplicate data packets
189 * sent by the host. Duplicates occur only as a consequence of communication
190 * errors, when the host does not receive an ACK. Please note that you need to
191 * implement the filtering yourself in usbFunctionWriteOut() and
192 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
193 * for each control- and out-endpoint to check for duplicate packets.
194 */
195#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
196/* define this macro to 1 if you want the function usbMeasureFrameLength()
197 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
198 */
199#define USB_USE_FAST_CRC 0
200/* The assembler module has two implementations for the CRC algorithm. One is
201 * faster, the other is smaller. This CRC routine is only used for transmitted
202 * messages where timing is not critical. The faster routine needs 31 cycles
203 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
204 * may be worth the 32 bytes bigger code size if you transmit lots of data and
205 * run the AVR close to its limit.
206 */
207
208/* -------------------------- Device Description --------------------------- */
209
210#define USB_CFG_VENDOR_ID
211/* USB vendor ID for the device, low byte first. If you have registered your
212 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
213 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
214 * *** IMPORTANT NOTE ***
215 * This template uses obdev's shared VID/PID pair for Vendor Class devices
216 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
217 * the implications!
218 */
219#define USB_CFG_DEVICE_ID
220/* This is the ID of the product, low byte first. It is interpreted in the
221 * scope of the vendor ID. If you have registered your own VID with usb.org
222 * or if you have licensed a PID from somebody else, define it here. Otherwise
223 * you may use one of obdev's free shared VID/PID pairs. See the file
224 * USB-IDs-for-free.txt for details!
225 * *** IMPORTANT NOTE ***
226 * This template uses obdev's shared VID/PID pair for Vendor Class devices
227 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
228 * the implications!
229 */
230#define USB_CFG_DEVICE_CLASS 0
231#define USB_CFG_DEVICE_SUBCLASS 0
232/* See USB specification if you want to conform to an existing device class.
233 * Class 0xff is "vendor specific".
234 */
235#define USB_CFG_INTERFACE_CLASS 3 /* HID */
236#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
237#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
238/* See USB specification if you want to conform to an existing device class or
239 * protocol. The following classes must be set at interface level:
240 * HID class is 3, no subclass and protocol required (but may be useful!)
241 * CDC class is 2, use subclass 2 and protocol 1 for ACM
242 */
243#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
244/* Define this to the length of the HID report descriptor, if you implement
245 * an HID device. Otherwise don't define it or define it to 0.
246 * If you use this define, you must add a PROGMEM character array named
247 * "usbHidReportDescriptor" to your code which contains the report descriptor.
248 * Don't forget to keep the array and this define in sync!
249 */
250
251/* #define USB_PUBLIC static */
252/* Use the define above if you #include usbdrv.c instead of linking against it.
253 * This technique saves a couple of bytes in flash memory.
254 */
255
256/* ------------------- Fine Control over USB Descriptors ------------------- */
257/* If you don't want to use the driver's default USB descriptors, you can
258 * provide our own. These can be provided as (1) fixed length static data in
259 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
260 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
261 * information about this function.
262 * Descriptor handling is configured through the descriptor's properties. If
263 * no properties are defined or if they are 0, the default descriptor is used.
264 * Possible properties are:
265 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
266 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
267 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
268 * you want RAM pointers.
269 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
270 * in static memory is in RAM, not in flash memory.
271 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
272 * the driver must know the descriptor's length. The descriptor itself is
273 * found at the address of a well known identifier (see below).
274 * List of static descriptor names (must be declared PROGMEM if in flash):
275 * char usbDescriptorDevice[];
276 * char usbDescriptorConfiguration[];
277 * char usbDescriptorHidReport[];
278 * char usbDescriptorString0[];
279 * int usbDescriptorStringVendor[];
280 * int usbDescriptorStringDevice[];
281 * int usbDescriptorStringSerialNumber[];
282 * Other descriptors can't be provided statically, they must be provided
283 * dynamically at runtime.
284 *
285 * Descriptor properties are or-ed or added together, e.g.:
286 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
287 *
288 * The following descriptors are defined:
289 * USB_CFG_DESCR_PROPS_DEVICE
290 * USB_CFG_DESCR_PROPS_CONFIGURATION
291 * USB_CFG_DESCR_PROPS_STRINGS
292 * USB_CFG_DESCR_PROPS_STRING_0
293 * USB_CFG_DESCR_PROPS_STRING_VENDOR
294 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
295 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
296 * USB_CFG_DESCR_PROPS_HID
297 * USB_CFG_DESCR_PROPS_HID_REPORT
298 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
299 *
300 * Note about string descriptors: String descriptors are not just strings, they
301 * are Unicode strings prefixed with a 2 byte header. Example:
302 * int serialNumberDescriptor[] = {
303 * USB_STRING_DESCRIPTOR_HEADER(6),
304 * 'S', 'e', 'r', 'i', 'a', 'l'
305 * };
306 */
307
308#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
309#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_UNKNOWN 0
318
319#define usbMsgPtr_t unsigned short
320/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
321 * a scalar type here because gcc generates slightly shorter code for scalar
322 * arithmetics than for pointer arithmetics. Remove this define for backward
323 * type compatibility or define it to an 8 bit type if you use data in RAM only
324 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
325 */
326
327/* ----------------------- Optional MCU Description ------------------------ */
328
329/* The following configurations have working defaults in usbdrv.h. You
330 * usually don't need to set them explicitly. Only if you want to run
331 * the driver on a device which is not yet supported or with a compiler
332 * which is not fully supported (such as IAR C) or if you use a differnt
333 * interrupt than INT0, you may have to define some of these.
334 */
335/* #define USB_INTR_CFG MCUCR */
336/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE GIMSK */
339/* #define USB_INTR_ENABLE_BIT INT0 */
340/* #define USB_INTR_PENDING GIFR */
341/* #define USB_INTR_PENDING_BIT INTF0 */
342/* #define USB_INTR_VECTOR INT0_vect */
343
344/* Set INT1 for D- falling edge to count SOF */
345/* #define USB_INTR_CFG EICRA */
346#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
347/* #define USB_INTR_CFG_CLR 0 */
348/* #define USB_INTR_ENABLE EIMSK */
349#define USB_INTR_ENABLE_BIT INT1
350/* #define USB_INTR_PENDING EIFR */
351#define USB_INTR_PENDING_BIT INTF1
352#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/ymdk_np21/usbconfig.h b/keyboards/ymdk_np21/usbconfig.h
deleted file mode 100644
index fd5640a08..000000000
--- a/keyboards/ymdk_np21/usbconfig.h
+++ /dev/null
@@ -1,355 +0,0 @@
1/* Name: usbconfig.h
2 * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers
3 * Author: Christian Starkjohann
4 * Creation Date: 2005-04-01
5 * Tabsize: 4
6 * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
7 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
8 * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $
9 */
10
11#ifndef __usbconfig_h_included__
12#define __usbconfig_h_included__
13
14#include "config.h"
15
16/*
17General Description:
18This file is an example configuration (with inline documentation) for the USB
19driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
20also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
21wire the lines to any other port, as long as D+ is also wired to INT0 (or any
22other hardware interrupt, as long as it is the highest level interrupt, see
23section at the end of this file).
24*/
25
26/* ---------------------------- Hardware Config ---------------------------- */
27
28#define USB_CFG_IOPORTNAME D
29/* This is the port where the USB bus is connected. When you configure it to
30 * "B", the registers PORTB, PINB and DDRB will be used.
31 */
32#define USB_CFG_DMINUS_BIT 3
33/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
34 * This may be any bit in the port.
35 */
36#define USB_CFG_DPLUS_BIT 2
37/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
38 * This may be any bit in the port. Please note that D+ must also be connected
39 * to interrupt pin INT0! [You can also use other interrupts, see section
40 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
41 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
42 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
43 * markers every millisecond.]
44 */
45#define USB_CFG_CLOCK_KHZ (F_CPU/1000)
46/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
47 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
48 * require no crystal, they tolerate +/- 1% deviation from the nominal
49 * frequency. All other rates require a precision of 2000 ppm and thus a
50 * crystal!
51 * Since F_CPU should be defined to your actual clock rate anyway, you should
52 * not need to modify this setting.
53 */
54#define USB_CFG_CHECK_CRC 0
55/* Define this to 1 if you want that the driver checks integrity of incoming
56 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
57 * currently only available for 18 MHz crystal clock. You must choose
58 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
59 */
60
61/* ----------------------- Optional Hardware Config ------------------------ */
62
63/* #define USB_CFG_PULLUP_IOPORTNAME D */
64/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
65 * V+, you can connect and disconnect the device from firmware by calling
66 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
67 * This constant defines the port on which the pullup resistor is connected.
68 */
69/* #define USB_CFG_PULLUP_BIT 4 */
70/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
71 * above) where the 1.5k pullup resistor is connected. See description
72 * above for details.
73 */
74
75/* --------------------------- Functional Range ---------------------------- */
76
77#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
78/* Define this to 1 if you want to compile a version with two endpoints: The
79 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
80 * number).
81 */
82#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
83/* Define this to 1 if you want to compile a version with three endpoints: The
84 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
85 * configured below) and a catch-all default interrupt-in endpoint as above.
86 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
87 */
88#define USB_CFG_EP3_NUMBER 3
89/* If the so-called endpoint 3 is used, it can now be configured to any other
90 * endpoint number (except 0) with this macro. Default if undefined is 3.
91 */
92/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
93/* The above macro defines the startup condition for data toggling on the
94 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
95 * Since the token is toggled BEFORE sending any data, the first packet is
96 * sent with the oposite value of this configuration!
97 */
98#define USB_CFG_IMPLEMENT_HALT 0
99/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
100 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
101 * it is required by the standard. We have made it a config option because it
102 * bloats the code considerably.
103 */
104#define USB_CFG_SUPPRESS_INTR_CODE 0
105/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
106 * want to send any data over them. If this macro is defined to 1, functions
107 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
108 * you need the interrupt-in endpoints in order to comply to an interface
109 * (e.g. HID), but never want to send any data. This option saves a couple
110 * of bytes in flash memory and the transmit buffers in RAM.
111 */
112#define USB_CFG_IS_SELF_POWERED 0
113/* Define this to 1 if the device has its own power supply. Set it to 0 if the
114 * device is powered from the USB bus.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITE 1
117/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
118 * transfers. Set it to 0 if you don't need it and want to save a couple of
119 * bytes.
120 */
121#define USB_CFG_IMPLEMENT_FN_READ 0
122/* Set this to 1 if you need to send control replies which are generated
123 * "on the fly" when usbFunctionRead() is called. If you only want to send
124 * data from a static buffer, set it to 0 and return the data from
125 * usbFunctionSetup(). This saves a couple of bytes.
126 */
127#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
128/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
129 * You must implement the function usbFunctionWriteOut() which receives all
130 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
131 * can be found in 'usbRxToken'.
132 */
133#define USB_CFG_HAVE_FLOWCONTROL 0
134/* Define this to 1 if you want flowcontrol over USB data. See the definition
135 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
136 * usbdrv.h.
137 */
138#define USB_CFG_DRIVER_FLASH_PAGE 0
139/* If the device has more than 64 kBytes of flash, define this to the 64 k page
140 * where the driver's constants (descriptors) are located. Or in other words:
141 * Define this to 1 for boot loaders on the ATMega128.
142 */
143#define USB_CFG_LONG_TRANSFERS 0
144/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
145 * in a single control-in or control-out transfer. Note that the capability
146 * for long transfers increases the driver size.
147 */
148/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
149/* This macro is a hook if you want to do unconventional things. If it is
150 * defined, it's inserted at the beginning of received message processing.
151 * If you eat the received message and don't want default processing to
152 * proceed, do a return after doing your things. One possible application
153 * (besides debugging) is to flash a status LED on each packet.
154 */
155/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
156/* This macro is a hook if you need to know when an USB RESET occurs. It has
157 * one parameter which distinguishes between the start of RESET state and its
158 * end.
159 */
160/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
161/* This macro (if defined) is executed when a USB SET_ADDRESS request was
162 * received.
163 */
164#define USB_COUNT_SOF 1
165/* define this macro to 1 if you need the global variable "usbSofCount" which
166 * counts SOF packets. This feature requires that the hardware interrupt is
167 * connected to D- instead of D+.
168 */
169/* #ifdef __ASSEMBLER__
170 * macro myAssemblerMacro
171 * in YL, TCNT0
172 * sts timer0Snapshot, YL
173 * endm
174 * #endif
175 * #define USB_SOF_HOOK myAssemblerMacro
176 * This macro (if defined) is executed in the assembler module when a
177 * Start Of Frame condition is detected. It is recommended to define it to
178 * the name of an assembler macro which is defined here as well so that more
179 * than one assembler instruction can be used. The macro may use the register
180 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
181 * immediately after an SOF pulse may be lost and must be retried by the host.
182 * What can you do with this hook? Since the SOF signal occurs exactly every
183 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
184 * designs running on the internal RC oscillator.
185 * Please note that Start Of Frame detection works only if D- is wired to the
186 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
187 */
188#define USB_CFG_CHECK_DATA_TOGGLING 0
189/* define this macro to 1 if you want to filter out duplicate data packets
190 * sent by the host. Duplicates occur only as a consequence of communication
191 * errors, when the host does not receive an ACK. Please note that you need to
192 * implement the filtering yourself in usbFunctionWriteOut() and
193 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
194 * for each control- and out-endpoint to check for duplicate packets.
195 */
196#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
197/* define this macro to 1 if you want the function usbMeasureFrameLength()
198 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
199 */
200#define USB_USE_FAST_CRC 0
201/* The assembler module has two implementations for the CRC algorithm. One is
202 * faster, the other is smaller. This CRC routine is only used for transmitted
203 * messages where timing is not critical. The faster routine needs 31 cycles
204 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
205 * may be worth the 32 bytes bigger code size if you transmit lots of data and
206 * run the AVR close to its limit.
207 */
208
209/* -------------------------- Device Description --------------------------- */
210
211#define USB_CFG_VENDOR_ID
212/* USB vendor ID for the device, low byte first. If you have registered your
213 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
214 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_ID
221/* This is the ID of the product, low byte first. It is interpreted in the
222 * scope of the vendor ID. If you have registered your own VID with usb.org
223 * or if you have licensed a PID from somebody else, define it here. Otherwise
224 * you may use one of obdev's free shared VID/PID pairs. See the file
225 * USB-IDs-for-free.txt for details!
226 * *** IMPORTANT NOTE ***
227 * This template uses obdev's shared VID/PID pair for Vendor Class devices
228 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
229 * the implications!
230 */
231#define USB_CFG_DEVICE_CLASS 0
232#define USB_CFG_DEVICE_SUBCLASS 0
233/* See USB specification if you want to conform to an existing device class.
234 * Class 0xff is "vendor specific".
235 */
236#define USB_CFG_INTERFACE_CLASS 3 /* HID */
237#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
238#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
239/* See USB specification if you want to conform to an existing device class or
240 * protocol. The following classes must be set at interface level:
241 * HID class is 3, no subclass and protocol required (but may be useful!)
242 * CDC class is 2, use subclass 2 and protocol 1 for ACM
243 */
244#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
245/* Define this to the length of the HID report descriptor, if you implement
246 * an HID device. Otherwise don't define it or define it to 0.
247 * If you use this define, you must add a PROGMEM character array named
248 * "usbHidReportDescriptor" to your code which contains the report descriptor.
249 * Don't forget to keep the array and this define in sync!
250 */
251
252/* #define USB_PUBLIC static */
253/* Use the define above if you #include usbdrv.c instead of linking against it.
254 * This technique saves a couple of bytes in flash memory.
255 */
256
257/* ------------------- Fine Control over USB Descriptors ------------------- */
258/* If you don't want to use the driver's default USB descriptors, you can
259 * provide our own. These can be provided as (1) fixed length static data in
260 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
261 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
262 * information about this function.
263 * Descriptor handling is configured through the descriptor's properties. If
264 * no properties are defined or if they are 0, the default descriptor is used.
265 * Possible properties are:
266 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
267 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
268 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
269 * you want RAM pointers.
270 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
271 * in static memory is in RAM, not in flash memory.
272 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
273 * the driver must know the descriptor's length. The descriptor itself is
274 * found at the address of a well known identifier (see below).
275 * List of static descriptor names (must be declared PROGMEM if in flash):
276 * char usbDescriptorDevice[];
277 * char usbDescriptorConfiguration[];
278 * char usbDescriptorHidReport[];
279 * char usbDescriptorString0[];
280 * int usbDescriptorStringVendor[];
281 * int usbDescriptorStringDevice[];
282 * int usbDescriptorStringSerialNumber[];
283 * Other descriptors can't be provided statically, they must be provided
284 * dynamically at runtime.
285 *
286 * Descriptor properties are or-ed or added together, e.g.:
287 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
288 *
289 * The following descriptors are defined:
290 * USB_CFG_DESCR_PROPS_DEVICE
291 * USB_CFG_DESCR_PROPS_CONFIGURATION
292 * USB_CFG_DESCR_PROPS_STRINGS
293 * USB_CFG_DESCR_PROPS_STRING_0
294 * USB_CFG_DESCR_PROPS_STRING_VENDOR
295 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
296 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
297 * USB_CFG_DESCR_PROPS_HID
298 * USB_CFG_DESCR_PROPS_HID_REPORT
299 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
300 *
301 * Note about string descriptors: String descriptors are not just strings, they
302 * are Unicode strings prefixed with a 2 byte header. Example:
303 * int serialNumberDescriptor[] = {
304 * USB_STRING_DESCRIPTOR_HEADER(6),
305 * 'S', 'e', 'r', 'i', 'a', 'l'
306 * };
307 */
308
309#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
310#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
311#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
312#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
313#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
314#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
315#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
316#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
317#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
318#define USB_CFG_DESCR_PROPS_UNKNOWN 0
319
320#define usbMsgPtr_t unsigned short
321/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
322 * a scalar type here because gcc generates slightly shorter code for scalar
323 * arithmetics than for pointer arithmetics. Remove this define for backward
324 * type compatibility or define it to an 8 bit type if you use data in RAM only
325 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
326 */
327
328/* ----------------------- Optional MCU Description ------------------------ */
329
330/* The following configurations have working defaults in usbdrv.h. You
331 * usually don't need to set them explicitly. Only if you want to run
332 * the driver on a device which is not yet supported or with a compiler
333 * which is not fully supported (such as IAR C) or if you use a differnt
334 * interrupt than INT0, you may have to define some of these.
335 */
336/* #define USB_INTR_CFG MCUCR */
337/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
338/* #define USB_INTR_CFG_CLR 0 */
339/* #define USB_INTR_ENABLE GIMSK */
340/* #define USB_INTR_ENABLE_BIT INT0 */
341/* #define USB_INTR_PENDING GIFR */
342/* #define USB_INTR_PENDING_BIT INTF0 */
343/* #define USB_INTR_VECTOR INT0_vect */
344
345/* Set INT1 for D- falling edge to count SOF */
346/* #define USB_INTR_CFG EICRA */
347#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
348/* #define USB_INTR_CFG_CLR 0 */
349/* #define USB_INTR_ENABLE EIMSK */
350#define USB_INTR_ENABLE_BIT INT1
351/* #define USB_INTR_PENDING EIFR */
352#define USB_INTR_PENDING_BIT INTF1
353#define USB_INTR_VECTOR INT1_vect
354
355#endif /* __usbconfig_h_included__ */
diff --git a/quantum/template/ps2avrgb/usbconfig.h b/quantum/template/ps2avrgb/usbconfig.h
deleted file mode 100644
index 6e910a703..000000000
--- a/quantum/template/ps2avrgb/usbconfig.h
+++ /dev/null
@@ -1,342 +0,0 @@
1#pragma once
2
3#include "config.h"
4
5/*
6General Description:
7This file is an example configuration (with inline documentation) for the USB
8driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is
9also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may
10wire the lines to any other port, as long as D+ is also wired to INT0 (or any
11other hardware interrupt, as long as it is the highest level interrupt, see
12section at the end of this file).
13*/
14
15/* ---------------------------- Hardware Config ---------------------------- */
16
17#define USB_CFG_IOPORTNAME D
18/* This is the port where the USB bus is connected. When you configure it to
19 * "B", the registers PORTB, PINB and DDRB will be used.
20 */
21#define USB_CFG_DMINUS_BIT 3
22/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
23 * This may be any bit in the port.
24 */
25#define USB_CFG_DPLUS_BIT 2
26/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
27 * This may be any bit in the port. Please note that D+ must also be connected
28 * to interrupt pin INT0! [You can also use other interrupts, see section
29 * "Optional MCU Description" below, or you can connect D- to the interrupt, as
30 * it is required if you use the USB_COUNT_SOF feature. If you use D- for the
31 * interrupt, the USB interrupt will also be triggered at Start-Of-Frame
32 * markers every millisecond.]
33 */
34#define USB_CFG_CLOCK_KHZ (F_CPU / 1000)
35/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000,
36 * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code
37 * require no crystal, they tolerate +/- 1% deviation from the nominal
38 * frequency. All other rates require a precision of 2000 ppm and thus a
39 * crystal!
40 * Since F_CPU should be defined to your actual clock rate anyway, you should
41 * not need to modify this setting.
42 */
43#define USB_CFG_CHECK_CRC 0
44/* Define this to 1 if you want that the driver checks integrity of incoming
45 * data packets (CRC checks). CRC checks cost quite a bit of code size and are
46 * currently only available for 18 MHz crystal clock. You must choose
47 * USB_CFG_CLOCK_KHZ = 18000 if you enable this option.
48 */
49
50/* ----------------------- Optional Hardware Config ------------------------ */
51
52/* #define USB_CFG_PULLUP_IOPORTNAME D */
53/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
54 * V+, you can connect and disconnect the device from firmware by calling
55 * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
56 * This constant defines the port on which the pullup resistor is connected.
57 */
58/* #define USB_CFG_PULLUP_BIT 4 */
59/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
60 * above) where the 1.5k pullup resistor is connected. See description
61 * above for details.
62 */
63
64/* --------------------------- Functional Range ---------------------------- */
65
66#define USB_CFG_HAVE_INTRIN_ENDPOINT 1
67/* Define this to 1 if you want to compile a version with two endpoints: The
68 * default control endpoint 0 and an interrupt-in endpoint (any other endpoint
69 * number).
70 */
71#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1
72/* Define this to 1 if you want to compile a version with three endpoints: The
73 * default control endpoint 0, an interrupt-in endpoint 3 (or the number
74 * configured below) and a catch-all default interrupt-in endpoint as above.
75 * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature.
76 */
77#define USB_CFG_EP3_NUMBER 3
78/* If the so-called endpoint 3 is used, it can now be configured to any other
79 * endpoint number (except 0) with this macro. Default if undefined is 3.
80 */
81/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */
82/* The above macro defines the startup condition for data toggling on the
83 * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1.
84 * Since the token is toggled BEFORE sending any data, the first packet is
85 * sent with the oposite value of this configuration!
86 */
87#define USB_CFG_IMPLEMENT_HALT 0
88/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature
89 * for endpoint 1 (interrupt endpoint). Although you may not need this feature,
90 * it is required by the standard. We have made it a config option because it
91 * bloats the code considerably.
92 */
93#define USB_CFG_SUPPRESS_INTR_CODE 0
94/* Define this to 1 if you want to declare interrupt-in endpoints, but don't
95 * want to send any data over them. If this macro is defined to 1, functions
96 * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if
97 * you need the interrupt-in endpoints in order to comply to an interface
98 * (e.g. HID), but never want to send any data. This option saves a couple
99 * of bytes in flash memory and the transmit buffers in RAM.
100 */
101#define USB_CFG_IS_SELF_POWERED 0
102/* Define this to 1 if the device has its own power supply. Set it to 0 if the
103 * device is powered from the USB bus.
104 */
105#define USB_CFG_IMPLEMENT_FN_WRITE 1
106/* Set this to 1 if you want usbFunctionWrite() to be called for control-out
107 * transfers. Set it to 0 if you don't need it and want to save a couple of
108 * bytes.
109 */
110#define USB_CFG_IMPLEMENT_FN_READ 0
111/* Set this to 1 if you need to send control replies which are generated
112 * "on the fly" when usbFunctionRead() is called. If you only want to send
113 * data from a static buffer, set it to 0 and return the data from
114 * usbFunctionSetup(). This saves a couple of bytes.
115 */
116#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0
117/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints.
118 * You must implement the function usbFunctionWriteOut() which receives all
119 * interrupt/bulk data sent to any endpoint other than 0. The endpoint number
120 * can be found in 'usbRxToken'.
121 */
122#define USB_CFG_HAVE_FLOWCONTROL 0
123/* Define this to 1 if you want flowcontrol over USB data. See the definition
124 * of the macros usbDisableAllRequests() and usbEnableAllRequests() in
125 * usbdrv.h.
126 */
127#define USB_CFG_DRIVER_FLASH_PAGE 0
128/* If the device has more than 64 kBytes of flash, define this to the 64 k page
129 * where the driver's constants (descriptors) are located. Or in other words:
130 * Define this to 1 for boot loaders on the ATMega128.
131 */
132#define USB_CFG_LONG_TRANSFERS 0
133/* Define this to 1 if you want to send/receive blocks of more than 254 bytes
134 * in a single control-in or control-out transfer. Note that the capability
135 * for long transfers increases the driver size.
136 */
137/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */
138/* This macro is a hook if you want to do unconventional things. If it is
139 * defined, it's inserted at the beginning of received message processing.
140 * If you eat the received message and don't want default processing to
141 * proceed, do a return after doing your things. One possible application
142 * (besides debugging) is to flash a status LED on each packet.
143 */
144/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */
145/* This macro is a hook if you need to know when an USB RESET occurs. It has
146 * one parameter which distinguishes between the start of RESET state and its
147 * end.
148 */
149/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */
150/* This macro (if defined) is executed when a USB SET_ADDRESS request was
151 * received.
152 */
153#define USB_COUNT_SOF 1
154/* define this macro to 1 if you need the global variable "usbSofCount" which
155 * counts SOF packets. This feature requires that the hardware interrupt is
156 * connected to D- instead of D+.
157 */
158/* #ifdef __ASSEMBLER__
159 * macro myAssemblerMacro
160 * in YL, TCNT0
161 * sts timer0Snapshot, YL
162 * endm
163 * #endif
164 * #define USB_SOF_HOOK myAssemblerMacro
165 * This macro (if defined) is executed in the assembler module when a
166 * Start Of Frame condition is detected. It is recommended to define it to
167 * the name of an assembler macro which is defined here as well so that more
168 * than one assembler instruction can be used. The macro may use the register
169 * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages
170 * immediately after an SOF pulse may be lost and must be retried by the host.
171 * What can you do with this hook? Since the SOF signal occurs exactly every
172 * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in
173 * designs running on the internal RC oscillator.
174 * Please note that Start Of Frame detection works only if D- is wired to the
175 * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES!
176 */
177#define USB_CFG_CHECK_DATA_TOGGLING 0
178/* define this macro to 1 if you want to filter out duplicate data packets
179 * sent by the host. Duplicates occur only as a consequence of communication
180 * errors, when the host does not receive an ACK. Please note that you need to
181 * implement the filtering yourself in usbFunctionWriteOut() and
182 * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable
183 * for each control- and out-endpoint to check for duplicate packets.
184 */
185#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0
186/* define this macro to 1 if you want the function usbMeasureFrameLength()
187 * compiled in. This function can be used to calibrate the AVR's RC oscillator.
188 */
189#define USB_USE_FAST_CRC 0
190/* The assembler module has two implementations for the CRC algorithm. One is
191 * faster, the other is smaller. This CRC routine is only used for transmitted
192 * messages where timing is not critical. The faster routine needs 31 cycles
193 * per byte while the smaller one needs 61 to 69 cycles. The faster routine
194 * may be worth the 32 bytes bigger code size if you transmit lots of data and
195 * run the AVR close to its limit.
196 */
197
198/* -------------------------- Device Description --------------------------- */
199
200#define USB_CFG_VENDOR_ID
201/* USB vendor ID for the device, low byte first. If you have registered your
202 * own Vendor ID, define it here. Otherwise you may use one of obdev's free
203 * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules!
204 * *** IMPORTANT NOTE ***
205 * This template uses obdev's shared VID/PID pair for Vendor Class devices
206 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
207 * the implications!
208 */
209#define USB_CFG_DEVICE_ID
210/* This is the ID of the product, low byte first. It is interpreted in the
211 * scope of the vendor ID. If you have registered your own VID with usb.org
212 * or if you have licensed a PID from somebody else, define it here. Otherwise
213 * you may use one of obdev's free shared VID/PID pairs. See the file
214 * USB-IDs-for-free.txt for details!
215 * *** IMPORTANT NOTE ***
216 * This template uses obdev's shared VID/PID pair for Vendor Class devices
217 * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand
218 * the implications!
219 */
220#define USB_CFG_DEVICE_CLASS 0
221#define USB_CFG_DEVICE_SUBCLASS 0
222/* See USB specification if you want to conform to an existing device class.
223 * Class 0xff is "vendor specific".
224 */
225#define USB_CFG_INTERFACE_CLASS 3 /* HID */
226#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */
227#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */
228/* See USB specification if you want to conform to an existing device class or
229 * protocol. The following classes must be set at interface level:
230 * HID class is 3, no subclass and protocol required (but may be useful!)
231 * CDC class is 2, use subclass 2 and protocol 1 for ACM
232 */
233#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0
234/* Define this to the length of the HID report descriptor, if you implement
235 * an HID device. Otherwise don't define it or define it to 0.
236 * If you use this define, you must add a PROGMEM character array named
237 * "usbHidReportDescriptor" to your code which contains the report descriptor.
238 * Don't forget to keep the array and this define in sync!
239 */
240
241/* #define USB_PUBLIC static */
242/* Use the define above if you #include usbdrv.c instead of linking against it.
243 * This technique saves a couple of bytes in flash memory.
244 */
245
246/* ------------------- Fine Control over USB Descriptors ------------------- */
247/* If you don't want to use the driver's default USB descriptors, you can
248 * provide our own. These can be provided as (1) fixed length static data in
249 * flash memory, (2) fixed length static data in RAM or (3) dynamically at
250 * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more
251 * information about this function.
252 * Descriptor handling is configured through the descriptor's properties. If
253 * no properties are defined or if they are 0, the default descriptor is used.
254 * Possible properties are:
255 * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched
256 * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is
257 * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if
258 * you want RAM pointers.
259 * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found
260 * in static memory is in RAM, not in flash memory.
261 * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash),
262 * the driver must know the descriptor's length. The descriptor itself is
263 * found at the address of a well known identifier (see below).
264 * List of static descriptor names (must be declared PROGMEM if in flash):
265 * char usbDescriptorDevice[];
266 * char usbDescriptorConfiguration[];
267 * char usbDescriptorHidReport[];
268 * char usbDescriptorString0[];
269 * int usbDescriptorStringVendor[];
270 * int usbDescriptorStringDevice[];
271 * int usbDescriptorStringSerialNumber[];
272 * Other descriptors can't be provided statically, they must be provided
273 * dynamically at runtime.
274 *
275 * Descriptor properties are or-ed or added together, e.g.:
276 * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18))
277 *
278 * The following descriptors are defined:
279 * USB_CFG_DESCR_PROPS_DEVICE
280 * USB_CFG_DESCR_PROPS_CONFIGURATION
281 * USB_CFG_DESCR_PROPS_STRINGS
282 * USB_CFG_DESCR_PROPS_STRING_0
283 * USB_CFG_DESCR_PROPS_STRING_VENDOR
284 * USB_CFG_DESCR_PROPS_STRING_PRODUCT
285 * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
286 * USB_CFG_DESCR_PROPS_HID
287 * USB_CFG_DESCR_PROPS_HID_REPORT
288 * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver)
289 *
290 * Note about string descriptors: String descriptors are not just strings, they
291 * are Unicode strings prefixed with a 2 byte header. Example:
292 * int serialNumberDescriptor[] = {
293 * USB_STRING_DESCRIPTOR_HEADER(6),
294 * 'S', 'e', 'r', 'i', 'a', 'l'
295 * };
296 */
297
298#define USB_CFG_DESCR_PROPS_DEVICE USB_PROP_IS_DYNAMIC
299#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC
300#define USB_CFG_DESCR_PROPS_STRINGS USB_PROP_IS_DYNAMIC
301#define USB_CFG_DESCR_PROPS_STRING_0 USB_PROP_IS_DYNAMIC
302#define USB_CFG_DESCR_PROPS_STRING_VENDOR USB_PROP_IS_DYNAMIC
303#define USB_CFG_DESCR_PROPS_STRING_PRODUCT USB_PROP_IS_DYNAMIC
304#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER USB_PROP_IS_DYNAMIC
305#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC
306#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC
307#define USB_CFG_DESCR_PROPS_UNKNOWN 0
308
309#define usbMsgPtr_t unsigned short
310/* If usbMsgPtr_t is not defined, it defaults to 'uchar *'. We define it to
311 * a scalar type here because gcc generates slightly shorter code for scalar
312 * arithmetics than for pointer arithmetics. Remove this define for backward
313 * type compatibility or define it to an 8 bit type if you use data in RAM only
314 * and all RAM is below 256 bytes (tiny memory model in IAR CC).
315 */
316
317/* ----------------------- Optional MCU Description ------------------------ */
318
319/* The following configurations have working defaults in usbdrv.h. You
320 * usually don't need to set them explicitly. Only if you want to run
321 * the driver on a device which is not yet supported or with a compiler
322 * which is not fully supported (such as IAR C) or if you use a differnt
323 * interrupt than INT0, you may have to define some of these.
324 */
325/* #define USB_INTR_CFG MCUCR */
326/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */
327/* #define USB_INTR_CFG_CLR 0 */
328/* #define USB_INTR_ENABLE GIMSK */
329/* #define USB_INTR_ENABLE_BIT INT0 */
330/* #define USB_INTR_PENDING GIFR */
331/* #define USB_INTR_PENDING_BIT INTF0 */
332/* #define USB_INTR_VECTOR INT0_vect */
333
334/* Set INT1 for D- falling edge to count SOF */
335/* #define USB_INTR_CFG EICRA */
336#define USB_INTR_CFG_SET ((1 << ISC11) | (0 << ISC10))
337/* #define USB_INTR_CFG_CLR 0 */
338/* #define USB_INTR_ENABLE EIMSK */
339#define USB_INTR_ENABLE_BIT INT1
340/* #define USB_INTR_PENDING EIFR */
341#define USB_INTR_PENDING_BIT INTF1
342#define USB_INTR_VECTOR INT1_vect
diff --git a/keyboards/exclusive/e6v2/le_bmc/usbconfig.h b/tmk_core/protocol/vusb/usbconfig.h
index 9ffec5280..f3cfd84ab 100644
--- a/keyboards/exclusive/e6v2/le_bmc/usbconfig.h
+++ b/tmk_core/protocol/vusb/usbconfig.h
@@ -10,7 +10,7 @@
10 10
11#pragma once 11#pragma once
12 12
13#include "config.h" 13// clang-format off
14 14
15/* 15/*
16General Description: 16General Description: