aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/1upkeyboards/1up60hse/config.h1
-rw-r--r--keyboards/1upkeyboards/1up60hte/config.h1
-rw-r--r--keyboards/1upkeyboards/1up60rgb/config.h1
-rw-r--r--keyboards/1upkeyboards/super16/config.h1
-rw-r--r--keyboards/1upkeyboards/sweet16/config.h1
-rw-r--r--keyboards/2key2crawl/config.h1
-rw-r--r--keyboards/30wer/config.h1
-rw-r--r--keyboards/40percentclub/25/config.h1
-rw-r--r--keyboards/40percentclub/4pack/config.h1
-rw-r--r--keyboards/40percentclub/4x4/config.h1
-rw-r--r--keyboards/40percentclub/5x5/config.h1
-rw-r--r--keyboards/40percentclub/6lit/config.h1
-rw-r--r--keyboards/40percentclub/foobar/config.h1
-rw-r--r--keyboards/40percentclub/gherkin/config.h1
-rw-r--r--keyboards/40percentclub/gherkin/keymaps/mjt/config.h2
-rw-r--r--keyboards/40percentclub/half_n_half/config.h1
-rw-r--r--keyboards/40percentclub/i75/config.h1
-rw-r--r--keyboards/40percentclub/luddite/config.h1
-rw-r--r--keyboards/40percentclub/mf68/config.h1
-rw-r--r--keyboards/40percentclub/mf68/keymaps/68keys/config.h2
-rw-r--r--keyboards/40percentclub/mf68/keymaps/mf68_ble/config.h4
-rw-r--r--keyboards/40percentclub/nano/config.h1
-rw-r--r--keyboards/40percentclub/nein/config.h1
-rw-r--r--keyboards/40percentclub/nori/config.h1
-rw-r--r--keyboards/40percentclub/tomato/config.h1
-rw-r--r--keyboards/40percentclub/ut47/config.h1
-rw-r--r--keyboards/4by3/config.h1
-rw-r--r--keyboards/4pplet/aekiso60/rev_a/config.h1
-rw-r--r--keyboards/4pplet/steezy60/rev_a/config.h1
-rw-r--r--keyboards/4pplet/waffling60/rev_a/config.h1
-rw-r--r--keyboards/6ball/config.h1
-rw-r--r--keyboards/7skb/rev1/config.h1
-rw-r--r--keyboards/9key/config.h1
-rw-r--r--keyboards/abacus/config.h1
-rw-r--r--keyboards/absinthe/config.h1
-rw-r--r--keyboards/abstract/ellipse/rev1/config.h1
-rw-r--r--keyboards/acheron/austin/config.h1
-rw-r--r--keyboards/acheron/elongate/config.h1
-rw-r--r--keyboards/acheron/keebspcb/config.h1
-rw-r--r--keyboards/acheron/shark/config.h1
-rw-r--r--keyboards/acr60/config.h1
-rw-r--r--keyboards/adelheid/config.h1
-rw-r--r--keyboards/adkb96/rev1/config.h1
-rw-r--r--keyboards/aeboards/aegis/config.h1
-rw-r--r--keyboards/ai03/equinox/config.h1
-rw-r--r--keyboards/ai03/lunar/config.h1
-rw-r--r--keyboards/ai03/orbit/config.h1
-rw-r--r--keyboards/ai03/orbit_x/config.h1
-rw-r--r--keyboards/ai03/polaris/config.h1
-rw-r--r--keyboards/ai03/quasar/config.h1
-rw-r--r--keyboards/akb/eb46/config.h1
-rw-r--r--keyboards/akb/raine/config.h1
-rw-r--r--keyboards/al1/config.h1
-rw-r--r--keyboards/alf/dc60/config.h1
-rw-r--r--keyboards/alf/x11/config.h1
-rw-r--r--keyboards/alf/x2/config.h1
-rw-r--r--keyboards/allison/config.h1
-rw-r--r--keyboards/allison_numpad/config.h1
-rwxr-xr-xkeyboards/alpha/config.h1
-rw-r--r--keyboards/alps64/config.h1
-rwxr-xr-xkeyboards/alu84/config.h1
-rwxr-xr-xkeyboards/amj40/config.h1
-rw-r--r--keyboards/amj60/config.h1
-rw-r--r--keyboards/amj96/config.h1
-rw-r--r--keyboards/amjkeyboard/amj66/config.h1
-rw-r--r--keyboards/amjpad/config.h1
-rw-r--r--keyboards/anavi/macropad8/config.h1
-rw-r--r--keyboards/angel17/alpha/config.h1
-rw-r--r--keyboards/angel17/rev1/config.h1
-rw-r--r--keyboards/angel64/alpha/config.h1
-rw-r--r--keyboards/angel64/rev1/config.h1
-rw-r--r--keyboards/aos/tkl/config.h1
-rw-r--r--keyboards/arabica37/rev1/config.h1
-rw-r--r--keyboards/arisu/config.h1
-rw-r--r--keyboards/ash1800/config.h1
-rw-r--r--keyboards/ashpil/modelm_usbc/config.h1
-rw-r--r--keyboards/at101_bh/config.h1
-rw-r--r--keyboards/at_at/660m/config.h1
-rw-r--r--keyboards/atomic/config.h1
-rw-r--r--keyboards/atreus/config.h1
-rw-r--r--keyboards/atreus62/config.h1
-rw-r--r--keyboards/atreus62/keymaps/atreus52/config.h2
-rw-r--r--keyboards/atxkb/1894/config.h1
-rw-r--r--keyboards/aves65/config.h1
-rw-r--r--tmk_core/common/report.h6
-rw-r--r--tmk_core/protocol/vusb/vusb.c123
-rw-r--r--tmk_core/protocol/vusb/vusb.h21
87 files changed, 104 insertions, 136 deletions
diff --git a/keyboards/1upkeyboards/1up60hse/config.h b/keyboards/1upkeyboards/1up60hse/config.h
index 7fc55b04d..bc1c8a040 100644
--- a/keyboards/1upkeyboards/1up60hse/config.h
+++ b/keyboards/1upkeyboards/1up60hse/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER 1upkeyboards 26#define MANUFACTURER 1upkeyboards
27#define PRODUCT 1up60hse 27#define PRODUCT 1up60hse
28#define DESCRIPTION A custom 60% keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/1upkeyboards/1up60hte/config.h b/keyboards/1upkeyboards/1up60hte/config.h
index c3ba030de..81fa0e1eb 100644
--- a/keyboards/1upkeyboards/1up60hte/config.h
+++ b/keyboards/1upkeyboards/1up60hte/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER 1upkeyboards 27#define MANUFACTURER 1upkeyboards
28#define PRODUCT 1up60hte 28#define PRODUCT 1up60hte
29#define DESCRIPTION A custom 60% keyboard
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 5 31#define MATRIX_ROWS 5
diff --git a/keyboards/1upkeyboards/1up60rgb/config.h b/keyboards/1upkeyboards/1up60rgb/config.h
index 46e08a516..c78fc3e52 100644
--- a/keyboards/1upkeyboards/1up60rgb/config.h
+++ b/keyboards/1upkeyboards/1up60rgb/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER 1upkeyboards 9#define MANUFACTURER 1upkeyboards
10#define PRODUCT 1UP RGB Underglow PCB 10#define PRODUCT 1UP RGB Underglow PCB
11#define DESCRIPTION 60% keyboard with RGB underglow
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 5 13#define MATRIX_ROWS 5
diff --git a/keyboards/1upkeyboards/super16/config.h b/keyboards/1upkeyboards/super16/config.h
index 3f0d468b7..23114c7c6 100644
--- a/keyboards/1upkeyboards/super16/config.h
+++ b/keyboards/1upkeyboards/super16/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER 1upkeyboards 26#define MANUFACTURER 1upkeyboards
27#define PRODUCT super16 27#define PRODUCT super16
28#define DESCRIPTION A 4x4 custom macropad
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/1upkeyboards/sweet16/config.h b/keyboards/1upkeyboards/sweet16/config.h
index 0fc117c5a..f858685b8 100644
--- a/keyboards/1upkeyboards/sweet16/config.h
+++ b/keyboards/1upkeyboards/sweet16/config.h
@@ -6,7 +6,6 @@
6#define VENDOR_ID 0x6F75 // OU 6#define VENDOR_ID 0x6F75 // OU
7#define MANUFACTURER 1up Keyboards 7#define MANUFACTURER 1up Keyboards
8#define PRODUCT Sweet16 8#define PRODUCT Sweet16
9#define DESCRIPTION 4x4 grid
10 9
11/* key matrix size */ 10/* key matrix size */
12#define MATRIX_ROWS 4 11#define MATRIX_ROWS 4
diff --git a/keyboards/2key2crawl/config.h b/keyboards/2key2crawl/config.h
index b93dcc7fa..27a94a00c 100644
--- a/keyboards/2key2crawl/config.h
+++ b/keyboards/2key2crawl/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0002 8#define DEVICE_VER 0x0002
9#define MANUFACTURER WoodKeys.click 9#define MANUFACTURER WoodKeys.click
10#define PRODUCT 2Key2Crawl 10#define PRODUCT 2Key2Crawl
11#define DESCRIPTION ATX Keycrawl 2018
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 2 13#define MATRIX_ROWS 2
diff --git a/keyboards/30wer/config.h b/keyboards/30wer/config.h
index 5a89a35f0..d4f656edc 100644
--- a/keyboards/30wer/config.h
+++ b/keyboards/30wer/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0000 8#define DEVICE_VER 0x0000
9#define MANUFACTURER 8o7wer 9#define MANUFACTURER 8o7wer
10#define PRODUCT 30wer 10#define PRODUCT 30wer
11#define DESCRIPTION Gherkin style construction 30% staggered pcb kit
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 3 13#define MATRIX_ROWS 3
diff --git a/keyboards/40percentclub/25/config.h b/keyboards/40percentclub/25/config.h
index 01ca061a1..ab71fa6cf 100644
--- a/keyboards/40percentclub/25/config.h
+++ b/keyboards/40percentclub/25/config.h
@@ -24,7 +24,6 @@
24#define DEVICE_VER 0x0F25 24#define DEVICE_VER 0x0F25
25#define MANUFACTURER di0ib 25#define MANUFACTURER di0ib
26#define PRODUCT The 5x5 Keyboard 26#define PRODUCT The 5x5 Keyboard
27#define DESCRIPTION A split 50 key keyboard
28 27
29#define USE_SERIAL 28#define USE_SERIAL
30/* serial.c configuration for split keyboard */ 29/* serial.c configuration for split keyboard */
diff --git a/keyboards/40percentclub/4pack/config.h b/keyboards/40percentclub/4pack/config.h
index 7ccf21ef8..73ec28bd7 100644
--- a/keyboards/40percentclub/4pack/config.h
+++ b/keyboards/40percentclub/4pack/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER 40percentclub 26#define MANUFACTURER 40percentclub
27#define PRODUCT 4pack 27#define PRODUCT 4pack
28#define DESCRIPTION A 1x4 custom macropad
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 1 30#define MATRIX_ROWS 1
diff --git a/keyboards/40percentclub/4x4/config.h b/keyboards/40percentclub/4x4/config.h
index 810f3cf29..bcd2ba2db 100644
--- a/keyboards/40percentclub/4x4/config.h
+++ b/keyboards/40percentclub/4x4/config.h
@@ -10,7 +10,6 @@
10#define DEVICE_VER 0x4444 10#define DEVICE_VER 0x4444
11#define MANUFACTURER di0ib 11#define MANUFACTURER di0ib
12#define PRODUCT The 4x4 Keyboard 12#define PRODUCT The 4x4 Keyboard
13#define DESCRIPTION A modular compact keyboard
14 13
15/* key matrix size */ 14/* key matrix size */
16#define MATRIX_ROWS 4 15#define MATRIX_ROWS 4
diff --git a/keyboards/40percentclub/5x5/config.h b/keyboards/40percentclub/5x5/config.h
index 54515583a..c907d79c8 100644
--- a/keyboards/40percentclub/5x5/config.h
+++ b/keyboards/40percentclub/5x5/config.h
@@ -10,7 +10,6 @@
10#define DEVICE_VER 0x05B5 10#define DEVICE_VER 0x05B5
11#define MANUFACTURER di0ib 11#define MANUFACTURER di0ib
12#define PRODUCT The 5x5 Keyboard 12#define PRODUCT The 5x5 Keyboard
13#define DESCRIPTION A 25 or 50 or 75 key keyboard
14 13
15/* key matrix size */ 14/* key matrix size */
16#define MATRIX_ROWS 5 15#define MATRIX_ROWS 5
diff --git a/keyboards/40percentclub/6lit/config.h b/keyboards/40percentclub/6lit/config.h
index 4efa4c99b..6c6319862 100644
--- a/keyboards/40percentclub/6lit/config.h
+++ b/keyboards/40percentclub/6lit/config.h
@@ -24,7 +24,6 @@
24#define DEVICE_VER 0x0F61 24#define DEVICE_VER 0x0F61
25#define MANUFACTURER di0ib 25#define MANUFACTURER di0ib
26#define PRODUCT The 6lit Macropad 26#define PRODUCT The 6lit Macropad
27#define DESCRIPTION A split 12 key Macropad
28 27
29#define USE_SERIAL 28#define USE_SERIAL
30 29
diff --git a/keyboards/40percentclub/foobar/config.h b/keyboards/40percentclub/foobar/config.h
index e50125983..0c9dfd345 100644
--- a/keyboards/40percentclub/foobar/config.h
+++ b/keyboards/40percentclub/foobar/config.h
@@ -24,7 +24,6 @@
24#define DEVICE_VER 0x0F00 24#define DEVICE_VER 0x0F00
25#define MANUFACTURER di0ib 25#define MANUFACTURER di0ib
26#define PRODUCT The foobar Keyboard 26#define PRODUCT The foobar Keyboard
27#define DESCRIPTION A split 30 key keyboard
28 27
29#define USE_SERIAL 28#define USE_SERIAL
30 29
diff --git a/keyboards/40percentclub/gherkin/config.h b/keyboards/40percentclub/gherkin/config.h
index 4dc794e34..1307ca2e1 100644
--- a/keyboards/40percentclub/gherkin/config.h
+++ b/keyboards/40percentclub/gherkin/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER 40 Percent Club 9#define MANUFACTURER 40 Percent Club
10#define PRODUCT Gherkin 10#define PRODUCT Gherkin
11#define DESCRIPTION A 30 key ortholinear keyboard
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 5 13#define MATRIX_ROWS 5
diff --git a/keyboards/40percentclub/gherkin/keymaps/mjt/config.h b/keyboards/40percentclub/gherkin/keymaps/mjt/config.h
index 9fe94bcd2..ce9d5ab2a 100644
--- a/keyboards/40percentclub/gherkin/keymaps/mjt/config.h
+++ b/keyboards/40percentclub/gherkin/keymaps/mjt/config.h
@@ -2,6 +2,4 @@
2 2
3/* USB Device descriptor parameter */ 3/* USB Device descriptor parameter */
4#undef MANUFACTURER 4#undef MANUFACTURER
5#undef DESCRIPTION
6#define MANUFACTURER Some Guy 5#define MANUFACTURER Some Guy
7#define DESCRIPTION 30 percent disaster
diff --git a/keyboards/40percentclub/half_n_half/config.h b/keyboards/40percentclub/half_n_half/config.h
index e5ea48dd8..5213a7ecf 100644
--- a/keyboards/40percentclub/half_n_half/config.h
+++ b/keyboards/40percentclub/half_n_half/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x4A1F 25#define DEVICE_VER 0x4A1F
26#define MANUFACTURER di0ib 26#define MANUFACTURER di0ib
27#define PRODUCT half_n_half 27#define PRODUCT half_n_half
28#define DESCRIPTION A small split ortholinear custom keyboard with 2 thumb buttons
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4*2 30#define MATRIX_ROWS 4*2
diff --git a/keyboards/40percentclub/i75/config.h b/keyboards/40percentclub/i75/config.h
index 69124bc7a..18197f0b1 100644
--- a/keyboards/40percentclub/i75/config.h
+++ b/keyboards/40percentclub/i75/config.h
@@ -24,7 +24,6 @@
24#define DEVICE_VER 0x0175 24#define DEVICE_VER 0x0175
25#define MANUFACTURER di0ib 25#define MANUFACTURER di0ib
26#define PRODUCT i75 26#define PRODUCT i75
27#define DESCRIPTION i75 15x5 ortholinear keyboard
28 27
29/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ 28/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
30#define DEBOUNCE 5 29#define DEBOUNCE 5
diff --git a/keyboards/40percentclub/luddite/config.h b/keyboards/40percentclub/luddite/config.h
index 63158f6c4..90d84c56e 100644
--- a/keyboards/40percentclub/luddite/config.h
+++ b/keyboards/40percentclub/luddite/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x1001 8#define DEVICE_VER 0x1001
9#define MANUFACTURER di0ib 9#define MANUFACTURER di0ib
10#define PRODUCT Luddite 10#define PRODUCT Luddite
11#define DESCRIPTION Luddite Keyboard
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 8 13#define MATRIX_ROWS 8
diff --git a/keyboards/40percentclub/mf68/config.h b/keyboards/40percentclub/mf68/config.h
index 7c5a0cd5e..1ff2c189e 100644
--- a/keyboards/40percentclub/mf68/config.h
+++ b/keyboards/40percentclub/mf68/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0101 25#define DEVICE_VER 0x0101
26#define MANUFACTURER di0ib 26#define MANUFACTURER di0ib
27#define PRODUCT MF68 27#define PRODUCT MF68
28#define DESCRIPTION Magicforce 68 with programmable PCB replacement
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 8 30#define MATRIX_ROWS 8
diff --git a/keyboards/40percentclub/mf68/keymaps/68keys/config.h b/keyboards/40percentclub/mf68/keymaps/68keys/config.h
index a0a576b7b..651c17069 100644
--- a/keyboards/40percentclub/mf68/keymaps/68keys/config.h
+++ b/keyboards/40percentclub/mf68/keymaps/68keys/config.h
@@ -6,10 +6,8 @@
6#undef DEVICE_VER 6#undef DEVICE_VER
7#undef MANUFACTURER 7#undef MANUFACTURER
8#undef PRODUCT 8#undef PRODUCT
9#undef DESCRIPTION
10#define VENDOR_ID 0xFEED 9#define VENDOR_ID 0xFEED
11#define PRODUCT_ID 0x0A0C 10#define PRODUCT_ID 0x0A0C
12#define DEVICE_VER 0x0068 11#define DEVICE_VER 0x0068
13#define MANUFACTURER 68Keys.io 12#define MANUFACTURER 68Keys.io
14#define PRODUCT The 68Keys.io Keyboard 13#define PRODUCT The 68Keys.io Keyboard
15#define DESCRIPTION A 68 keys mechanical keyboard
diff --git a/keyboards/40percentclub/mf68/keymaps/mf68_ble/config.h b/keyboards/40percentclub/mf68/keymaps/mf68_ble/config.h
index 7d96ab9e2..bc5de30f2 100644
--- a/keyboards/40percentclub/mf68/keymaps/mf68_ble/config.h
+++ b/keyboards/40percentclub/mf68/keymaps/mf68_ble/config.h
@@ -21,10 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
21 21
22/* Overrides for Feather 32u4 Bluefruit */ 22/* Overrides for Feather 32u4 Bluefruit */
23 23
24/* USB Device descriptor parameter */
25#undef DESCRIPTION
26#define DESCRIPTION Magicforce 68 BLE
27
28/* 24/*
29 * Keyboard Matrix Assignments 25 * Keyboard Matrix Assignments
30 * 26 *
diff --git a/keyboards/40percentclub/nano/config.h b/keyboards/40percentclub/nano/config.h
index 8ee6963e4..aa4a64d07 100644
--- a/keyboards/40percentclub/nano/config.h
+++ b/keyboards/40percentclub/nano/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER di0ib 26#define MANUFACTURER di0ib
27#define PRODUCT Nano 27#define PRODUCT Nano
28#define DESCRIPTION 8 key microswitch board
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 2 30#define MATRIX_ROWS 2
diff --git a/keyboards/40percentclub/nein/config.h b/keyboards/40percentclub/nein/config.h
index b96f5fbe5..46c166207 100644
--- a/keyboards/40percentclub/nein/config.h
+++ b/keyboards/40percentclub/nein/config.h
@@ -24,7 +24,6 @@
24#define DEVICE_VER 0x9999 24#define DEVICE_VER 0x9999
25#define MANUFACTURER di0ib 25#define MANUFACTURER di0ib
26#define PRODUCT The nein Keyboard 26#define PRODUCT The nein Keyboard
27#define DESCRIPTION 9 key macropad
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 3 29#define MATRIX_ROWS 3
diff --git a/keyboards/40percentclub/nori/config.h b/keyboards/40percentclub/nori/config.h
index 8e24ef88e..9c9cdbcee 100644
--- a/keyboards/40percentclub/nori/config.h
+++ b/keyboards/40percentclub/nori/config.h
@@ -24,7 +24,6 @@
24#define DEVICE_VER 0x0444 24#define DEVICE_VER 0x0444
25#define MANUFACTURER di0ib 25#define MANUFACTURER di0ib
26#define PRODUCT The nori Keyboard 26#define PRODUCT The nori Keyboard
27#define DESCRIPTION A modular compact keyboard
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 4 29#define MATRIX_ROWS 4
diff --git a/keyboards/40percentclub/tomato/config.h b/keyboards/40percentclub/tomato/config.h
index e131ce5c2..a083223a1 100644
--- a/keyboards/40percentclub/tomato/config.h
+++ b/keyboards/40percentclub/tomato/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER 40 Percent Club 9#define MANUFACTURER 40 Percent Club
10#define PRODUCT Tomato 10#define PRODUCT Tomato
11#define DESCRIPTION A 30 key ortholinear keyboard with RGB backlighting
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 5 13#define MATRIX_ROWS 5
diff --git a/keyboards/40percentclub/ut47/config.h b/keyboards/40percentclub/ut47/config.h
index 25ef4271f..197d6cd18 100644
--- a/keyboards/40percentclub/ut47/config.h
+++ b/keyboards/40percentclub/ut47/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER 40percent.club 26#define MANUFACTURER 40percent.club
27#define PRODUCT ut47 27#define PRODUCT ut47
28#define DESCRIPTION An awesome 40% keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/4by3/config.h b/keyboards/4by3/config.h
index 2095ee42c..daaafb02a 100644
--- a/keyboards/4by3/config.h
+++ b/keyboards/4by3/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER Elias Sjögreen 9#define MANUFACTURER Elias Sjögreen
10#define PRODUCT 4by3 10#define PRODUCT 4by3
11#define DESCRIPTION A small 12 key keypad
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 3 13#define MATRIX_ROWS 3
diff --git a/keyboards/4pplet/aekiso60/rev_a/config.h b/keyboards/4pplet/aekiso60/rev_a/config.h
index 7505bcf7b..3100a20fe 100644
--- a/keyboards/4pplet/aekiso60/rev_a/config.h
+++ b/keyboards/4pplet/aekiso60/rev_a/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER 4pplet 9#define MANUFACTURER 4pplet
10#define PRODUCT AEKISO60 Rev A 10#define PRODUCT AEKISO60 Rev A
11#define DESCRIPTION A steezy KEEB
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 5 13#define MATRIX_ROWS 5
diff --git a/keyboards/4pplet/steezy60/rev_a/config.h b/keyboards/4pplet/steezy60/rev_a/config.h
index 9aceedc66..8f0c0d953 100644
--- a/keyboards/4pplet/steezy60/rev_a/config.h
+++ b/keyboards/4pplet/steezy60/rev_a/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER 4pplet 9#define MANUFACTURER 4pplet
10#define PRODUCT Steezy60 Rev A 10#define PRODUCT Steezy60 Rev A
11#define DESCRIPTION A steezy keeb
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 5 13#define MATRIX_ROWS 5
diff --git a/keyboards/4pplet/waffling60/rev_a/config.h b/keyboards/4pplet/waffling60/rev_a/config.h
index 6bbc68be6..33279d67a 100644
--- a/keyboards/4pplet/waffling60/rev_a/config.h
+++ b/keyboards/4pplet/waffling60/rev_a/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER 4pplet 9#define MANUFACTURER 4pplet
10#define PRODUCT waffling60 Rev A 10#define PRODUCT waffling60 Rev A
11#define DESCRIPTION A steezy keeb
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 6 13#define MATRIX_ROWS 6
diff --git a/keyboards/6ball/config.h b/keyboards/6ball/config.h
index b0e59f20c..c7d4d3354 100644
--- a/keyboards/6ball/config.h
+++ b/keyboards/6ball/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER That-Canadian 27#define MANUFACTURER That-Canadian
28#define PRODUCT 6-Ball 28#define PRODUCT 6-Ball
29#define DESCRIPTION 6-Ball Macropuck
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 1 31#define MATRIX_ROWS 1
diff --git a/keyboards/7skb/rev1/config.h b/keyboards/7skb/rev1/config.h
index f1e8b9daf..a74cd25c2 100644
--- a/keyboards/7skb/rev1/config.h
+++ b/keyboards/7skb/rev1/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0007 24#define DEVICE_VER 0x0007
25#define MANUFACTURER Salicylic_Acid 25#define MANUFACTURER Salicylic_Acid
26#define PRODUCT 7skb 26#define PRODUCT 7skb
27#define DESCRIPTION A custom keyboard
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 10 29#define MATRIX_ROWS 10
diff --git a/keyboards/9key/config.h b/keyboards/9key/config.h
index 4e5a2fd45..3c7b4e0ad 100644
--- a/keyboards/9key/config.h
+++ b/keyboards/9key/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER Bishop Keyboards 27#define MANUFACTURER Bishop Keyboards
28#define PRODUCT 9Key 28#define PRODUCT 9Key
29#define DESCRIPTION Bishop Keyboards 9Key // Charleston, SC Meetup Handout
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 3 31#define MATRIX_ROWS 3
diff --git a/keyboards/abacus/config.h b/keyboards/abacus/config.h
index bc4120544..51ea2fdba 100644
--- a/keyboards/abacus/config.h
+++ b/keyboards/abacus/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER nickolaij 26#define MANUFACTURER nickolaij
27#define PRODUCT abacus 27#define PRODUCT abacus
28#define DESCRIPTION A first attempt at a custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/absinthe/config.h b/keyboards/absinthe/config.h
index 939b3d065..3000a4b8a 100644
--- a/keyboards/absinthe/config.h
+++ b/keyboards/absinthe/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER cfbender 26#define MANUFACTURER cfbender
27#define PRODUCT absinthe 27#define PRODUCT absinthe
28#define DESCRIPTION An F-row-less TKL
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 9 30#define MATRIX_ROWS 9
diff --git a/keyboards/abstract/ellipse/rev1/config.h b/keyboards/abstract/ellipse/rev1/config.h
index a92dd1b0e..6e4172622 100644
--- a/keyboards/abstract/ellipse/rev1/config.h
+++ b/keyboards/abstract/ellipse/rev1/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER AbstractKB 26#define MANUFACTURER AbstractKB
27#define PRODUCT EllipseRev1 27#define PRODUCT EllipseRev1
28#define DESCRIPTION The Ellipse Macropad
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 2 30#define MATRIX_ROWS 2
diff --git a/keyboards/acheron/austin/config.h b/keyboards/acheron/austin/config.h
index c6a41c7bc..e90fb0ee7 100644
--- a/keyboards/acheron/austin/config.h
+++ b/keyboards/acheron/austin/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER DriftMechanics 24#define MANUFACTURER DriftMechanics
25#define PRODUCT Austin 25#define PRODUCT Austin
26#define DESCRIPTION Austin Keyboard
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 6 28#define MATRIX_ROWS 6
diff --git a/keyboards/acheron/elongate/config.h b/keyboards/acheron/elongate/config.h
index dfba6728d..a4e2aacf7 100644
--- a/keyboards/acheron/elongate/config.h
+++ b/keyboards/acheron/elongate/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Acheron Project 26#define MANUFACTURER Acheron Project
27#define PRODUCT Elongate 27#define PRODUCT Elongate
28#define DESCRIPTION Acheron Project Elongate
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/acheron/keebspcb/config.h b/keyboards/acheron/keebspcb/config.h
index af3abb09e..70ffc5261 100644
--- a/keyboards/acheron/keebspcb/config.h
+++ b/keyboards/acheron/keebspcb/config.h
@@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define DEVICE_VER 0x0001 // Revision pre-Alpha 23#define DEVICE_VER 0x0001 // Revision pre-Alpha
24#define MANUFACTURER AcheronProject 24#define MANUFACTURER AcheronProject
25#define PRODUCT KeebsPCB 25#define PRODUCT KeebsPCB
26#define DESCRIPTION AcheronProject KeebsPCB
27 26
28/* key matrix size */ 27/* key matrix size */
29#define MATRIX_ROWS 5 28#define MATRIX_ROWS 5
diff --git a/keyboards/acheron/shark/config.h b/keyboards/acheron/shark/config.h
index bb3df3381..537e00f57 100644
--- a/keyboards/acheron/shark/config.h
+++ b/keyboards/acheron/shark/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER AcheronProject 26#define MANUFACTURER AcheronProject
27#define PRODUCT SharkPCB 27#define PRODUCT SharkPCB
28#define DESCRIPTION Ortho 40 PCB
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/acr60/config.h b/keyboards/acr60/config.h
index 9b2b2a2f0..9d844b6d4 100644
--- a/keyboards/acr60/config.h
+++ b/keyboards/acr60/config.h
@@ -9,7 +9,6 @@
9#define DEVICE_VER 0x0001 9#define DEVICE_VER 0x0001
10#define MANUFACTURER MECHKEYS 10#define MANUFACTURER MECHKEYS
11#define PRODUCT ACR60 11#define PRODUCT ACR60
12#define DESCRIPTION 60% customizable keyboard
13 12
14/* key matrix size */ 13/* key matrix size */
15#define MATRIX_ROWS 5 14#define MATRIX_ROWS 5
diff --git a/keyboards/adelheid/config.h b/keyboards/adelheid/config.h
index 0da0062a7..88942861c 100644
--- a/keyboards/adelheid/config.h
+++ b/keyboards/adelheid/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0002 25#define DEVICE_VER 0x0002
26#define MANUFACTURER floookay 26#define MANUFACTURER floookay
27#define PRODUCT adelheid 27#define PRODUCT adelheid
28#define DESCRIPTION 75% alice-like keyboard based on the arisu
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 7 30#define MATRIX_ROWS 7
diff --git a/keyboards/adkb96/rev1/config.h b/keyboards/adkb96/rev1/config.h
index 42685123b..c5b768721 100644
--- a/keyboards/adkb96/rev1/config.h
+++ b/keyboards/adkb96/rev1/config.h
@@ -22,7 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
22#define DEVICE_VER 0x0001 22#define DEVICE_VER 0x0001
23#define MANUFACTURER Bit Trade One 23#define MANUFACTURER Bit Trade One
24#define PRODUCT ADKB96 24#define PRODUCT ADKB96
25#define DESCRIPTION
26 25
27/* key matrix size */ 26/* key matrix size */
28// Rows are doubled-up 27// Rows are doubled-up
diff --git a/keyboards/aeboards/aegis/config.h b/keyboards/aeboards/aegis/config.h
index 5836f02bc..7f59c5200 100644
--- a/keyboards/aeboards/aegis/config.h
+++ b/keyboards/aeboards/aegis/config.h
@@ -24,7 +24,6 @@
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER AEboards 25#define MANUFACTURER AEboards
26#define PRODUCT AEboards Aegis 26#define PRODUCT AEboards Aegis
27#define DESCRIPTION AEboards Aegis
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 12 29#define MATRIX_ROWS 12
diff --git a/keyboards/ai03/equinox/config.h b/keyboards/ai03/equinox/config.h
index 862b63b2b..1441dc16e 100644
--- a/keyboards/ai03/equinox/config.h
+++ b/keyboards/ai03/equinox/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER ai03 Design Studio 26#define MANUFACTURER ai03 Design Studio
27#define PRODUCT Equinox 27#define PRODUCT Equinox
28#define DESCRIPTION Compact PCB-mount keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/ai03/lunar/config.h b/keyboards/ai03/lunar/config.h
index 5e23ec55a..a48d31926 100644
--- a/keyboards/ai03/lunar/config.h
+++ b/keyboards/ai03/lunar/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Switchplate Peripherals 26#define MANUFACTURER Switchplate Peripherals
27#define PRODUCT Lunar 27#define PRODUCT Lunar
28#define DESCRIPTION 65% AEK keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/ai03/orbit/config.h b/keyboards/ai03/orbit/config.h
index be209f83d..2fc0a1685 100644
--- a/keyboards/ai03/orbit/config.h
+++ b/keyboards/ai03/orbit/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0003 25#define DEVICE_VER 0x0003
26#define MANUFACTURER ai03 Keyboard Designs 26#define MANUFACTURER ai03 Keyboard Designs
27#define PRODUCT Orbit 27#define PRODUCT Orbit
28#define DESCRIPTION Split ergonomic keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 10 // Double rows for split keyboards. Orbit has 5, so define 10 30#define MATRIX_ROWS 10 // Double rows for split keyboards. Orbit has 5, so define 10
diff --git a/keyboards/ai03/orbit_x/config.h b/keyboards/ai03/orbit_x/config.h
index c21e3e8f6..aafc53728 100644
--- a/keyboards/ai03/orbit_x/config.h
+++ b/keyboards/ai03/orbit_x/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER ai03 Design Studio 26#define MANUFACTURER ai03 Design Studio
27#define PRODUCT OrbitX 27#define PRODUCT OrbitX
28#define DESCRIPTION High-end compact ergonomic keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 8 // Double the rows for split 30#define MATRIX_ROWS 8 // Double the rows for split
diff --git a/keyboards/ai03/polaris/config.h b/keyboards/ai03/polaris/config.h
index bb3307d97..a4d7f945d 100644
--- a/keyboards/ai03/polaris/config.h
+++ b/keyboards/ai03/polaris/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER ai03 Design Studio 26#define MANUFACTURER ai03 Design Studio
27#define PRODUCT Polaris 27#define PRODUCT Polaris
28#define DESCRIPTION Basic 60% keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/ai03/quasar/config.h b/keyboards/ai03/quasar/config.h
index 077ca3a9f..67f98a56f 100644
--- a/keyboards/ai03/quasar/config.h
+++ b/keyboards/ai03/quasar/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Ryota Goto 26#define MANUFACTURER Ryota Goto
27#define PRODUCT Quasar 27#define PRODUCT Quasar
28#define DESCRIPTION SSK Controller
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 8 30#define MATRIX_ROWS 8
diff --git a/keyboards/akb/eb46/config.h b/keyboards/akb/eb46/config.h
index 965f769cc..644cd9730 100644
--- a/keyboards/akb/eb46/config.h
+++ b/keyboards/akb/eb46/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Elliot Powell 26#define MANUFACTURER Elliot Powell
27#define PRODUCT eb46 27#define PRODUCT eb46
28#define DESCRIPTION eb46 running qmk
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 4 29#define MATRIX_ROWS 4
31#define MATRIX_COLS 13 30#define MATRIX_COLS 13
diff --git a/keyboards/akb/raine/config.h b/keyboards/akb/raine/config.h
index f5a8b84b6..e0377514e 100644
--- a/keyboards/akb/raine/config.h
+++ b/keyboards/akb/raine/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER AKB 25#define MANUFACTURER AKB
26#define PRODUCT Raine 26#define PRODUCT Raine
27#define DESCRIPTION Raine
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 5 29#define MATRIX_ROWS 5
diff --git a/keyboards/al1/config.h b/keyboards/al1/config.h
index 6a59afae7..820cbf37f 100644
--- a/keyboards/al1/config.h
+++ b/keyboards/al1/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0104 26#define DEVICE_VER 0x0104
27#define MANUFACTURER Alsoran 27#define MANUFACTURER Alsoran
28#define PRODUCT AL1 28#define PRODUCT AL1
29#define DESCRIPTION A custom keyboard
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 7 31#define MATRIX_ROWS 7
diff --git a/keyboards/alf/dc60/config.h b/keyboards/alf/dc60/config.h
index 098891eee..15f4a86a4 100644
--- a/keyboards/alf/dc60/config.h
+++ b/keyboards/alf/dc60/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Alf 26#define MANUFACTURER Alf
27#define PRODUCT dc60 27#define PRODUCT dc60
28#define DESCRIPTION custom 60% keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/alf/x11/config.h b/keyboards/alf/x11/config.h
index cd9893509..7fe27b330 100644
--- a/keyboards/alf/x11/config.h
+++ b/keyboards/alf/x11/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Alf 26#define MANUFACTURER Alf
27#define PRODUCT x11 27#define PRODUCT x11
28#define DESCRIPTION A TKL custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 7 30#define MATRIX_ROWS 7
diff --git a/keyboards/alf/x2/config.h b/keyboards/alf/x2/config.h
index 205fa358f..6c9a139c3 100644
--- a/keyboards/alf/x2/config.h
+++ b/keyboards/alf/x2/config.h
@@ -9,7 +9,6 @@
9#define DEVICE_VER 0x0001 9#define DEVICE_VER 0x0001
10#define MANUFACTURER ALF 10#define MANUFACTURER ALF
11#define PRODUCT X2 11#define PRODUCT X2
12#define DESCRIPTION ALF X2 60
13 12
14/* key matrix size */ 13/* key matrix size */
15#define MATRIX_ROWS 5 14#define MATRIX_ROWS 5
diff --git a/keyboards/allison/config.h b/keyboards/allison/config.h
index 34e398980..6e41488fd 100644
--- a/keyboards/allison/config.h
+++ b/keyboards/allison/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER protoTypist 26#define MANUFACTURER protoTypist
27#define PRODUCT Allison 27#define PRODUCT Allison
28#define DESCRIPTION A custom luxurious 60 with F-row and Macro
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/allison_numpad/config.h b/keyboards/allison_numpad/config.h
index 624b96471..7824f64d9 100644
--- a/keyboards/allison_numpad/config.h
+++ b/keyboards/allison_numpad/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER protoTypist 26#define MANUFACTURER protoTypist
27#define PRODUCT Allison Numpad 27#define PRODUCT Allison Numpad
28#define DESCRIPTION A custom luxurious numpad to match Allison
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/alpha/config.h b/keyboards/alpha/config.h
index b7348bef1..8c7edd579 100755
--- a/keyboards/alpha/config.h
+++ b/keyboards/alpha/config.h
@@ -9,7 +9,6 @@
9#define DEVICE_VER 0x0001 9#define DEVICE_VER 0x0001
10#define MANUFACTURER PyroL 10#define MANUFACTURER PyroL
11#define PRODUCT alpha 11#define PRODUCT alpha
12#define DESCRIPTION 28-key keyboard by PyroL
13 12
14/* key matrix size */ 13/* key matrix size */
15#define MATRIX_ROWS 3 14#define MATRIX_ROWS 3
diff --git a/keyboards/alps64/config.h b/keyboards/alps64/config.h
index 15903818b..31837b3a9 100644
--- a/keyboards/alps64/config.h
+++ b/keyboards/alps64/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Hasu 26#define MANUFACTURER Hasu
27#define PRODUCT Alps64 27#define PRODUCT Alps64
28#define DESCRIPTION TMK keyboard firmware for Alps64
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 8 30#define MATRIX_ROWS 8
diff --git a/keyboards/alu84/config.h b/keyboards/alu84/config.h
index 130e2f1b4..9ebc1569e 100755
--- a/keyboards/alu84/config.h
+++ b/keyboards/alu84/config.h
@@ -25,7 +25,6 @@
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER MECHKEYS 26#define MANUFACTURER MECHKEYS
27#define PRODUCT ALU84 27#define PRODUCT ALU84
28#define DESCRIPTION 75% keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/amj40/config.h b/keyboards/amj40/config.h
index 5534dbf10..f445107ee 100755
--- a/keyboards/amj40/config.h
+++ b/keyboards/amj40/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0002 26#define DEVICE_VER 0x0002
27#define MANUFACTURER Han Chen 27#define MANUFACTURER Han Chen
28#define PRODUCT AMJ40 28#define PRODUCT AMJ40
29#define DESCRIPTION qmk port of AMJ40 v2 PCB
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 4 31#define MATRIX_ROWS 4
diff --git a/keyboards/amj60/config.h b/keyboards/amj60/config.h
index 79cfbe59e..008539368 100644
--- a/keyboards/amj60/config.h
+++ b/keyboards/amj60/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER Han Chen 27#define MANUFACTURER Han Chen
28#define PRODUCT AMJ60 28#define PRODUCT AMJ60
29#define DESCRIPTION qmk port of AMJ60 PCB
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 5 31#define MATRIX_ROWS 5
diff --git a/keyboards/amj96/config.h b/keyboards/amj96/config.h
index 8b56aaf7f..6ddba90c7 100644
--- a/keyboards/amj96/config.h
+++ b/keyboards/amj96/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0002 26#define DEVICE_VER 0x0002
27#define MANUFACTURER Han Chen 27#define MANUFACTURER Han Chen
28#define PRODUCT AMJ96 28#define PRODUCT AMJ96
29#define DESCRIPTION 96 key custom keyboard
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 7 31#define MATRIX_ROWS 7
diff --git a/keyboards/amjkeyboard/amj66/config.h b/keyboards/amjkeyboard/amj66/config.h
index ac10f7e35..1f8a930a6 100644
--- a/keyboards/amjkeyboard/amj66/config.h
+++ b/keyboards/amjkeyboard/amj66/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER AMJKeyboard 26#define MANUFACTURER AMJKeyboard
27#define PRODUCT AMJ66 27#define PRODUCT AMJ66
28#define DESCRIPTION QMK keyboard firmware for AMJ66
29 28
30/* Key matrix size */ 29/* Key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/amjpad/config.h b/keyboards/amjpad/config.h
index dd579be5f..6bac897e7 100644
--- a/keyboards/amjpad/config.h
+++ b/keyboards/amjpad/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0003 26#define DEVICE_VER 0x0003
27#define MANUFACTURER AMJ 27#define MANUFACTURER AMJ
28#define PRODUCT PAD 28#define PRODUCT PAD
29#define DESCRIPTION QMK keyboard firmware for AMJ PAD
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 6 31#define MATRIX_ROWS 6
diff --git a/keyboards/anavi/macropad8/config.h b/keyboards/anavi/macropad8/config.h
index e517d909d..fd9d6e357 100644
--- a/keyboards/anavi/macropad8/config.h
+++ b/keyboards/anavi/macropad8/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER ANAVI 26#define MANUFACTURER ANAVI
27#define PRODUCT Macro Pad 8 27#define PRODUCT Macro Pad 8
28#define DESCRIPTION 8-key mechanical keyboard/keypad/macropad with backlit, mini OLED display and RGB LED strip
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 2 30#define MATRIX_ROWS 2
diff --git a/keyboards/angel17/alpha/config.h b/keyboards/angel17/alpha/config.h
index abc42d0d2..ee759bbf4 100644
--- a/keyboards/angel17/alpha/config.h
+++ b/keyboards/angel17/alpha/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER kakunpc 26#define MANUFACTURER kakunpc
27#define PRODUCT angel17 27#define PRODUCT angel17
28#define DESCRIPTION A custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/angel17/rev1/config.h b/keyboards/angel17/rev1/config.h
index 711790ab0..9c1132a2e 100644
--- a/keyboards/angel17/rev1/config.h
+++ b/keyboards/angel17/rev1/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER kakunpc 26#define MANUFACTURER kakunpc
27#define PRODUCT angel17 27#define PRODUCT angel17
28#define DESCRIPTION A custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/angel64/alpha/config.h b/keyboards/angel64/alpha/config.h
index 07dae8952..0216725b7 100644
--- a/keyboards/angel64/alpha/config.h
+++ b/keyboards/angel64/alpha/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER kakunpc 26#define MANUFACTURER kakunpc
27#define PRODUCT angel64 27#define PRODUCT angel64
28#define DESCRIPTION A custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 12 30#define MATRIX_ROWS 12
diff --git a/keyboards/angel64/rev1/config.h b/keyboards/angel64/rev1/config.h
index 07dae8952..0216725b7 100644
--- a/keyboards/angel64/rev1/config.h
+++ b/keyboards/angel64/rev1/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER kakunpc 26#define MANUFACTURER kakunpc
27#define PRODUCT angel64 27#define PRODUCT angel64
28#define DESCRIPTION A custom keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 12 30#define MATRIX_ROWS 12
diff --git a/keyboards/aos/tkl/config.h b/keyboards/aos/tkl/config.h
index 5a4b93f64..de4084550 100644
--- a/keyboards/aos/tkl/config.h
+++ b/keyboards/aos/tkl/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Ace of Spades 26#define MANUFACTURER Ace of Spades
27#define PRODUCT Ace of Spades TKL 27#define PRODUCT Ace of Spades TKL
28#define DESCRIPTION Ace of Spades TKL
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 6 30#define MATRIX_ROWS 6
diff --git a/keyboards/arabica37/rev1/config.h b/keyboards/arabica37/rev1/config.h
index 5db7e32fc..7951bc49e 100644
--- a/keyboards/arabica37/rev1/config.h
+++ b/keyboards/arabica37/rev1/config.h
@@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER CalciumNitride 25#define MANUFACTURER CalciumNitride
26#define PRODUCT Arabica3/7 26#define PRODUCT Arabica3/7
27#define DESCRIPTION A split keyboard with 3x6 column staggered keys, 1 pinkie key and 3 thumb keys
28 27
29#define USE_SERIAL 28#define USE_SERIAL
30#define SOFT_SERIAL_PIN D2 29#define SOFT_SERIAL_PIN D2
diff --git a/keyboards/arisu/config.h b/keyboards/arisu/config.h
index d23cf9102..73ccc4537 100644
--- a/keyboards/arisu/config.h
+++ b/keyboards/arisu/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Fate 26#define MANUFACTURER Fate
27#define PRODUCT arisu 27#define PRODUCT arisu
28#define DESCRIPTION alice counterpart keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/ash1800/config.h b/keyboards/ash1800/config.h
index b46a966c8..376247d85 100644
--- a/keyboards/ash1800/config.h
+++ b/keyboards/ash1800/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Hasyim Ashari 26#define MANUFACTURER Hasyim Ashari
27#define PRODUCT ASH-1800 27#define PRODUCT ASH-1800
28#define DESCRIPTION An attempt to make a cherry g80/g81 clone
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 12 30#define MATRIX_ROWS 12
diff --git a/keyboards/ashpil/modelm_usbc/config.h b/keyboards/ashpil/modelm_usbc/config.h
index df4ed3227..4738124ee 100644
--- a/keyboards/ashpil/modelm_usbc/config.h
+++ b/keyboards/ashpil/modelm_usbc/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER ashpil 26#define MANUFACTURER ashpil
27#define PRODUCT IBM Model M 101/102 27#define PRODUCT IBM Model M 101/102
28#define DESCRIPTION Controlled by AVR chip
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 8 30#define MATRIX_ROWS 8
diff --git a/keyboards/at101_bh/config.h b/keyboards/at101_bh/config.h
index 6928118b7..8c81fab91 100644
--- a/keyboards/at101_bh/config.h
+++ b/keyboards/at101_bh/config.h
@@ -8,7 +8,6 @@
8#define DEVICE_VER 0x0001 8#define DEVICE_VER 0x0001
9#define MANUFACTURER blindassassin111 9#define MANUFACTURER blindassassin111
10#define PRODUCT AT101_BH PCB 10#define PRODUCT AT101_BH PCB
11#define DESCRIPTION Replacement AT101 PCB
12 11
13/* key matrix size */ 12/* key matrix size */
14#define MATRIX_ROWS 12 13#define MATRIX_ROWS 12
diff --git a/keyboards/at_at/660m/config.h b/keyboards/at_at/660m/config.h
index c876e0d1a..41443f8ae 100644
--- a/keyboards/at_at/660m/config.h
+++ b/keyboards/at_at/660m/config.h
@@ -29,7 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
29#define DEVICE_VER 0x0001 29#define DEVICE_VER 0x0001
30#define MANUFACTURER AT-AT 30#define MANUFACTURER AT-AT
31#define PRODUCT 660M 31#define PRODUCT 660M
32#define DESCRIPTION 660M Keyboard
33 32
34/* key matrix size */ 33/* key matrix size */
35#define MATRIX_ROWS 5 34#define MATRIX_ROWS 5
diff --git a/keyboards/atomic/config.h b/keyboards/atomic/config.h
index 045f86727..06019dd54 100644
--- a/keyboards/atomic/config.h
+++ b/keyboards/atomic/config.h
@@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER Ortholinear Keyboards 27#define MANUFACTURER Ortholinear Keyboards
28#define PRODUCT The Atomic Keyboard 28#define PRODUCT The Atomic Keyboard
29#define DESCRIPTION A compact ortholinear keyboard
30 29
31/* key matrix size */ 30/* key matrix size */
32#define MATRIX_ROWS 5 31#define MATRIX_ROWS 5
diff --git a/keyboards/atreus/config.h b/keyboards/atreus/config.h
index d18201443..07f4d7f15 100644
--- a/keyboards/atreus/config.h
+++ b/keyboards/atreus/config.h
@@ -25,7 +25,6 @@
25#define DEVICE_VER 0x0008 25#define DEVICE_VER 0x0008
26#define MANUFACTURER Technomancy 26#define MANUFACTURER Technomancy
27#define PRODUCT Atreus 27#define PRODUCT Atreus
28#define DESCRIPTION QMK keyboard firmware for Atreus
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 4 30#define MATRIX_ROWS 4
diff --git a/keyboards/atreus62/config.h b/keyboards/atreus62/config.h
index a7fe5f354..2d4ab99c6 100644
--- a/keyboards/atreus62/config.h
+++ b/keyboards/atreus62/config.h
@@ -27,7 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27#define DEVICE_VER 0x0001 27#define DEVICE_VER 0x0001
28#define MANUFACTURER Profet 28#define MANUFACTURER Profet
29#define PRODUCT Atreus62 29#define PRODUCT Atreus62
30#define DESCRIPTION q.m.k. keyboard firmware for Atreus62
31 30
32/* key matrix size */ 31/* key matrix size */
33// Rows are doubled-up 32// Rows are doubled-up
diff --git a/keyboards/atreus62/keymaps/atreus52/config.h b/keyboards/atreus62/keymaps/atreus52/config.h
index ba0eaf0db..91b626b56 100644
--- a/keyboards/atreus62/keymaps/atreus52/config.h
+++ b/keyboards/atreus62/keymaps/atreus52/config.h
@@ -2,7 +2,6 @@
2 2
3#undef MANUFACTURER 3#undef MANUFACTURER
4#undef PRODUCT 4#undef PRODUCT
5#undef DESCRIPTION
6#undef MATRIX_ROW_PINS 5#undef MATRIX_ROW_PINS
7#undef MATRIX_COL_PINS 6#undef MATRIX_COL_PINS
8#undef DIODE_DIRECTION 7#undef DIODE_DIRECTION
@@ -10,7 +9,6 @@
10/* USB Device descriptor parameter */ 9/* USB Device descriptor parameter */
11#define MANUFACTURER Mesh Industries 10#define MANUFACTURER Mesh Industries
12#define PRODUCT Atreus52 Treeboard 11#define PRODUCT Atreus52 Treeboard
13#define DESCRIPTION q.m.k. keyboard firmware for Atreus52
14 12
15#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } 13#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 }
16#define MATRIX_COL_PINS { B2, B1, F7, F6, F5, F4, B6, D3, D2, D1, D0, D4, B3 } 14#define MATRIX_COL_PINS { B2, B1, F7, F6, F5, F4, B6, D3, D2, D1, D0, D4, B3 }
diff --git a/keyboards/atxkb/1894/config.h b/keyboards/atxkb/1894/config.h
index 27acb8afb..ce2b87ed6 100644
--- a/keyboards/atxkb/1894/config.h
+++ b/keyboards/atxkb/1894/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER atxkb 26#define MANUFACTURER atxkb
27#define PRODUCT 1894 27#define PRODUCT 1894
28#define DESCRIPTION atxkb 1894
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/keyboards/aves65/config.h b/keyboards/aves65/config.h
index 033100b54..5ae386512 100644
--- a/keyboards/aves65/config.h
+++ b/keyboards/aves65/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER I/O Keyboards 26#define MANUFACTURER I/O Keyboards
27#define PRODUCT Aves65 27#define PRODUCT Aves65
28#define DESCRIPTION A 65% keyboard with underglow.
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
diff --git a/tmk_core/common/report.h b/tmk_core/common/report.h
index 610addf43..5d7c5b3b2 100644
--- a/tmk_core/common/report.h
+++ b/tmk_core/common/report.h
@@ -123,12 +123,6 @@ enum desktop_usages {
123 123
124#define KEYBOARD_REPORT_KEYS 6 124#define KEYBOARD_REPORT_KEYS 6
125 125
126/* VUSB hardcodes keyboard and mouse+extrakey only */
127#if defined(PROTOCOL_VUSB)
128# undef KEYBOARD_SHARED_EP
129# undef MOUSE_SHARED_EP
130#endif
131
132#ifdef __cplusplus 126#ifdef __cplusplus
133extern "C" { 127extern "C" {
134#endif 128#endif
diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c
index 9ce75334a..a422903cc 100644
--- a/tmk_core/protocol/vusb/vusb.c
+++ b/tmk_core/protocol/vusb/vusb.c
@@ -46,19 +46,28 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
46 * Interface indexes 46 * Interface indexes
47 */ 47 */
48enum usb_interfaces { 48enum usb_interfaces {
49#ifndef KEYBOARD_SHARED_EP
49 KEYBOARD_INTERFACE = NEXT_INTERFACE, 50 KEYBOARD_INTERFACE = NEXT_INTERFACE,
51#else
52 SHARED_INTERFACE = NEXT_INTERFACE,
53# define KEYBOARD_INTERFACE SHARED_INTERFACE
54#endif
55
50// It is important that the Raw HID interface is at a constant 56// It is important that the Raw HID interface is at a constant
51// interface number, to support Linux/OSX platforms and chrome.hid 57// interface number, to support Linux/OSX platforms and chrome.hid
52// If Raw HID is enabled, let it be always 1. 58// If Raw HID is enabled, let it be always 1.
53#ifdef RAW_ENABLE 59#ifdef RAW_ENABLE
54 RAW_INTERFACE = NEXT_INTERFACE, 60 RAW_INTERFACE = NEXT_INTERFACE,
55#endif 61#endif
56#if (defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)) 62
57 MOUSE_EXTRA_INTERFACE = NEXT_INTERFACE, 63#if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP)
64 SHARED_INTERFACE = NEXT_INTERFACE,
58#endif 65#endif
66
59#ifdef CONSOLE_ENABLE 67#ifdef CONSOLE_ENABLE
60 CONSOLE_INTERFACE = NEXT_INTERFACE, 68 CONSOLE_INTERFACE = NEXT_INTERFACE,
61#endif 69#endif
70
62 TOTAL_INTERFACES = NEXT_INTERFACE 71 TOTAL_INTERFACES = NEXT_INTERFACE
63}; 72};
64 73
@@ -90,7 +99,16 @@ void vusb_transfer_keyboard(void) {
90 for (int i = 0; i < VUSB_TRANSFER_KEYBOARD_MAX_TRIES; i++) { 99 for (int i = 0; i < VUSB_TRANSFER_KEYBOARD_MAX_TRIES; i++) {
91 if (usbInterruptIsReady()) { 100 if (usbInterruptIsReady()) {
92 if (kbuf_head != kbuf_tail) { 101 if (kbuf_head != kbuf_tail) {
102#ifndef KEYBOARD_SHARED_EP
93 usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t)); 103 usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t));
104#else
105 // Ugly hack! :(
106 usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t) - 1);
107 while (!usbInterruptIsReady()) {
108 usbPoll();
109 }
110 usbSetInterrupt((void *)(&(kbuf[kbuf_tail].keys[5])), 1);
111#endif
94 kbuf_tail = (kbuf_tail + 1) % KBUF_SIZE; 112 kbuf_tail = (kbuf_tail + 1) % KBUF_SIZE;
95 if (debug_keyboard) { 113 if (debug_keyboard) {
96 dprintf("V-USB: kbuf[%d->%d](%02X)\n", kbuf_tail, kbuf_head, (kbuf_head < kbuf_tail) ? (KBUF_SIZE - kbuf_tail + kbuf_head) : (kbuf_head - kbuf_tail)); 114 dprintf("V-USB: kbuf[%d->%d](%02X)\n", kbuf_tail, kbuf_head, (kbuf_head < kbuf_tail) ? (KBUF_SIZE - kbuf_tail + kbuf_head) : (kbuf_head - kbuf_tail));
@@ -230,16 +248,18 @@ static void send_keyboard(report_keyboard_t *report) {
230 keyboard_report_sent = *report; 248 keyboard_report_sent = *report;
231} 249}
232 250
233typedef struct { 251#ifndef KEYBOARD_SHARED_EP
234 uint8_t report_id; 252# define usbInterruptIsReadyShared usbInterruptIsReady3
235 report_mouse_t report; 253# define usbSetInterruptShared usbSetInterrupt3
236} __attribute__((packed)) vusb_mouse_report_t; 254#else
255# define usbInterruptIsReadyShared usbInterruptIsReady
256# define usbSetInterruptShared usbSetInterrupt
257#endif
237 258
238static void send_mouse(report_mouse_t *report) { 259static void send_mouse(report_mouse_t *report) {
239#ifdef MOUSE_ENABLE 260#ifdef MOUSE_ENABLE
240 vusb_mouse_report_t r = {.report_id = REPORT_ID_MOUSE, .report = *report}; 261 if (usbInterruptIsReadyShared()) {
241 if (usbInterruptIsReady3()) { 262 usbSetInterruptShared((void *)report, sizeof(report_mouse_t));
242 usbSetInterrupt3((void *)&r, sizeof(vusb_mouse_report_t));
243 } 263 }
244#endif 264#endif
245} 265}
@@ -253,8 +273,8 @@ static void send_extra(uint8_t report_id, uint16_t data) {
253 last_data = data; 273 last_data = data;
254 274
255 report_extra_t report = {.report_id = report_id, .usage = data}; 275 report_extra_t report = {.report_id = report_id, .usage = data};
256 if (usbInterruptIsReady3()) { 276 if (usbInterruptIsReadyShared()) {
257 usbSetInterrupt3((void *)&report, sizeof(report)); 277 usbSetInterruptShared((void *)&report, sizeof(report_extra_t));
258 } 278 }
259} 279}
260#endif 280#endif
@@ -360,10 +380,18 @@ void usbFunctionWriteOut(uchar *data, uchar len) {
360 * Descriptors * 380 * Descriptors *
361 *------------------------------------------------------------------*/ 381 *------------------------------------------------------------------*/
362 382
383#ifdef KEYBOARD_SHARED_EP
384const PROGMEM uchar shared_hid_report[] = {
385# define SHARED_REPORT_STARTED
386#else
363const PROGMEM uchar keyboard_hid_report[] = { 387const PROGMEM uchar keyboard_hid_report[] = {
388#endif
364 0x05, 0x01, // Usage Page (Generic Desktop) 389 0x05, 0x01, // Usage Page (Generic Desktop)
365 0x09, 0x06, // Usage (Keyboard) 390 0x09, 0x06, // Usage (Keyboard)
366 0xA1, 0x01, // Collection (Application) 391 0xA1, 0x01, // Collection (Application)
392#ifdef KEYBOARD_SHARED_EP
393 0x85, REPORT_ID_KEYBOARD, // Report ID
394#endif
367 // Modifiers (8 bits) 395 // Modifiers (8 bits)
368 0x05, 0x07, // Usage Page (Keyboard/Keypad) 396 0x05, 0x07, // Usage Page (Keyboard/Keypad)
369 0x19, 0xE0, // Usage Minimum (Keyboard Left Control) 397 0x19, 0xE0, // Usage Minimum (Keyboard Left Control)
@@ -398,12 +426,17 @@ const PROGMEM uchar keyboard_hid_report[] = {
398 0x95, 0x01, // Report Count (1) 426 0x95, 0x01, // Report Count (1)
399 0x75, 0x03, // Report Size (3) 427 0x75, 0x03, // Report Size (3)
400 0x91, 0x03, // Output (Constant) 428 0x91, 0x03, // Output (Constant)
401 0xC0 // End Collection 429 0xC0, // End Collection
430#ifndef KEYBOARD_SHARED_EP
402}; 431};
432#endif
403 433
404#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) 434#if defined(SHARED_EP_ENABLE) && !defined(SHARED_REPORT_STARTED)
405const PROGMEM uchar mouse_extra_hid_report[] = { 435const PROGMEM uchar shared_hid_report[] = {
406# ifdef MOUSE_ENABLE 436# define SHARED_REPORT_STARTED
437#endif
438
439#ifdef MOUSE_ENABLE
407 // Mouse report descriptor 440 // Mouse report descriptor
408 0x05, 0x01, // Usage Page (Generic Desktop) 441 0x05, 0x01, // Usage Page (Generic Desktop)
409 0x09, 0x02, // Usage (Mouse) 442 0x09, 0x02, // Usage (Mouse)
@@ -452,9 +485,9 @@ const PROGMEM uchar mouse_extra_hid_report[] = {
452 0x81, 0x06, // Input (Data, Variable, Relative) 485 0x81, 0x06, // Input (Data, Variable, Relative)
453 0xC0, // End Collection 486 0xC0, // End Collection
454 0xC0, // End Collection 487 0xC0, // End Collection
455# endif 488#endif
456 489
457# ifdef EXTRAKEY_ENABLE 490#ifdef EXTRAKEY_ENABLE
458 // Extrakeys report descriptor 491 // Extrakeys report descriptor
459 0x05, 0x01, // Usage Page (Generic Desktop) 492 0x05, 0x01, // Usage Page (Generic Desktop)
460 0x09, 0x80, // Usage (System Control) 493 0x09, 0x80, // Usage (System Control)
@@ -481,7 +514,8 @@ const PROGMEM uchar mouse_extra_hid_report[] = {
481 0x75, 0x10, // Report Size (16) 514 0x75, 0x10, // Report Size (16)
482 0x81, 0x00, // Input (Data, Array, Absolute) 515 0x81, 0x00, // Input (Data, Array, Absolute)
483 0xC0 // End Collection 516 0xC0 // End Collection
484# endif 517#endif
518#ifdef SHARED_EP_ENABLE
485}; 519};
486#endif 520#endif
487 521
@@ -618,6 +652,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
618 .bMaxPower = USB_MAX_POWER_CONSUMPTION / 2 652 .bMaxPower = USB_MAX_POWER_CONSUMPTION / 2
619 }, 653 },
620 654
655# ifndef KEYBOARD_SHARED_EP
621 /* 656 /*
622 * Keyboard 657 * Keyboard
623 */ 658 */
@@ -655,6 +690,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
655 .wMaxPacketSize = 8, 690 .wMaxPacketSize = 8,
656 .bInterval = USB_POLLING_INTERVAL_MS 691 .bInterval = USB_POLLING_INTERVAL_MS
657 }, 692 },
693# endif
658 694
659# if defined(RAW_ENABLE) 695# if defined(RAW_ENABLE)
660 /* 696 /*
@@ -705,24 +741,30 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
705 .bInterval = USB_POLLING_INTERVAL_MS 741 .bInterval = USB_POLLING_INTERVAL_MS
706 }, 742 },
707# endif 743# endif
708# if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) 744
745# ifdef SHARED_EP_ENABLE
709 /* 746 /*
710 * Mouse/Extrakeys 747 * Shared
711 */ 748 */
712 .mouseExtraInterface = { 749 .sharedInterface = {
713 .header = { 750 .header = {
714 .bLength = sizeof(usbInterfaceDescriptor_t), 751 .bLength = sizeof(usbInterfaceDescriptor_t),
715 .bDescriptorType = USBDESCR_INTERFACE 752 .bDescriptorType = USBDESCR_INTERFACE
716 }, 753 },
717 .bInterfaceNumber = MOUSE_EXTRA_INTERFACE, 754 .bInterfaceNumber = SHARED_INTERFACE,
718 .bAlternateSetting = 0x00, 755 .bAlternateSetting = 0x00,
719 .bNumEndpoints = 1, 756 .bNumEndpoints = 1,
720 .bInterfaceClass = 0x03, 757 .bInterfaceClass = 0x03,
758# ifdef KEYBOARD_SHARED_EP
759 .bInterfaceSubClass = 0x01,
760 .bInterfaceProtocol = 0x01,
761# else
721 .bInterfaceSubClass = 0x00, 762 .bInterfaceSubClass = 0x00,
722 .bInterfaceProtocol = 0x00, 763 .bInterfaceProtocol = 0x00,
764# endif
723 .iInterface = 0x00 765 .iInterface = 0x00
724 }, 766 },
725 .mouseExtraHID = { 767 .sharedHID = {
726 .header = { 768 .header = {
727 .bLength = sizeof(usbHIDDescriptor_t), 769 .bLength = sizeof(usbHIDDescriptor_t),
728 .bDescriptorType = USBDESCR_HID 770 .bDescriptorType = USBDESCR_HID
@@ -731,19 +773,24 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
731 .bCountryCode = 0x00, 773 .bCountryCode = 0x00,
732 .bNumDescriptors = 1, 774 .bNumDescriptors = 1,
733 .bDescriptorType = USBDESCR_HID_REPORT, 775 .bDescriptorType = USBDESCR_HID_REPORT,
734 .wDescriptorLength = sizeof(mouse_extra_hid_report) 776 .wDescriptorLength = sizeof(shared_hid_report)
735 }, 777 },
736 .mouseExtraINEndpoint = { 778 .sharedINEndpoint = {
737 .header = { 779 .header = {
738 .bLength = sizeof(usbEndpointDescriptor_t), 780 .bLength = sizeof(usbEndpointDescriptor_t),
739 .bDescriptorType = USBDESCR_ENDPOINT 781 .bDescriptorType = USBDESCR_ENDPOINT
740 }, 782 },
783# ifdef KEYBOARD_SHARED_EP
784 .bEndpointAddress = (USBRQ_DIR_DEVICE_TO_HOST | 1),
785# else
741 .bEndpointAddress = (USBRQ_DIR_DEVICE_TO_HOST | USB_CFG_EP3_NUMBER), 786 .bEndpointAddress = (USBRQ_DIR_DEVICE_TO_HOST | USB_CFG_EP3_NUMBER),
787# endif
742 .bmAttributes = 0x03, 788 .bmAttributes = 0x03,
743 .wMaxPacketSize = 8, 789 .wMaxPacketSize = 8,
744 .bInterval = USB_POLLING_INTERVAL_MS 790 .bInterval = USB_POLLING_INTERVAL_MS
745 }, 791 },
746# endif 792# endif
793
747# if defined(CONSOLE_ENABLE) 794# if defined(CONSOLE_ENABLE)
748 /* 795 /*
749 * Console 796 * Console
@@ -791,7 +838,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
791 .bmAttributes = 0x03, 838 .bmAttributes = 0x03,
792 .wMaxPacketSize = CONSOLE_EPSIZE, 839 .wMaxPacketSize = CONSOLE_EPSIZE,
793 .bInterval = 0x01 840 .bInterval = 0x01
794 }, 841 }
795# endif 842# endif
796}; 843};
797 844
@@ -833,22 +880,27 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) {
833 break; 880 break;
834 case USBDESCR_HID: 881 case USBDESCR_HID:
835 switch (rq->wValue.bytes[0]) { 882 switch (rq->wValue.bytes[0]) {
883#ifndef KEYBOARD_SHARED_EP
836 case KEYBOARD_INTERFACE: 884 case KEYBOARD_INTERFACE:
837 usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.keyboardHID; 885 usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.keyboardHID;
838 len = sizeof(usbHIDDescriptor_t); 886 len = sizeof(usbHIDDescriptor_t);
839 break; 887 break;
888#endif
889
840#if defined(RAW_ENABLE) 890#if defined(RAW_ENABLE)
841 case RAW_INTERFACE: 891 case RAW_INTERFACE:
842 usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.rawHID; 892 usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.rawHID;
843 len = sizeof(usbHIDDescriptor_t); 893 len = sizeof(usbHIDDescriptor_t);
844 break; 894 break;
845#endif 895#endif
846#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) 896
847 case MOUSE_EXTRA_INTERFACE: 897#ifdef SHARED_EP_ENABLE
848 usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.mouseExtraHID; 898 case SHARED_INTERFACE:
899 usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.sharedHID;
849 len = sizeof(usbHIDDescriptor_t); 900 len = sizeof(usbHIDDescriptor_t);
850 break; 901 break;
851#endif 902#endif
903
852#if defined(CONSOLE_ENABLE) 904#if defined(CONSOLE_ENABLE)
853 case CONSOLE_INTERFACE: 905 case CONSOLE_INTERFACE:
854 usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.consoleHID; 906 usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.consoleHID;
@@ -860,22 +912,27 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) {
860 case USBDESCR_HID_REPORT: 912 case USBDESCR_HID_REPORT:
861 /* interface index */ 913 /* interface index */
862 switch (rq->wIndex.word) { 914 switch (rq->wIndex.word) {
915#ifndef KEYBOARD_SHARED_EP
863 case KEYBOARD_INTERFACE: 916 case KEYBOARD_INTERFACE:
864 usbMsgPtr = (usbMsgPtr_t)keyboard_hid_report; 917 usbMsgPtr = (usbMsgPtr_t)keyboard_hid_report;
865 len = sizeof(keyboard_hid_report); 918 len = sizeof(keyboard_hid_report);
866 break; 919 break;
920#endif
921
867#if defined(RAW_ENABLE) 922#if defined(RAW_ENABLE)
868 case RAW_INTERFACE: 923 case RAW_INTERFACE:
869 usbMsgPtr = (usbMsgPtr_t)raw_hid_report; 924 usbMsgPtr = (usbMsgPtr_t)raw_hid_report;
870 len = sizeof(raw_hid_report); 925 len = sizeof(raw_hid_report);
871 break; 926 break;
872#endif 927#endif
873#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) 928
874 case MOUSE_EXTRA_INTERFACE: 929#ifdef SHARED_EP_ENABLE
875 usbMsgPtr = (usbMsgPtr_t)mouse_extra_hid_report; 930 case SHARED_INTERFACE:
876 len = sizeof(mouse_extra_hid_report); 931 usbMsgPtr = (usbMsgPtr_t)shared_hid_report;
932 len = sizeof(shared_hid_report);
877 break; 933 break;
878#endif 934#endif
935
879#if defined(CONSOLE_ENABLE) 936#if defined(CONSOLE_ENABLE)
880 case CONSOLE_INTERFACE: 937 case CONSOLE_INTERFACE:
881 usbMsgPtr = (usbMsgPtr_t)console_hid_report; 938 usbMsgPtr = (usbMsgPtr_t)console_hid_report;
diff --git a/tmk_core/protocol/vusb/vusb.h b/tmk_core/protocol/vusb/vusb.h
index 828960fc3..b4c73aaba 100644
--- a/tmk_core/protocol/vusb/vusb.h
+++ b/tmk_core/protocol/vusb/vusb.h
@@ -85,9 +85,16 @@ typedef struct usbHIDDescriptor {
85 85
86typedef struct usbConfigurationDescriptor { 86typedef struct usbConfigurationDescriptor {
87 usbConfigurationDescriptorHeader_t header; 87 usbConfigurationDescriptorHeader_t header;
88 usbInterfaceDescriptor_t keyboardInterface; 88
89 usbHIDDescriptor_t keyboardHID; 89#ifndef KEYBOARD_SHARED_EP
90 usbEndpointDescriptor_t keyboardINEndpoint; 90 usbInterfaceDescriptor_t keyboardInterface;
91 usbHIDDescriptor_t keyboardHID;
92 usbEndpointDescriptor_t keyboardINEndpoint;
93#else
94 usbInterfaceDescriptor_t sharedInterface;
95 usbHIDDescriptor_t sharedHID;
96 usbEndpointDescriptor_t sharedINEndpoint;
97#endif
91 98
92#if defined(RAW_ENABLE) 99#if defined(RAW_ENABLE)
93 usbInterfaceDescriptor_t rawInterface; 100 usbInterfaceDescriptor_t rawInterface;
@@ -96,10 +103,10 @@ typedef struct usbConfigurationDescriptor {
96 usbEndpointDescriptor_t rawOUTEndpoint; 103 usbEndpointDescriptor_t rawOUTEndpoint;
97#endif 104#endif
98 105
99#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) 106#if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP)
100 usbInterfaceDescriptor_t mouseExtraInterface; 107 usbInterfaceDescriptor_t sharedInterface;
101 usbHIDDescriptor_t mouseExtraHID; 108 usbHIDDescriptor_t sharedHID;
102 usbEndpointDescriptor_t mouseExtraINEndpoint; 109 usbEndpointDescriptor_t sharedINEndpoint;
103#endif 110#endif
104 111
105#if defined(CONSOLE_ENABLE) 112#if defined(CONSOLE_ENABLE)