1
0
Fork 0
forked from forks/qmk_firmware

Merge remote-tracking branch 'origin/master' into develop

This commit is contained in:
QMK Bot 2021-01-11 08:47:07 +00:00
commit 3bc436988d
87 changed files with 104 additions and 136 deletions

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards #define MANUFACTURER 1upkeyboards
#define PRODUCT 1up60hse #define PRODUCT 1up60hse
#define DESCRIPTION A custom 60% keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards #define MANUFACTURER 1upkeyboards
#define PRODUCT 1up60hte #define PRODUCT 1up60hte
#define DESCRIPTION A custom 60% keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -8,7 +8,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards #define MANUFACTURER 1upkeyboards
#define PRODUCT 1UP RGB Underglow PCB #define PRODUCT 1UP RGB Underglow PCB
#define DESCRIPTION 60% keyboard with RGB underglow
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER 1upkeyboards #define MANUFACTURER 1upkeyboards
#define PRODUCT super16 #define PRODUCT super16
#define DESCRIPTION A 4x4 custom macropad
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -6,7 +6,6 @@
#define VENDOR_ID 0x6F75 // OU #define VENDOR_ID 0x6F75 // OU
#define MANUFACTURER 1up Keyboards #define MANUFACTURER 1up Keyboards
#define PRODUCT Sweet16 #define PRODUCT Sweet16
#define DESCRIPTION 4x4 grid
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -8,7 +8,6 @@
#define DEVICE_VER 0x0002 #define DEVICE_VER 0x0002
#define MANUFACTURER WoodKeys.click #define MANUFACTURER WoodKeys.click
#define PRODUCT 2Key2Crawl #define PRODUCT 2Key2Crawl
#define DESCRIPTION ATX Keycrawl 2018
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 2 #define MATRIX_ROWS 2

View file

@ -8,7 +8,6 @@
#define DEVICE_VER 0x0000 #define DEVICE_VER 0x0000
#define MANUFACTURER 8o7wer #define MANUFACTURER 8o7wer
#define PRODUCT 30wer #define PRODUCT 30wer
#define DESCRIPTION Gherkin style construction 30% staggered pcb kit
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 3 #define MATRIX_ROWS 3

View file

@ -24,7 +24,6 @@
#define DEVICE_VER 0x0F25 #define DEVICE_VER 0x0F25
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT The 5x5 Keyboard #define PRODUCT The 5x5 Keyboard
#define DESCRIPTION A split 50 key keyboard
#define USE_SERIAL #define USE_SERIAL
/* serial.c configuration for split keyboard */ /* serial.c configuration for split keyboard */

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER 40percentclub #define MANUFACTURER 40percentclub
#define PRODUCT 4pack #define PRODUCT 4pack
#define DESCRIPTION A 1x4 custom macropad
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 1 #define MATRIX_ROWS 1

View file

@ -10,7 +10,6 @@
#define DEVICE_VER 0x4444 #define DEVICE_VER 0x4444
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT The 4x4 Keyboard #define PRODUCT The 4x4 Keyboard
#define DESCRIPTION A modular compact keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -10,7 +10,6 @@
#define DEVICE_VER 0x05B5 #define DEVICE_VER 0x05B5
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT The 5x5 Keyboard #define PRODUCT The 5x5 Keyboard
#define DESCRIPTION A 25 or 50 or 75 key keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -24,7 +24,6 @@
#define DEVICE_VER 0x0F61 #define DEVICE_VER 0x0F61
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT The 6lit Macropad #define PRODUCT The 6lit Macropad
#define DESCRIPTION A split 12 key Macropad
#define USE_SERIAL #define USE_SERIAL

View file

@ -24,7 +24,6 @@
#define DEVICE_VER 0x0F00 #define DEVICE_VER 0x0F00
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT The foobar Keyboard #define PRODUCT The foobar Keyboard
#define DESCRIPTION A split 30 key keyboard
#define USE_SERIAL #define USE_SERIAL

View file

@ -8,7 +8,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER 40 Percent Club #define MANUFACTURER 40 Percent Club
#define PRODUCT Gherkin #define PRODUCT Gherkin
#define DESCRIPTION A 30 key ortholinear keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -2,6 +2,4 @@
/* USB Device descriptor parameter */ /* USB Device descriptor parameter */
#undef MANUFACTURER #undef MANUFACTURER
#undef DESCRIPTION
#define MANUFACTURER Some Guy #define MANUFACTURER Some Guy
#define DESCRIPTION 30 percent disaster

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x4A1F #define DEVICE_VER 0x4A1F
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT half_n_half #define PRODUCT half_n_half
#define DESCRIPTION A small split ortholinear custom keyboard with 2 thumb buttons
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4*2 #define MATRIX_ROWS 4*2

View file

@ -24,7 +24,6 @@
#define DEVICE_VER 0x0175 #define DEVICE_VER 0x0175
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT i75 #define PRODUCT i75
#define DESCRIPTION i75 15x5 ortholinear keyboard
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5 #define DEBOUNCE 5

View file

@ -8,7 +8,6 @@
#define DEVICE_VER 0x1001 #define DEVICE_VER 0x1001
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT Luddite #define PRODUCT Luddite
#define DESCRIPTION Luddite Keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 8 #define MATRIX_ROWS 8

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0101 #define DEVICE_VER 0x0101
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT MF68 #define PRODUCT MF68
#define DESCRIPTION Magicforce 68 with programmable PCB replacement
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 8 #define MATRIX_ROWS 8

View file

@ -6,10 +6,8 @@
#undef DEVICE_VER #undef DEVICE_VER
#undef MANUFACTURER #undef MANUFACTURER
#undef PRODUCT #undef PRODUCT
#undef DESCRIPTION
#define VENDOR_ID 0xFEED #define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x0A0C #define PRODUCT_ID 0x0A0C
#define DEVICE_VER 0x0068 #define DEVICE_VER 0x0068
#define MANUFACTURER 68Keys.io #define MANUFACTURER 68Keys.io
#define PRODUCT The 68Keys.io Keyboard #define PRODUCT The 68Keys.io Keyboard
#define DESCRIPTION A 68 keys mechanical keyboard

View file

@ -21,10 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Overrides for Feather 32u4 Bluefruit */ /* Overrides for Feather 32u4 Bluefruit */
/* USB Device descriptor parameter */
#undef DESCRIPTION
#define DESCRIPTION Magicforce 68 BLE
/* /*
* Keyboard Matrix Assignments * Keyboard Matrix Assignments
* *

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT Nano #define PRODUCT Nano
#define DESCRIPTION 8 key microswitch board
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 2 #define MATRIX_ROWS 2

View file

@ -24,7 +24,6 @@
#define DEVICE_VER 0x9999 #define DEVICE_VER 0x9999
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT The nein Keyboard #define PRODUCT The nein Keyboard
#define DESCRIPTION 9 key macropad
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 3 #define MATRIX_ROWS 3

View file

@ -24,7 +24,6 @@
#define DEVICE_VER 0x0444 #define DEVICE_VER 0x0444
#define MANUFACTURER di0ib #define MANUFACTURER di0ib
#define PRODUCT The nori Keyboard #define PRODUCT The nori Keyboard
#define DESCRIPTION A modular compact keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -8,7 +8,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER 40 Percent Club #define MANUFACTURER 40 Percent Club
#define PRODUCT Tomato #define PRODUCT Tomato
#define DESCRIPTION A 30 key ortholinear keyboard with RGB backlighting
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER 40percent.club #define MANUFACTURER 40percent.club
#define PRODUCT ut47 #define PRODUCT ut47
#define DESCRIPTION An awesome 40% keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -8,7 +8,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Elias Sjögreen #define MANUFACTURER Elias Sjögreen
#define PRODUCT 4by3 #define PRODUCT 4by3
#define DESCRIPTION A small 12 key keypad
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 3 #define MATRIX_ROWS 3

View file

@ -8,7 +8,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER 4pplet #define MANUFACTURER 4pplet
#define PRODUCT AEKISO60 Rev A #define PRODUCT AEKISO60 Rev A
#define DESCRIPTION A steezy KEEB
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -8,7 +8,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER 4pplet #define MANUFACTURER 4pplet
#define PRODUCT Steezy60 Rev A #define PRODUCT Steezy60 Rev A
#define DESCRIPTION A steezy keeb
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -8,7 +8,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER 4pplet #define MANUFACTURER 4pplet
#define PRODUCT waffling60 Rev A #define PRODUCT waffling60 Rev A
#define DESCRIPTION A steezy keeb
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 6 #define MATRIX_ROWS 6

View file

@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER That-Canadian #define MANUFACTURER That-Canadian
#define PRODUCT 6-Ball #define PRODUCT 6-Ball
#define DESCRIPTION 6-Ball Macropuck
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 1 #define MATRIX_ROWS 1

View file

@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0007 #define DEVICE_VER 0x0007
#define MANUFACTURER Salicylic_Acid #define MANUFACTURER Salicylic_Acid
#define PRODUCT 7skb #define PRODUCT 7skb
#define DESCRIPTION A custom keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 10 #define MATRIX_ROWS 10

View file

@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Bishop Keyboards #define MANUFACTURER Bishop Keyboards
#define PRODUCT 9Key #define PRODUCT 9Key
#define DESCRIPTION Bishop Keyboards 9Key // Charleston, SC Meetup Handout
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 3 #define MATRIX_ROWS 3

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER nickolaij #define MANUFACTURER nickolaij
#define PRODUCT abacus #define PRODUCT abacus
#define DESCRIPTION A first attempt at a custom keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER cfbender #define MANUFACTURER cfbender
#define PRODUCT absinthe #define PRODUCT absinthe
#define DESCRIPTION An F-row-less TKL
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 9 #define MATRIX_ROWS 9

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER AbstractKB #define MANUFACTURER AbstractKB
#define PRODUCT EllipseRev1 #define PRODUCT EllipseRev1
#define DESCRIPTION The Ellipse Macropad
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 2 #define MATRIX_ROWS 2

View file

@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER DriftMechanics #define MANUFACTURER DriftMechanics
#define PRODUCT Austin #define PRODUCT Austin
#define DESCRIPTION Austin Keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 6 #define MATRIX_ROWS 6

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Acheron Project #define MANUFACTURER Acheron Project
#define PRODUCT Elongate #define PRODUCT Elongate
#define DESCRIPTION Acheron Project Elongate
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -23,7 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 // Revision pre-Alpha #define DEVICE_VER 0x0001 // Revision pre-Alpha
#define MANUFACTURER AcheronProject #define MANUFACTURER AcheronProject
#define PRODUCT KeebsPCB #define PRODUCT KeebsPCB
#define DESCRIPTION AcheronProject KeebsPCB
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER AcheronProject #define MANUFACTURER AcheronProject
#define PRODUCT SharkPCB #define PRODUCT SharkPCB
#define DESCRIPTION Ortho 40 PCB
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -9,7 +9,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER MECHKEYS #define MANUFACTURER MECHKEYS
#define PRODUCT ACR60 #define PRODUCT ACR60
#define DESCRIPTION 60% customizable keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0002 #define DEVICE_VER 0x0002
#define MANUFACTURER floookay #define MANUFACTURER floookay
#define PRODUCT adelheid #define PRODUCT adelheid
#define DESCRIPTION 75% alice-like keyboard based on the arisu
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 7 #define MATRIX_ROWS 7

View file

@ -22,7 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Bit Trade One #define MANUFACTURER Bit Trade One
#define PRODUCT ADKB96 #define PRODUCT ADKB96
#define DESCRIPTION
/* key matrix size */ /* key matrix size */
// Rows are doubled-up // Rows are doubled-up

View file

@ -24,7 +24,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER AEboards #define MANUFACTURER AEboards
#define PRODUCT AEboards Aegis #define PRODUCT AEboards Aegis
#define DESCRIPTION AEboards Aegis
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 12 #define MATRIX_ROWS 12

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER ai03 Design Studio #define MANUFACTURER ai03 Design Studio
#define PRODUCT Equinox #define PRODUCT Equinox
#define DESCRIPTION Compact PCB-mount keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Switchplate Peripherals #define MANUFACTURER Switchplate Peripherals
#define PRODUCT Lunar #define PRODUCT Lunar
#define DESCRIPTION 65% AEK keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0003 #define DEVICE_VER 0x0003
#define MANUFACTURER ai03 Keyboard Designs #define MANUFACTURER ai03 Keyboard Designs
#define PRODUCT Orbit #define PRODUCT Orbit
#define DESCRIPTION Split ergonomic keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 10 // Double rows for split keyboards. Orbit has 5, so define 10 #define MATRIX_ROWS 10 // Double rows for split keyboards. Orbit has 5, so define 10

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER ai03 Design Studio #define MANUFACTURER ai03 Design Studio
#define PRODUCT OrbitX #define PRODUCT OrbitX
#define DESCRIPTION High-end compact ergonomic keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 8 // Double the rows for split #define MATRIX_ROWS 8 // Double the rows for split

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER ai03 Design Studio #define MANUFACTURER ai03 Design Studio
#define PRODUCT Polaris #define PRODUCT Polaris
#define DESCRIPTION Basic 60% keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Ryota Goto #define MANUFACTURER Ryota Goto
#define PRODUCT Quasar #define PRODUCT Quasar
#define DESCRIPTION SSK Controller
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 8 #define MATRIX_ROWS 8

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Elliot Powell #define MANUFACTURER Elliot Powell
#define PRODUCT eb46 #define PRODUCT eb46
#define DESCRIPTION eb46 running qmk
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4
#define MATRIX_COLS 13 #define MATRIX_COLS 13

View file

@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER AKB #define MANUFACTURER AKB
#define PRODUCT Raine #define PRODUCT Raine
#define DESCRIPTION Raine
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0104 #define DEVICE_VER 0x0104
#define MANUFACTURER Alsoran #define MANUFACTURER Alsoran
#define PRODUCT AL1 #define PRODUCT AL1
#define DESCRIPTION A custom keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 7 #define MATRIX_ROWS 7

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Alf #define MANUFACTURER Alf
#define PRODUCT dc60 #define PRODUCT dc60
#define DESCRIPTION custom 60% keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Alf #define MANUFACTURER Alf
#define PRODUCT x11 #define PRODUCT x11
#define DESCRIPTION A TKL custom keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 7 #define MATRIX_ROWS 7

View file

@ -9,7 +9,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER ALF #define MANUFACTURER ALF
#define PRODUCT X2 #define PRODUCT X2
#define DESCRIPTION ALF X2 60
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER protoTypist #define MANUFACTURER protoTypist
#define PRODUCT Allison #define PRODUCT Allison
#define DESCRIPTION A custom luxurious 60 with F-row and Macro
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 6 #define MATRIX_ROWS 6

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER protoTypist #define MANUFACTURER protoTypist
#define PRODUCT Allison Numpad #define PRODUCT Allison Numpad
#define DESCRIPTION A custom luxurious numpad to match Allison
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 6 #define MATRIX_ROWS 6

View file

@ -9,7 +9,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER PyroL #define MANUFACTURER PyroL
#define PRODUCT alpha #define PRODUCT alpha
#define DESCRIPTION 28-key keyboard by PyroL
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 3 #define MATRIX_ROWS 3

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Hasu #define MANUFACTURER Hasu
#define PRODUCT Alps64 #define PRODUCT Alps64
#define DESCRIPTION TMK keyboard firmware for Alps64
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 8 #define MATRIX_ROWS 8

View file

@ -25,7 +25,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER MECHKEYS #define MANUFACTURER MECHKEYS
#define PRODUCT ALU84 #define PRODUCT ALU84
#define DESCRIPTION 75% keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 6 #define MATRIX_ROWS 6

View file

@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0002 #define DEVICE_VER 0x0002
#define MANUFACTURER Han Chen #define MANUFACTURER Han Chen
#define PRODUCT AMJ40 #define PRODUCT AMJ40
#define DESCRIPTION qmk port of AMJ40 v2 PCB
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Han Chen #define MANUFACTURER Han Chen
#define PRODUCT AMJ60 #define PRODUCT AMJ60
#define DESCRIPTION qmk port of AMJ60 PCB
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0002 #define DEVICE_VER 0x0002
#define MANUFACTURER Han Chen #define MANUFACTURER Han Chen
#define PRODUCT AMJ96 #define PRODUCT AMJ96
#define DESCRIPTION 96 key custom keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 7 #define MATRIX_ROWS 7

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER AMJKeyboard #define MANUFACTURER AMJKeyboard
#define PRODUCT AMJ66 #define PRODUCT AMJ66
#define DESCRIPTION QMK keyboard firmware for AMJ66
/* Key matrix size */ /* Key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0003 #define DEVICE_VER 0x0003
#define MANUFACTURER AMJ #define MANUFACTURER AMJ
#define PRODUCT PAD #define PRODUCT PAD
#define DESCRIPTION QMK keyboard firmware for AMJ PAD
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 6 #define MATRIX_ROWS 6

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER ANAVI #define MANUFACTURER ANAVI
#define PRODUCT Macro Pad 8 #define PRODUCT Macro Pad 8
#define DESCRIPTION 8-key mechanical keyboard/keypad/macropad with backlit, mini OLED display and RGB LED strip
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 2 #define MATRIX_ROWS 2

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER kakunpc #define MANUFACTURER kakunpc
#define PRODUCT angel17 #define PRODUCT angel17
#define DESCRIPTION A custom keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER kakunpc #define MANUFACTURER kakunpc
#define PRODUCT angel17 #define PRODUCT angel17
#define DESCRIPTION A custom keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER kakunpc #define MANUFACTURER kakunpc
#define PRODUCT angel64 #define PRODUCT angel64
#define DESCRIPTION A custom keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 12 #define MATRIX_ROWS 12

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER kakunpc #define MANUFACTURER kakunpc
#define PRODUCT angel64 #define PRODUCT angel64
#define DESCRIPTION A custom keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 12 #define MATRIX_ROWS 12

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Ace of Spades #define MANUFACTURER Ace of Spades
#define PRODUCT Ace of Spades TKL #define PRODUCT Ace of Spades TKL
#define DESCRIPTION Ace of Spades TKL
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 6 #define MATRIX_ROWS 6

View file

@ -24,7 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER CalciumNitride #define MANUFACTURER CalciumNitride
#define PRODUCT Arabica3/7 #define PRODUCT Arabica3/7
#define DESCRIPTION A split keyboard with 3x6 column staggered keys, 1 pinkie key and 3 thumb keys
#define USE_SERIAL #define USE_SERIAL
#define SOFT_SERIAL_PIN D2 #define SOFT_SERIAL_PIN D2

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Fate #define MANUFACTURER Fate
#define PRODUCT arisu #define PRODUCT arisu
#define DESCRIPTION alice counterpart keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Hasyim Ashari #define MANUFACTURER Hasyim Ashari
#define PRODUCT ASH-1800 #define PRODUCT ASH-1800
#define DESCRIPTION An attempt to make a cherry g80/g81 clone
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 12 #define MATRIX_ROWS 12

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER ashpil #define MANUFACTURER ashpil
#define PRODUCT IBM Model M 101/102 #define PRODUCT IBM Model M 101/102
#define DESCRIPTION Controlled by AVR chip
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 8 #define MATRIX_ROWS 8

View file

@ -8,7 +8,6 @@
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER blindassassin111 #define MANUFACTURER blindassassin111
#define PRODUCT AT101_BH PCB #define PRODUCT AT101_BH PCB
#define DESCRIPTION Replacement AT101 PCB
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 12 #define MATRIX_ROWS 12

View file

@ -29,7 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER AT-AT #define MANUFACTURER AT-AT
#define PRODUCT 660M #define PRODUCT 660M
#define DESCRIPTION 660M Keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Ortholinear Keyboards #define MANUFACTURER Ortholinear Keyboards
#define PRODUCT The Atomic Keyboard #define PRODUCT The Atomic Keyboard
#define DESCRIPTION A compact ortholinear keyboard
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -25,7 +25,6 @@
#define DEVICE_VER 0x0008 #define DEVICE_VER 0x0008
#define MANUFACTURER Technomancy #define MANUFACTURER Technomancy
#define PRODUCT Atreus #define PRODUCT Atreus
#define DESCRIPTION QMK keyboard firmware for Atreus
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 4 #define MATRIX_ROWS 4

View file

@ -27,7 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER Profet #define MANUFACTURER Profet
#define PRODUCT Atreus62 #define PRODUCT Atreus62
#define DESCRIPTION q.m.k. keyboard firmware for Atreus62
/* key matrix size */ /* key matrix size */
// Rows are doubled-up // Rows are doubled-up

View file

@ -2,7 +2,6 @@
#undef MANUFACTURER #undef MANUFACTURER
#undef PRODUCT #undef PRODUCT
#undef DESCRIPTION
#undef MATRIX_ROW_PINS #undef MATRIX_ROW_PINS
#undef MATRIX_COL_PINS #undef MATRIX_COL_PINS
#undef DIODE_DIRECTION #undef DIODE_DIRECTION
@ -10,7 +9,6 @@
/* USB Device descriptor parameter */ /* USB Device descriptor parameter */
#define MANUFACTURER Mesh Industries #define MANUFACTURER Mesh Industries
#define PRODUCT Atreus52 Treeboard #define PRODUCT Atreus52 Treeboard
#define DESCRIPTION q.m.k. keyboard firmware for Atreus52
#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } #define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { B2, B1, F7, F6, F5, F4, B6, D3, D2, D1, D0, D4, B3 } #define MATRIX_COL_PINS { B2, B1, F7, F6, F5, F4, B6, D3, D2, D1, D0, D4, B3 }

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER atxkb #define MANUFACTURER atxkb
#define PRODUCT 1894 #define PRODUCT 1894
#define DESCRIPTION atxkb 1894
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEVICE_VER 0x0001 #define DEVICE_VER 0x0001
#define MANUFACTURER I/O Keyboards #define MANUFACTURER I/O Keyboards
#define PRODUCT Aves65 #define PRODUCT Aves65
#define DESCRIPTION A 65% keyboard with underglow.
/* key matrix size */ /* key matrix size */
#define MATRIX_ROWS 5 #define MATRIX_ROWS 5

View file

@ -123,12 +123,6 @@ enum desktop_usages {
#define KEYBOARD_REPORT_KEYS 6 #define KEYBOARD_REPORT_KEYS 6
/* VUSB hardcodes keyboard and mouse+extrakey only */
#if defined(PROTOCOL_VUSB)
# undef KEYBOARD_SHARED_EP
# undef MOUSE_SHARED_EP
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif

View file

@ -46,19 +46,28 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* Interface indexes * Interface indexes
*/ */
enum usb_interfaces { enum usb_interfaces {
#ifndef KEYBOARD_SHARED_EP
KEYBOARD_INTERFACE = NEXT_INTERFACE, KEYBOARD_INTERFACE = NEXT_INTERFACE,
#else
SHARED_INTERFACE = NEXT_INTERFACE,
# define KEYBOARD_INTERFACE SHARED_INTERFACE
#endif
// It is important that the Raw HID interface is at a constant // It is important that the Raw HID interface is at a constant
// interface number, to support Linux/OSX platforms and chrome.hid // interface number, to support Linux/OSX platforms and chrome.hid
// If Raw HID is enabled, let it be always 1. // If Raw HID is enabled, let it be always 1.
#ifdef RAW_ENABLE #ifdef RAW_ENABLE
RAW_INTERFACE = NEXT_INTERFACE, RAW_INTERFACE = NEXT_INTERFACE,
#endif #endif
#if (defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE))
MOUSE_EXTRA_INTERFACE = NEXT_INTERFACE, #if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP)
SHARED_INTERFACE = NEXT_INTERFACE,
#endif #endif
#ifdef CONSOLE_ENABLE #ifdef CONSOLE_ENABLE
CONSOLE_INTERFACE = NEXT_INTERFACE, CONSOLE_INTERFACE = NEXT_INTERFACE,
#endif #endif
TOTAL_INTERFACES = NEXT_INTERFACE TOTAL_INTERFACES = NEXT_INTERFACE
}; };
@ -90,7 +99,16 @@ void vusb_transfer_keyboard(void) {
for (int i = 0; i < VUSB_TRANSFER_KEYBOARD_MAX_TRIES; i++) { for (int i = 0; i < VUSB_TRANSFER_KEYBOARD_MAX_TRIES; i++) {
if (usbInterruptIsReady()) { if (usbInterruptIsReady()) {
if (kbuf_head != kbuf_tail) { if (kbuf_head != kbuf_tail) {
#ifndef KEYBOARD_SHARED_EP
usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t)); usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t));
#else
// Ugly hack! :(
usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t) - 1);
while (!usbInterruptIsReady()) {
usbPoll();
}
usbSetInterrupt((void *)(&(kbuf[kbuf_tail].keys[5])), 1);
#endif
kbuf_tail = (kbuf_tail + 1) % KBUF_SIZE; kbuf_tail = (kbuf_tail + 1) % KBUF_SIZE;
if (debug_keyboard) { if (debug_keyboard) {
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)); 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) {
keyboard_report_sent = *report; keyboard_report_sent = *report;
} }
typedef struct { #ifndef KEYBOARD_SHARED_EP
uint8_t report_id; # define usbInterruptIsReadyShared usbInterruptIsReady3
report_mouse_t report; # define usbSetInterruptShared usbSetInterrupt3
} __attribute__((packed)) vusb_mouse_report_t; #else
# define usbInterruptIsReadyShared usbInterruptIsReady
# define usbSetInterruptShared usbSetInterrupt
#endif
static void send_mouse(report_mouse_t *report) { static void send_mouse(report_mouse_t *report) {
#ifdef MOUSE_ENABLE #ifdef MOUSE_ENABLE
vusb_mouse_report_t r = {.report_id = REPORT_ID_MOUSE, .report = *report}; if (usbInterruptIsReadyShared()) {
if (usbInterruptIsReady3()) { usbSetInterruptShared((void *)report, sizeof(report_mouse_t));
usbSetInterrupt3((void *)&r, sizeof(vusb_mouse_report_t));
} }
#endif #endif
} }
@ -253,8 +273,8 @@ static void send_extra(uint8_t report_id, uint16_t data) {
last_data = data; last_data = data;
report_extra_t report = {.report_id = report_id, .usage = data}; report_extra_t report = {.report_id = report_id, .usage = data};
if (usbInterruptIsReady3()) { if (usbInterruptIsReadyShared()) {
usbSetInterrupt3((void *)&report, sizeof(report)); usbSetInterruptShared((void *)&report, sizeof(report_extra_t));
} }
} }
#endif #endif
@ -360,10 +380,18 @@ void usbFunctionWriteOut(uchar *data, uchar len) {
* Descriptors * * Descriptors *
*------------------------------------------------------------------*/ *------------------------------------------------------------------*/
#ifdef KEYBOARD_SHARED_EP
const PROGMEM uchar shared_hid_report[] = {
# define SHARED_REPORT_STARTED
#else
const PROGMEM uchar keyboard_hid_report[] = { const PROGMEM uchar keyboard_hid_report[] = {
#endif
0x05, 0x01, // Usage Page (Generic Desktop) 0x05, 0x01, // Usage Page (Generic Desktop)
0x09, 0x06, // Usage (Keyboard) 0x09, 0x06, // Usage (Keyboard)
0xA1, 0x01, // Collection (Application) 0xA1, 0x01, // Collection (Application)
#ifdef KEYBOARD_SHARED_EP
0x85, REPORT_ID_KEYBOARD, // Report ID
#endif
// Modifiers (8 bits) // Modifiers (8 bits)
0x05, 0x07, // Usage Page (Keyboard/Keypad) 0x05, 0x07, // Usage Page (Keyboard/Keypad)
0x19, 0xE0, // Usage Minimum (Keyboard Left Control) 0x19, 0xE0, // Usage Minimum (Keyboard Left Control)
@ -398,12 +426,17 @@ const PROGMEM uchar keyboard_hid_report[] = {
0x95, 0x01, // Report Count (1) 0x95, 0x01, // Report Count (1)
0x75, 0x03, // Report Size (3) 0x75, 0x03, // Report Size (3)
0x91, 0x03, // Output (Constant) 0x91, 0x03, // Output (Constant)
0xC0 // End Collection 0xC0, // End Collection
#ifndef KEYBOARD_SHARED_EP
}; };
#endif
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) #if defined(SHARED_EP_ENABLE) && !defined(SHARED_REPORT_STARTED)
const PROGMEM uchar mouse_extra_hid_report[] = { const PROGMEM uchar shared_hid_report[] = {
# ifdef MOUSE_ENABLE # define SHARED_REPORT_STARTED
#endif
#ifdef MOUSE_ENABLE
// Mouse report descriptor // Mouse report descriptor
0x05, 0x01, // Usage Page (Generic Desktop) 0x05, 0x01, // Usage Page (Generic Desktop)
0x09, 0x02, // Usage (Mouse) 0x09, 0x02, // Usage (Mouse)
@ -452,9 +485,9 @@ const PROGMEM uchar mouse_extra_hid_report[] = {
0x81, 0x06, // Input (Data, Variable, Relative) 0x81, 0x06, // Input (Data, Variable, Relative)
0xC0, // End Collection 0xC0, // End Collection
0xC0, // End Collection 0xC0, // End Collection
# endif #endif
# ifdef EXTRAKEY_ENABLE #ifdef EXTRAKEY_ENABLE
// Extrakeys report descriptor // Extrakeys report descriptor
0x05, 0x01, // Usage Page (Generic Desktop) 0x05, 0x01, // Usage Page (Generic Desktop)
0x09, 0x80, // Usage (System Control) 0x09, 0x80, // Usage (System Control)
@ -481,7 +514,8 @@ const PROGMEM uchar mouse_extra_hid_report[] = {
0x75, 0x10, // Report Size (16) 0x75, 0x10, // Report Size (16)
0x81, 0x00, // Input (Data, Array, Absolute) 0x81, 0x00, // Input (Data, Array, Absolute)
0xC0 // End Collection 0xC0 // End Collection
# endif #endif
#ifdef SHARED_EP_ENABLE
}; };
#endif #endif
@ -618,6 +652,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
.bMaxPower = USB_MAX_POWER_CONSUMPTION / 2 .bMaxPower = USB_MAX_POWER_CONSUMPTION / 2
}, },
# ifndef KEYBOARD_SHARED_EP
/* /*
* Keyboard * Keyboard
*/ */
@ -655,6 +690,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
.wMaxPacketSize = 8, .wMaxPacketSize = 8,
.bInterval = USB_POLLING_INTERVAL_MS .bInterval = USB_POLLING_INTERVAL_MS
}, },
# endif
# if defined(RAW_ENABLE) # if defined(RAW_ENABLE)
/* /*
@ -705,24 +741,30 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
.bInterval = USB_POLLING_INTERVAL_MS .bInterval = USB_POLLING_INTERVAL_MS
}, },
# endif # endif
# if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
# ifdef SHARED_EP_ENABLE
/* /*
* Mouse/Extrakeys * Shared
*/ */
.mouseExtraInterface = { .sharedInterface = {
.header = { .header = {
.bLength = sizeof(usbInterfaceDescriptor_t), .bLength = sizeof(usbInterfaceDescriptor_t),
.bDescriptorType = USBDESCR_INTERFACE .bDescriptorType = USBDESCR_INTERFACE
}, },
.bInterfaceNumber = MOUSE_EXTRA_INTERFACE, .bInterfaceNumber = SHARED_INTERFACE,
.bAlternateSetting = 0x00, .bAlternateSetting = 0x00,
.bNumEndpoints = 1, .bNumEndpoints = 1,
.bInterfaceClass = 0x03, .bInterfaceClass = 0x03,
# ifdef KEYBOARD_SHARED_EP
.bInterfaceSubClass = 0x01,
.bInterfaceProtocol = 0x01,
# else
.bInterfaceSubClass = 0x00, .bInterfaceSubClass = 0x00,
.bInterfaceProtocol = 0x00, .bInterfaceProtocol = 0x00,
# endif
.iInterface = 0x00 .iInterface = 0x00
}, },
.mouseExtraHID = { .sharedHID = {
.header = { .header = {
.bLength = sizeof(usbHIDDescriptor_t), .bLength = sizeof(usbHIDDescriptor_t),
.bDescriptorType = USBDESCR_HID .bDescriptorType = USBDESCR_HID
@ -731,19 +773,24 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
.bCountryCode = 0x00, .bCountryCode = 0x00,
.bNumDescriptors = 1, .bNumDescriptors = 1,
.bDescriptorType = USBDESCR_HID_REPORT, .bDescriptorType = USBDESCR_HID_REPORT,
.wDescriptorLength = sizeof(mouse_extra_hid_report) .wDescriptorLength = sizeof(shared_hid_report)
}, },
.mouseExtraINEndpoint = { .sharedINEndpoint = {
.header = { .header = {
.bLength = sizeof(usbEndpointDescriptor_t), .bLength = sizeof(usbEndpointDescriptor_t),
.bDescriptorType = USBDESCR_ENDPOINT .bDescriptorType = USBDESCR_ENDPOINT
}, },
# ifdef KEYBOARD_SHARED_EP
.bEndpointAddress = (USBRQ_DIR_DEVICE_TO_HOST | 1),
# else
.bEndpointAddress = (USBRQ_DIR_DEVICE_TO_HOST | USB_CFG_EP3_NUMBER), .bEndpointAddress = (USBRQ_DIR_DEVICE_TO_HOST | USB_CFG_EP3_NUMBER),
# endif
.bmAttributes = 0x03, .bmAttributes = 0x03,
.wMaxPacketSize = 8, .wMaxPacketSize = 8,
.bInterval = USB_POLLING_INTERVAL_MS .bInterval = USB_POLLING_INTERVAL_MS
}, },
# endif # endif
# if defined(CONSOLE_ENABLE) # if defined(CONSOLE_ENABLE)
/* /*
* Console * Console
@ -791,7 +838,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
.bmAttributes = 0x03, .bmAttributes = 0x03,
.wMaxPacketSize = CONSOLE_EPSIZE, .wMaxPacketSize = CONSOLE_EPSIZE,
.bInterval = 0x01 .bInterval = 0x01
}, }
# endif # endif
}; };
@ -833,22 +880,27 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) {
break; break;
case USBDESCR_HID: case USBDESCR_HID:
switch (rq->wValue.bytes[0]) { switch (rq->wValue.bytes[0]) {
#ifndef KEYBOARD_SHARED_EP
case KEYBOARD_INTERFACE: case KEYBOARD_INTERFACE:
usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.keyboardHID; usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.keyboardHID;
len = sizeof(usbHIDDescriptor_t); len = sizeof(usbHIDDescriptor_t);
break; break;
#endif
#if defined(RAW_ENABLE) #if defined(RAW_ENABLE)
case RAW_INTERFACE: case RAW_INTERFACE:
usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.rawHID; usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.rawHID;
len = sizeof(usbHIDDescriptor_t); len = sizeof(usbHIDDescriptor_t);
break; break;
#endif #endif
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
case MOUSE_EXTRA_INTERFACE: #ifdef SHARED_EP_ENABLE
usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.mouseExtraHID; case SHARED_INTERFACE:
usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.sharedHID;
len = sizeof(usbHIDDescriptor_t); len = sizeof(usbHIDDescriptor_t);
break; break;
#endif #endif
#if defined(CONSOLE_ENABLE) #if defined(CONSOLE_ENABLE)
case CONSOLE_INTERFACE: case CONSOLE_INTERFACE:
usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.consoleHID; usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.consoleHID;
@ -860,22 +912,27 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) {
case USBDESCR_HID_REPORT: case USBDESCR_HID_REPORT:
/* interface index */ /* interface index */
switch (rq->wIndex.word) { switch (rq->wIndex.word) {
#ifndef KEYBOARD_SHARED_EP
case KEYBOARD_INTERFACE: case KEYBOARD_INTERFACE:
usbMsgPtr = (usbMsgPtr_t)keyboard_hid_report; usbMsgPtr = (usbMsgPtr_t)keyboard_hid_report;
len = sizeof(keyboard_hid_report); len = sizeof(keyboard_hid_report);
break; break;
#endif
#if defined(RAW_ENABLE) #if defined(RAW_ENABLE)
case RAW_INTERFACE: case RAW_INTERFACE:
usbMsgPtr = (usbMsgPtr_t)raw_hid_report; usbMsgPtr = (usbMsgPtr_t)raw_hid_report;
len = sizeof(raw_hid_report); len = sizeof(raw_hid_report);
break; break;
#endif #endif
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
case MOUSE_EXTRA_INTERFACE: #ifdef SHARED_EP_ENABLE
usbMsgPtr = (usbMsgPtr_t)mouse_extra_hid_report; case SHARED_INTERFACE:
len = sizeof(mouse_extra_hid_report); usbMsgPtr = (usbMsgPtr_t)shared_hid_report;
len = sizeof(shared_hid_report);
break; break;
#endif #endif
#if defined(CONSOLE_ENABLE) #if defined(CONSOLE_ENABLE)
case CONSOLE_INTERFACE: case CONSOLE_INTERFACE:
usbMsgPtr = (usbMsgPtr_t)console_hid_report; usbMsgPtr = (usbMsgPtr_t)console_hid_report;

View file

@ -85,9 +85,16 @@ typedef struct usbHIDDescriptor {
typedef struct usbConfigurationDescriptor { typedef struct usbConfigurationDescriptor {
usbConfigurationDescriptorHeader_t header; usbConfigurationDescriptorHeader_t header;
#ifndef KEYBOARD_SHARED_EP
usbInterfaceDescriptor_t keyboardInterface; usbInterfaceDescriptor_t keyboardInterface;
usbHIDDescriptor_t keyboardHID; usbHIDDescriptor_t keyboardHID;
usbEndpointDescriptor_t keyboardINEndpoint; usbEndpointDescriptor_t keyboardINEndpoint;
#else
usbInterfaceDescriptor_t sharedInterface;
usbHIDDescriptor_t sharedHID;
usbEndpointDescriptor_t sharedINEndpoint;
#endif
#if defined(RAW_ENABLE) #if defined(RAW_ENABLE)
usbInterfaceDescriptor_t rawInterface; usbInterfaceDescriptor_t rawInterface;
@ -96,10 +103,10 @@ typedef struct usbConfigurationDescriptor {
usbEndpointDescriptor_t rawOUTEndpoint; usbEndpointDescriptor_t rawOUTEndpoint;
#endif #endif
#if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE) #if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP)
usbInterfaceDescriptor_t mouseExtraInterface; usbInterfaceDescriptor_t sharedInterface;
usbHIDDescriptor_t mouseExtraHID; usbHIDDescriptor_t sharedHID;
usbEndpointDescriptor_t mouseExtraINEndpoint; usbEndpointDescriptor_t sharedINEndpoint;
#endif #endif
#if defined(CONSOLE_ENABLE) #if defined(CONSOLE_ENABLE)