summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Young <18669334+noroadsleft@users.noreply.github.com>2020-11-28 12:02:18 -0800
committerGitHub <noreply@github.com>2020-11-28 12:02:18 -0800
commitc66df1664497546f32662409778731143e45a552 (patch)
treeda73a2d532a27685a31d932b3a44a707d4a3af81
parent15385d4113414d42bd062c60c9de5df797d3157f (diff)
downloadqmk_firmware-c66df1664497546f32662409778731143e45a552.tar.gz
qmk_firmware-c66df1664497546f32662409778731143e45a552.zip
2020 November 28 Breaking Changes Update (#11053)
* Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
-rw-r--r--Makefile24
-rw-r--r--build_keyboard.mk13
-rw-r--r--build_test.mk1
-rw-r--r--common.mk1
-rw-r--r--common_features.mk122
-rw-r--r--docs/ChangeLog/20201128.md150
-rw-r--r--docs/_summary.md2
-rw-r--r--docs/breaking_changes.md30
-rw-r--r--docs/config_options.md2
-rw-r--r--docs/custom_quantum_functions.md8
-rw-r--r--docs/feature_auto_shift.md42
-rw-r--r--docs/feature_backlight.md17
-rw-r--r--docs/feature_encoders.md9
-rw-r--r--docs/feature_haptic_feedback.md23
-rw-r--r--docs/feature_joystick.md6
-rw-r--r--docs/feature_led_matrix.md3
-rw-r--r--docs/feature_mouse_keys.md4
-rw-r--r--docs/feature_oled_driver.md1
-rw-r--r--docs/feature_rgb_matrix.md17
-rw-r--r--docs/feature_sequencer.md88
-rw-r--r--docs/internals_gpio_control.md19
-rw-r--r--docs/ja/feature_led_matrix.md3
-rw-r--r--docs/tap_hold.md19
-rw-r--r--drivers/avr/serial.c139
-rw-r--r--drivers/chibios/i2c_master.c21
-rw-r--r--drivers/chibios/spi_master.c27
-rw-r--r--drivers/eeprom/eeprom_i2c.c12
-rw-r--r--drivers/eeprom/eeprom_spi.c14
-rw-r--r--drivers/haptic/haptic.c53
-rw-r--r--drivers/haptic/solenoid.c10
-rw-r--r--drivers/haptic/solenoid.h18
-rw-r--r--drivers/oled/oled_driver.c22
-rw-r--r--keyboards/1upkeyboards/super16/rules.mk3
-rw-r--r--keyboards/aeboards/ext65/config.h (renamed from keyboards/speedo/keymaps/default/config.h)6
-rw-r--r--keyboards/aeboards/ext65/ext65.c1
-rw-r--r--keyboards/aeboards/ext65/ext65.h9
-rw-r--r--keyboards/aeboards/ext65/keymaps/default/keymap.c (renamed from keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c)14
-rw-r--r--keyboards/aeboards/ext65/keymaps/default/readme.md (renamed from keyboards/aeboards/ext65/rev2/keymaps/default/readme.md)0
-rw-r--r--keyboards/aeboards/ext65/keymaps/via/keymap.c (renamed from keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c)14
-rw-r--r--keyboards/aeboards/ext65/keymaps/via/readme.md (renamed from keyboards/aeboards/ext65/rev2/keymaps/via/readme.md)0
-rw-r--r--keyboards/aeboards/ext65/keymaps/via/rules.mk (renamed from keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk)0
-rw-r--r--keyboards/aeboards/ext65/readme.md19
-rw-r--r--keyboards/aeboards/ext65/rev1/config.h5
-rw-r--r--keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c103
-rw-r--r--keyboards/aeboards/ext65/rev1/keymaps/default/readme.md2
-rw-r--r--keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c103
-rw-r--r--keyboards/aeboards/ext65/rev1/keymaps/via/readme.md2
-rw-r--r--keyboards/aeboards/ext65/rev1/readme.md14
-rw-r--r--keyboards/aeboards/ext65/rev1/rev1.c46
-rw-r--r--keyboards/aeboards/ext65/rev1/rev1.h3
-rw-r--r--keyboards/aeboards/ext65/rev2/config.h2
-rw-r--r--keyboards/aeboards/ext65/rev2/rev2.h17
-rw-r--r--keyboards/aeboards/ext65/rules.mk1
-rw-r--r--keyboards/ares/ares.h2
-rw-r--r--keyboards/ares/keymaps/default/keymap.c2
-rw-r--r--keyboards/at_at/660m/660m.c5
-rw-r--r--keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.c268
-rw-r--r--keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.h940
-rw-r--r--keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.mk5
-rw-r--r--keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg703
-rw-r--r--keyboards/at_at/660m/config.h6
-rw-r--r--keyboards/at_at/660m/rules.mk2
-rwxr-xr-xkeyboards/bm40hsrgb/rules.mk3
-rw-r--r--keyboards/bm60poker/rules.mk3
-rw-r--r--keyboards/bm60rgb/rules.mk3
-rw-r--r--keyboards/bm60rgb_iso/rules.mk3
-rw-r--r--keyboards/boston_meetup/2019/rules.mk3
-rw-r--r--keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.c268
-rw-r--r--keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.h940
-rw-r--r--keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.mk5
-rw-r--r--keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg703
-rw-r--r--keyboards/cannonkeys/satisfaction75/config.h6
-rw-r--r--keyboards/cannonkeys/satisfaction75/rules.mk2
-rw-r--r--keyboards/cannonkeys/satisfaction75/satisfaction75.c5
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/rules.mk3
-rw-r--r--keyboards/cozykeys/speedo/readme.md26
-rw-r--r--keyboards/cozykeys/speedo/speedo.c17
-rw-r--r--keyboards/cozykeys/speedo/speedo.h23
-rw-r--r--keyboards/cozykeys/speedo/v2/config.h44
-rw-r--r--keyboards/cozykeys/speedo/v2/info.json79
-rw-r--r--keyboards/cozykeys/speedo/v2/keymaps/default/keymap.c (renamed from keyboards/speedo/keymaps/default/keymap.c)72
-rw-r--r--keyboards/cozykeys/speedo/v2/keymaps/default/readme.md1
-rw-r--r--keyboards/cozykeys/speedo/v2/rules.mk22
-rw-r--r--keyboards/cozykeys/speedo/v2/speedo_v2.c17
-rw-r--r--keyboards/cozykeys/speedo/v2/speedo_v2.h36
-rw-r--r--keyboards/cozykeys/speedo/v3/config.h58
-rw-r--r--keyboards/cozykeys/speedo/v3/info.json79
-rw-r--r--keyboards/cozykeys/speedo/v3/keymaps/default/keymap.c49
-rw-r--r--keyboards/cozykeys/speedo/v3/keymaps/default/readme.md10
-rw-r--r--keyboards/cozykeys/speedo/v3/rules.mk22
-rw-r--r--keyboards/cozykeys/speedo/v3/speedo_v3.c17
-rw-r--r--keyboards/cozykeys/speedo/v3/speedo_v3.h36
-rw-r--r--keyboards/crkbd/keymaps/curry/rules.mk2
-rw-r--r--keyboards/crkbd/keymaps/dsanchezseco/rules.mk2
-rw-r--r--keyboards/crkbd/keymaps/kidbrazil/rules.mk2
-rw-r--r--keyboards/crkbd/keymaps/ninjonas/rules.mk2
-rw-r--r--keyboards/crkbd/keymaps/rpbaptist/rules.mk2
-rw-r--r--keyboards/crkbd/keymaps/soundmonster/rules.mk2
-rw-r--r--keyboards/crkbd/readme.md2
-rw-r--r--keyboards/crkbd/rules.mk2
-rw-r--r--keyboards/dekunukem/duckypad/rules.mk3
-rw-r--r--keyboards/doro67/rgb/rules.mk3
-rw-r--r--keyboards/dp60/rules.mk3
-rw-r--r--keyboards/dztech/dz60rgb/v1/rules.mk3
-rw-r--r--keyboards/dztech/dz60rgb/v2/rules.mk3
-rw-r--r--keyboards/dztech/dz60rgb_ansi/v1/rules.mk3
-rw-r--r--keyboards/dztech/dz60rgb_ansi/v2/rules.mk3
-rw-r--r--keyboards/dztech/dz60rgb_wkl/v1/rules.mk3
-rw-r--r--keyboards/dztech/dz60rgb_wkl/v2/rules.mk3
-rw-r--r--keyboards/dztech/dz65rgb/v1/rules.mk3
-rw-r--r--keyboards/dztech/dz65rgb/v2/rules.mk3
-rw-r--r--keyboards/e88/config.h2
-rw-r--r--keyboards/e88/e88.c2
-rw-r--r--keyboards/e88/e88.h2
-rw-r--r--keyboards/e88/keymaps/default/keymap.c2
-rw-r--r--keyboards/ergodox_ez/rules.mk3
-rw-r--r--keyboards/evyd13/atom47/keymaps/LEdiodes/keymap.c (renamed from keyboards/maartenwut/atom47/keymaps/LEdiodes/keymap.c)0
-rw-r--r--keyboards/evyd13/atom47/keymaps/LEdiodes/rules.mk (renamed from keyboards/maartenwut/atom47/keymaps/LEdiodes/rules.mk)0
-rw-r--r--keyboards/evyd13/atom47/keymaps/default/keymap.c (renamed from keyboards/maartenwut/atom47/keymaps/default/keymap.c)0
-rw-r--r--keyboards/evyd13/atom47/keymaps/default/readme.md (renamed from keyboards/maartenwut/atom47/keymaps/default/readme.md)0
-rw-r--r--keyboards/evyd13/atom47/keymaps/evyd13/keymap.c (renamed from keyboards/maartenwut/atom47/keymaps/maartenwut/keymap.c)0
-rw-r--r--keyboards/evyd13/atom47/keymaps/evyd13/readme.md (renamed from keyboards/maartenwut/atom47/keymaps/maartenwut/readme.md)0
-rw-r--r--keyboards/evyd13/atom47/keymaps/junonum_a47/keymap.c (renamed from keyboards/maartenwut/atom47/keymaps/junonum_a47/keymap.c)0
-rw-r--r--keyboards/evyd13/atom47/keymaps/junonum_a47/readme.md (renamed from keyboards/maartenwut/atom47/keymaps/junonum_a47/readme.md)0
-rw-r--r--keyboards/evyd13/atom47/readme.md (renamed from keyboards/maartenwut/atom47/readme.md)2
-rw-r--r--keyboards/evyd13/atom47/rev2/config.h (renamed from keyboards/maartenwut/atom47/rev2/config.h)2
-rw-r--r--keyboards/evyd13/atom47/rev2/info.json (renamed from keyboards/maartenwut/atom47/rev3/info.json)4
-rw-r--r--keyboards/evyd13/atom47/rev2/readme.md (renamed from keyboards/maartenwut/atom47/rev2/readme.md)0
-rw-r--r--keyboards/evyd13/atom47/rev2/rev2.c (renamed from keyboards/maartenwut/atom47/rev2/rev2.c)0
-rw-r--r--keyboards/evyd13/atom47/rev2/rev2.h (renamed from keyboards/maartenwut/atom47/rev2/rev2.h)0
-rw-r--r--keyboards/evyd13/atom47/rev2/rules.mk (renamed from keyboards/maartenwut/atom47/rev2/rules.mk)0
-rw-r--r--keyboards/evyd13/atom47/rev3/config.h (renamed from keyboards/maartenwut/atom47/rev3/config.h)2
-rw-r--r--keyboards/evyd13/atom47/rev3/info.json (renamed from keyboards/maartenwut/atom47/rev2/info.json)4
-rw-r--r--keyboards/evyd13/atom47/rev3/rev3.c (renamed from keyboards/maartenwut/atom47/rev3/rev3.c)0
-rw-r--r--keyboards/evyd13/atom47/rev3/rev3.h (renamed from keyboards/maartenwut/atom47/rev3/rev3.h)0
-rw-r--r--keyboards/evyd13/atom47/rev3/rules.mk (renamed from keyboards/maartenwut/atom47/rev3/rules.mk)0
-rw-r--r--keyboards/evyd13/atom47/rules.mk (renamed from keyboards/maartenwut/atom47/rules.mk)2
-rw-r--r--keyboards/evyd13/eon40/config.h226
-rw-r--r--keyboards/evyd13/eon40/eon40.c (renamed from keyboards/maartenwut/eon40/eon40.c)2
-rw-r--r--keyboards/evyd13/eon40/eon40.h (renamed from keyboards/maartenwut/eon40/eon40.h)2
-rw-r--r--keyboards/evyd13/eon40/info.json (renamed from keyboards/maartenwut/eon40/info.json)0
-rw-r--r--keyboards/evyd13/eon40/keymaps/default/keymap.c (renamed from keyboards/maartenwut/eon40/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/eon40/keymaps/default/readme.md (renamed from keyboards/maartenwut/eon40/keymaps/default/readme.md)0
-rw-r--r--keyboards/evyd13/eon40/keymaps/via/keymap.c (renamed from keyboards/maartenwut/eon40/keymaps/via/keymap.c)2
-rw-r--r--keyboards/evyd13/eon40/keymaps/via/rules.mk (renamed from keyboards/maartenwut/eon40/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/eon40/readme.md (renamed from keyboards/maartenwut/eon40/readme.md)4
-rw-r--r--keyboards/evyd13/eon40/rules.mk (renamed from keyboards/maartenwut/eon40/rules.mk)1
-rw-r--r--keyboards/evyd13/eon65/config.h (renamed from keyboards/maartenwut/eon65/config.h)4
-rw-r--r--keyboards/evyd13/eon65/eon65.c (renamed from keyboards/maartenwut/eon65/eon65.c)2
-rw-r--r--keyboards/evyd13/eon65/eon65.h (renamed from keyboards/maartenwut/eon65/eon65.h)2
-rw-r--r--keyboards/evyd13/eon65/info.json (renamed from keyboards/maartenwut/eon65/info.json)0
-rw-r--r--keyboards/evyd13/eon65/keymaps/default/keymap.c (renamed from keyboards/maartenwut/eon65/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/eon65/keymaps/mrsendyyk/keymap.c (renamed from keyboards/maartenwut/eon65/keymaps/mrsendyyk/keymap.c)0
-rw-r--r--keyboards/evyd13/eon65/keymaps/mrsendyyk/readme.md (renamed from keyboards/maartenwut/eon65/keymaps/mrsendyyk/readme.md)2
-rw-r--r--keyboards/evyd13/eon65/keymaps/via/keymap.c (renamed from keyboards/maartenwut/eon65/keymaps/via/keymap.c)2
-rw-r--r--keyboards/evyd13/eon65/keymaps/via/rules.mk (renamed from keyboards/maartenwut/eon65/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/eon65/readme.md (renamed from keyboards/maartenwut/eon65/readme.md)4
-rw-r--r--keyboards/evyd13/eon65/rules.mk (renamed from keyboards/maartenwut/eon65/rules.mk)0
-rw-r--r--keyboards/evyd13/eon75/config.h (renamed from keyboards/maartenwut/eon75/config.h)4
-rw-r--r--keyboards/evyd13/eon75/eon75.c (renamed from keyboards/maartenwut/eon75/eon75.c)2
-rw-r--r--keyboards/evyd13/eon75/eon75.h (renamed from keyboards/maartenwut/eon75/eon75.h)2
-rw-r--r--keyboards/evyd13/eon75/info.json (renamed from keyboards/maartenwut/eon75/info.json)0
-rw-r--r--keyboards/evyd13/eon75/keymaps/default/keymap.c (renamed from keyboards/maartenwut/eon75/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/eon75/keymaps/via/keymap.c (renamed from keyboards/maartenwut/eon75/keymaps/via/keymap.c)2
-rw-r--r--keyboards/evyd13/eon75/keymaps/via/rules.mk (renamed from keyboards/maartenwut/eon75/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/eon75/readme.md (renamed from keyboards/maartenwut/eon75/readme.md)4
-rw-r--r--keyboards/evyd13/eon75/rules.mk (renamed from keyboards/maartenwut/eon75/rules.mk)0
-rw-r--r--keyboards/evyd13/eon87/config.h (renamed from keyboards/maartenwut/eon87/config.h)4
-rw-r--r--keyboards/evyd13/eon87/eon87.c (renamed from keyboards/maartenwut/eon87/eon87.c)2
-rw-r--r--keyboards/evyd13/eon87/eon87.h (renamed from keyboards/maartenwut/eon87/eon87.h)2
-rw-r--r--keyboards/evyd13/eon87/info.json (renamed from keyboards/maartenwut/eon87/info.json)0
-rw-r--r--keyboards/evyd13/eon87/keymaps/default/keymap.c (renamed from keyboards/maartenwut/eon87/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/eon87/keymaps/default/readme.md (renamed from keyboards/maartenwut/eon87/keymaps/default/readme.md)0
-rw-r--r--keyboards/evyd13/eon87/keymaps/via/keymap.c (renamed from keyboards/maartenwut/eon87/keymaps/via/keymap.c)2
-rw-r--r--keyboards/evyd13/eon87/keymaps/via/rules.mk (renamed from keyboards/maartenwut/eon87/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/eon87/readme.md (renamed from keyboards/maartenwut/eon87/readme.md)4
-rw-r--r--keyboards/evyd13/eon87/rules.mk (renamed from keyboards/maartenwut/eon87/rules.mk)0
-rw-r--r--keyboards/evyd13/eon95/config.h (renamed from keyboards/maartenwut/eon95/config.h)4
-rw-r--r--keyboards/evyd13/eon95/eon95.c (renamed from keyboards/maartenwut/eon95/eon95.c)2
-rw-r--r--keyboards/evyd13/eon95/eon95.h (renamed from keyboards/maartenwut/eon95/eon95.h)2
-rw-r--r--keyboards/evyd13/eon95/info.json (renamed from keyboards/maartenwut/eon95/info.json)0
-rw-r--r--keyboards/evyd13/eon95/keymaps/default/keymap.c (renamed from keyboards/maartenwut/eon95/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/eon95/keymaps/via/keymap.c (renamed from keyboards/maartenwut/eon95/keymaps/via/keymap.c)2
-rw-r--r--keyboards/evyd13/eon95/keymaps/via/rules.mk (renamed from keyboards/maartenwut/eon95/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/eon95/readme.md (renamed from keyboards/maartenwut/eon95/readme.md)4
-rw-r--r--keyboards/evyd13/eon95/rules.mk (renamed from keyboards/maartenwut/eon95/rules.mk)0
-rw-r--r--keyboards/evyd13/gh80_1800/config.h (renamed from keyboards/maartenwut/gh80_1800/config.h)4
-rw-r--r--keyboards/evyd13/gh80_1800/gh80_1800.c (renamed from keyboards/maartenwut/gh80_1800/gh80_1800.c)2
-rw-r--r--keyboards/evyd13/gh80_1800/gh80_1800.h (renamed from keyboards/maartenwut/gh80_1800/gh80_1800.h)2
-rw-r--r--keyboards/evyd13/gh80_1800/info.json (renamed from keyboards/maartenwut/gh80_1800/info.json)4
-rw-r--r--keyboards/evyd13/gh80_1800/keymaps/default/keymap.c (renamed from keyboards/maartenwut/gh80_1800/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/gh80_1800/keymaps/default/readme.md (renamed from keyboards/maartenwut/gh80_1800/keymaps/default/readme.md)0
-rw-r--r--keyboards/evyd13/gh80_1800/keymaps/via/keymap.c (renamed from keyboards/maartenwut/gh80_1800/keymaps/via/keymap.c)2
-rw-r--r--keyboards/evyd13/gh80_1800/keymaps/via/rules.mk (renamed from keyboards/maartenwut/gh80_1800/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/gh80_1800/readme.md (renamed from keyboards/maartenwut/gh80_1800/readme.md)6
-rw-r--r--keyboards/evyd13/gh80_1800/rules.mk (renamed from keyboards/maartenwut/gh80_1800/rules.mk)0
-rw-r--r--keyboards/evyd13/gh80_3700/config.h (renamed from keyboards/maartenwut/gh80_3700/config.h)4
-rw-r--r--keyboards/evyd13/gh80_3700/gh80_3700.c (renamed from keyboards/maartenwut/gh80_3700/gh80_3700.c)2
-rw-r--r--keyboards/evyd13/gh80_3700/gh80_3700.h (renamed from keyboards/maartenwut/gh80_3700/gh80_3700.h)2
-rw-r--r--keyboards/evyd13/gh80_3700/info.json (renamed from keyboards/maartenwut/gh80_3700/info.json)4
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/default/keymap.c (renamed from keyboards/maartenwut/gh80_3700/keymaps/rgb/keymap.c)2
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/default/readme.md (renamed from keyboards/maartenwut/gh80_3700/keymaps/default/readme.md)0
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/ps2/config.h (renamed from keyboards/maartenwut/gh80_3700/keymaps/ps2/config.h)2
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/ps2/keymap.c (renamed from keyboards/maartenwut/gh80_3700/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/ps2/readme.md (renamed from keyboards/maartenwut/gh80_3700/keymaps/ps2/readme.md)0
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/ps2/rules.mk (renamed from keyboards/maartenwut/gh80_3700/keymaps/ps2/rules.mk)0
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/rgb/config.h (renamed from keyboards/maartenwut/gh80_3700/keymaps/rgb/config.h)2
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/rgb/keymap.c (renamed from keyboards/maartenwut/gh80_3700/keymaps/ps2/keymap.c)2
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/rgb/readme.md (renamed from keyboards/maartenwut/gh80_3700/keymaps/rgb/readme.md)0
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/rgb/rules.mk (renamed from keyboards/maartenwut/gh80_3700/keymaps/rgb/rules.mk)0
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/via/keymap.c (renamed from keyboards/maartenwut/gh80_3700/keymaps/via/keymap.c)2
-rw-r--r--keyboards/evyd13/gh80_3700/keymaps/via/rules.mk (renamed from keyboards/maartenwut/gh80_3700/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/gh80_3700/readme.md (renamed from keyboards/maartenwut/gh80_3700/readme.md)4
-rw-r--r--keyboards/evyd13/gh80_3700/rules.mk (renamed from keyboards/maartenwut/gh80_3700/rules.mk)0
-rw-r--r--keyboards/evyd13/minitomic/config.h224
-rw-r--r--keyboards/evyd13/minitomic/info.json (renamed from keyboards/maartenwut/minitomic/info.json)0
-rw-r--r--keyboards/evyd13/minitomic/keymaps/default/keymap.c (renamed from keyboards/maartenwut/minitomic/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/minitomic/keymaps/default/readme.md (renamed from keyboards/maartenwut/minitomic/keymaps/default/readme.md)0
-rw-r--r--keyboards/evyd13/minitomic/minitomic.c (renamed from keyboards/maartenwut/minitomic/minitomic.c)2
-rw-r--r--keyboards/evyd13/minitomic/minitomic.h (renamed from keyboards/maartenwut/minitomic/minitomic.h)2
-rw-r--r--keyboards/evyd13/minitomic/readme.md (renamed from keyboards/maartenwut/minitomic/readme.md)4
-rw-r--r--keyboards/evyd13/minitomic/rules.mk (renamed from keyboards/maartenwut/minitomic/rules.mk)1
-rw-r--r--keyboards/evyd13/mx5160/config.h224
-rw-r--r--keyboards/evyd13/mx5160/info.json (renamed from keyboards/maartenwut/mx5160/info.json)2
-rw-r--r--keyboards/evyd13/mx5160/keymaps/default/keymap.c (renamed from keyboards/maartenwut/mx5160/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/mx5160/keymaps/default/readme.md (renamed from keyboards/maartenwut/mx5160/keymaps/default/readme.md)0
-rw-r--r--keyboards/evyd13/mx5160/mx5160.c (renamed from keyboards/maartenwut/mx5160/mx5160.c)2
-rw-r--r--keyboards/evyd13/mx5160/mx5160.h (renamed from keyboards/maartenwut/mx5160/mx5160.h)2
-rw-r--r--keyboards/evyd13/mx5160/readme.md (renamed from keyboards/maartenwut/mx5160/readme.md)6
-rw-r--r--keyboards/evyd13/mx5160/rules.mk (renamed from keyboards/maartenwut/mx5160/rules.mk)1
-rw-r--r--keyboards/evyd13/nt660/config.h (renamed from keyboards/maartenwut/nt660/config.h)32
-rw-r--r--keyboards/evyd13/nt660/info.json (renamed from keyboards/maartenwut/nt660/info.json)2
-rw-r--r--keyboards/evyd13/nt660/keymaps/default/keymap.c (renamed from keyboards/maartenwut/nt660/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/nt660/keymaps/evyd13/config.h (renamed from keyboards/maartenwut/nt660/keymaps/maartenwut/config.h)0
-rw-r--r--keyboards/evyd13/nt660/keymaps/evyd13/keymap.c (renamed from keyboards/maartenwut/nt660/keymaps/maartenwut/keymap.c)2
-rw-r--r--keyboards/evyd13/nt660/keymaps/via/keymap.c (renamed from keyboards/maartenwut/nt660/keymaps/via/keymap.c)2
-rw-r--r--keyboards/evyd13/nt660/keymaps/via/rules.mk (renamed from keyboards/maartenwut/nt660/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/nt660/nt660.c (renamed from keyboards/maartenwut/nt660/nt660.c)2
-rw-r--r--keyboards/evyd13/nt660/nt660.h (renamed from keyboards/maartenwut/nt660/nt660.h)2
-rw-r--r--keyboards/evyd13/nt660/readme.md (renamed from keyboards/maartenwut/nt660/readme.md)4
-rw-r--r--keyboards/evyd13/nt660/rules.mk (renamed from keyboards/maartenwut/nt660/rules.mk)1
-rw-r--r--keyboards/evyd13/omrontkl/config.h (renamed from keyboards/maartenwut/omrontkl/config.h)4
-rw-r--r--keyboards/evyd13/omrontkl/info.json (renamed from keyboards/maartenwut/omrontkl/info.json)0
-rw-r--r--keyboards/evyd13/omrontkl/keymaps/default/keymap.c (renamed from keyboards/maartenwut/omrontkl/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/omrontkl/omrontkl.c (renamed from keyboards/maartenwut/omrontkl/omrontkl.c)2
-rw-r--r--keyboards/evyd13/omrontkl/omrontkl.h (renamed from keyboards/maartenwut/omrontkl/omrontkl.h)2
-rw-r--r--keyboards/evyd13/omrontkl/readme.md (renamed from keyboards/maartenwut/omrontkl/readme.md)4
-rw-r--r--keyboards/evyd13/omrontkl/rules.mk (renamed from keyboards/maartenwut/omrontkl/rules.mk)0
-rw-r--r--keyboards/evyd13/plain60/config.h (renamed from keyboards/maartenwut/plain60/config.h)4
-rw-r--r--keyboards/evyd13/plain60/info.json (renamed from keyboards/maartenwut/plain60/info.json)2
-rw-r--r--keyboards/evyd13/plain60/keymaps/audio/config.h (renamed from keyboards/maartenwut/plain60/keymaps/audio/config.h)0
-rw-r--r--keyboards/evyd13/plain60/keymaps/audio/keymap.c (renamed from keyboards/maartenwut/plain60/keymaps/audio/keymap.c)0
-rw-r--r--keyboards/evyd13/plain60/keymaps/audio/rules.mk (renamed from keyboards/maartenwut/plain60/keymaps/audio/rules.mk)0
-rw-r--r--keyboards/evyd13/plain60/keymaps/default/keymap.c (renamed from keyboards/maartenwut/plain60/keymaps/default/keymap.c)0
-rw-r--r--keyboards/evyd13/plain60/keymaps/kwerdenker/config.h (renamed from keyboards/maartenwut/plain60/keymaps/kwerdenker/config.h)0
-rw-r--r--keyboards/evyd13/plain60/keymaps/kwerdenker/keymap.c (renamed from keyboards/maartenwut/plain60/keymaps/kwerdenker/keymap.c)0
-rw-r--r--keyboards/evyd13/plain60/keymaps/kwerdenker/rules.mk (renamed from keyboards/maartenwut/plain60/keymaps/kwerdenker/rules.mk)0
-rw-r--r--keyboards/evyd13/plain60/keymaps/rgb/config.h (renamed from keyboards/maartenwut/plain60/keymaps/rgb/config.h)0
-rw-r--r--keyboards/evyd13/plain60/keymaps/rgb/keymap.c (renamed from keyboards/maartenwut/plain60/keymaps/rgb/keymap.c)0
-rw-r--r--keyboards/evyd13/plain60/keymaps/rgb/rules.mk (renamed from keyboards/maartenwut/plain60/keymaps/rgb/rules.mk)0
-rw-r--r--keyboards/evyd13/plain60/keymaps/via/keymap.c (renamed from keyboards/maartenwut/plain60/keymaps/via/keymap.c)0
-rw-r--r--keyboards/evyd13/plain60/keymaps/via/rules.mk (renamed from keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/plain60/plain60.c (renamed from keyboards/maartenwut/plain60/plain60.c)0
-rw-r--r--keyboards/evyd13/plain60/plain60.h (renamed from keyboards/maartenwut/plain60/plain60.h)0
-rw-r--r--keyboards/evyd13/plain60/readme.md (renamed from keyboards/maartenwut/plain60/readme.md)4
-rw-r--r--keyboards/evyd13/plain60/rules.mk (renamed from keyboards/maartenwut/plain60/rules.mk)0
-rw-r--r--keyboards/evyd13/pockettype/config.h (renamed from keyboards/maartenwut/pockettype/config.h)4
-rw-r--r--keyboards/evyd13/pockettype/info.json (renamed from keyboards/maartenwut/pockettype/info.json)2
-rw-r--r--keyboards/evyd13/pockettype/keymaps/default/keymap.c (renamed from keyboards/maartenwut/pockettype/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/pockettype/keymaps/default/readme.md (renamed from keyboards/maartenwut/pockettype/keymaps/default/readme.md)0
-rw-r--r--keyboards/evyd13/pockettype/pockettype.c (renamed from keyboards/maartenwut/pockettype/pockettype.c)2
-rw-r--r--keyboards/evyd13/pockettype/pockettype.h (renamed from keyboards/maartenwut/pockettype/pockettype.h)2
-rw-r--r--keyboards/evyd13/pockettype/readme.md (renamed from keyboards/maartenwut/pockettype/readme.md)4
-rw-r--r--keyboards/evyd13/pockettype/rules.mk (renamed from keyboards/maartenwut/pockettype/rules.mk)0
-rw-r--r--keyboards/evyd13/quackfire/config.h (renamed from keyboards/maartenwut/quackfire/config.h)4
-rw-r--r--keyboards/evyd13/quackfire/info.json (renamed from keyboards/maartenwut/quackfire/info.json)4
-rw-r--r--keyboards/evyd13/quackfire/keymaps/default/keymap.c (renamed from keyboards/maartenwut/quackfire/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/quackfire/keymaps/via/keymap.c (renamed from keyboards/maartenwut/quackfire/keymaps/via/keymap.c)2
-rw-r--r--keyboards/evyd13/quackfire/keymaps/via/rules.mk (renamed from keyboards/maartenwut/quackfire/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/quackfire/quackfire.c (renamed from keyboards/maartenwut/quackfire/quackfire.c)2
-rw-r--r--keyboards/evyd13/quackfire/quackfire.h (renamed from keyboards/maartenwut/quackfire/quackfire.h)2
-rw-r--r--keyboards/evyd13/quackfire/readme.md (renamed from keyboards/maartenwut/quackfire/readme.md)6
-rw-r--r--keyboards/evyd13/quackfire/rules.mk (renamed from keyboards/maartenwut/quackfire/rules.mk)0
-rw-r--r--keyboards/evyd13/solheim68/config.h (renamed from keyboards/maartenwut/solheim68/config.h)2
-rw-r--r--keyboards/evyd13/solheim68/info.json (renamed from keyboards/maartenwut/solheim68/info.json)4
-rw-r--r--keyboards/evyd13/solheim68/keymaps/default/keymap.c (renamed from keyboards/maartenwut/solheim68/keymaps/default/keymap.c)0
-rw-r--r--keyboards/evyd13/solheim68/keymaps/default/readme.md (renamed from keyboards/maartenwut/solheim68/keymaps/default/readme.md)0
-rw-r--r--keyboards/evyd13/solheim68/readme.md (renamed from keyboards/maartenwut/solheim68/readme.md)8
-rw-r--r--keyboards/evyd13/solheim68/rules.mk (renamed from keyboards/maartenwut/solheim68/rules.mk)0
-rw-r--r--keyboards/evyd13/solheim68/solheim68.c (renamed from keyboards/maartenwut/solheim68/solheim68.c)0
-rw-r--r--keyboards/evyd13/solheim68/solheim68.h (renamed from keyboards/maartenwut/solheim68/solheim68.h)0
-rw-r--r--keyboards/evyd13/ta65/config.h (renamed from keyboards/maartenwut/ta65/config.h)4
-rw-r--r--keyboards/evyd13/ta65/info.json (renamed from keyboards/maartenwut/ta65/info.json)0
-rw-r--r--keyboards/evyd13/ta65/keymaps/default/keymap.c (renamed from keyboards/maartenwut/ta65/keymaps/default/keymap.c)0
-rw-r--r--keyboards/evyd13/ta65/keymaps/default_ansi/keymap.c (renamed from keyboards/maartenwut/ta65/keymaps/default_ansi/keymap.c)0
-rw-r--r--keyboards/evyd13/ta65/keymaps/default_ansi_tsangan/keymap.c (renamed from keyboards/maartenwut/ta65/keymaps/default_ansi_tsangan/keymap.c)0
-rw-r--r--keyboards/evyd13/ta65/keymaps/default_iso/keymap.c (renamed from keyboards/maartenwut/ta65/keymaps/default_iso/keymap.c)0
-rw-r--r--keyboards/evyd13/ta65/keymaps/default_iso_tsangan/keymap.c (renamed from keyboards/maartenwut/ta65/keymaps/default_iso_tsangan/keymap.c)0
-rw-r--r--keyboards/evyd13/ta65/keymaps/evyd13/config.h (renamed from keyboards/maartenwut/ta65/keymaps/maartenwut/config.h)0
-rw-r--r--keyboards/evyd13/ta65/keymaps/evyd13/keymap.c (renamed from keyboards/maartenwut/ta65/keymaps/maartenwut/keymap.c)0
-rw-r--r--keyboards/evyd13/ta65/keymaps/via/keymap.c (renamed from keyboards/maartenwut/ta65/keymaps/via/keymap.c)0
-rw-r--r--keyboards/evyd13/ta65/keymaps/via/rules.mk (renamed from keyboards/maartenwut/plain60/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/ta65/readme.md (renamed from keyboards/maartenwut/ta65/readme.md)2
-rw-r--r--keyboards/evyd13/ta65/rules.mk (renamed from keyboards/maartenwut/ta65/rules.mk)1
-rw-r--r--keyboards/evyd13/ta65/ta65.c (renamed from keyboards/maartenwut/ta65/ta65.c)0
-rw-r--r--keyboards/evyd13/ta65/ta65.h (renamed from keyboards/maartenwut/ta65/ta65.h)0
-rw-r--r--keyboards/evyd13/wasdat/config.h (renamed from keyboards/maartenwut/wasdat/config.h)32
-rw-r--r--keyboards/evyd13/wasdat/info.json (renamed from keyboards/maartenwut/wasdat/info.json)2
-rw-r--r--keyboards/evyd13/wasdat/keymaps/default/keymap.c (renamed from keyboards/maartenwut/wasdat/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/wasdat/keymaps/default/readme.md (renamed from keyboards/maartenwut/wasdat/keymaps/default/readme.md)0
-rw-r--r--keyboards/evyd13/wasdat/keymaps/default_iso/keymap.c (renamed from keyboards/maartenwut/wasdat_code/keymaps/default_iso/keymap.c)2
-rw-r--r--keyboards/evyd13/wasdat/keymaps/default_iso/readme.md (renamed from keyboards/maartenwut/wasdat/keymaps/default_iso/readme.md)0
-rw-r--r--keyboards/evyd13/wasdat/keymaps/konstantin/config.h (renamed from keyboards/maartenwut/wasdat/keymaps/konstantin/config.h)0
-rw-r--r--keyboards/evyd13/wasdat/keymaps/konstantin/keymap.c (renamed from keyboards/maartenwut/wasdat/keymaps/konstantin/keymap.c)0
-rw-r--r--keyboards/evyd13/wasdat/keymaps/konstantin/rules.mk (renamed from keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk)0
-rw-r--r--keyboards/evyd13/wasdat/keymaps/via/keymap.c (renamed from keyboards/maartenwut/wasdat/keymaps/via/keymap.c)0
-rw-r--r--keyboards/evyd13/wasdat/keymaps/via/rules.mk (renamed from keyboards/maartenwut/wasdat/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/wasdat/matrix.c (renamed from keyboards/maartenwut/wasdat/matrix.c)0
-rw-r--r--keyboards/evyd13/wasdat/readme.md (renamed from keyboards/maartenwut/wasdat/readme.md)4
-rw-r--r--keyboards/evyd13/wasdat/rules.mk (renamed from keyboards/maartenwut/wasdat/rules.mk)1
-rw-r--r--keyboards/evyd13/wasdat/wasdat.c (renamed from keyboards/maartenwut/wasdat/wasdat.c)2
-rw-r--r--keyboards/evyd13/wasdat/wasdat.h (renamed from keyboards/maartenwut/wasdat/wasdat.h)2
-rw-r--r--keyboards/evyd13/wasdat_code/config.h (renamed from keyboards/maartenwut/wasdat_code/config.h)32
-rw-r--r--keyboards/evyd13/wasdat_code/info.json (renamed from keyboards/maartenwut/wasdat_code/info.json)2
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/default/keymap.c (renamed from keyboards/maartenwut/wasdat_code/keymaps/default/keymap.c)2
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/default/readme.md (renamed from keyboards/maartenwut/wasdat_code/keymaps/default/readme.md)0
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/default_iso/keymap.c (renamed from keyboards/maartenwut/wasdat/keymaps/default_iso/keymap.c)2
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/default_iso/readme.md (renamed from keyboards/maartenwut/wasdat_code/keymaps/default_iso/readme.md)0
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/via/keymap.c (renamed from keyboards/maartenwut/wasdat_code/keymaps/via/keymap.c)2
-rw-r--r--keyboards/evyd13/wasdat_code/keymaps/via/rules.mk (renamed from keyboards/maartenwut/wasdat_code/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/wasdat_code/matrix.c (renamed from keyboards/maartenwut/wasdat_code/matrix.c)0
-rw-r--r--keyboards/evyd13/wasdat_code/readme.md (renamed from keyboards/maartenwut/wasdat_code/readme.md)4
-rw-r--r--keyboards/evyd13/wasdat_code/rules.mk (renamed from keyboards/maartenwut/wasdat_code/rules.mk)1
-rw-r--r--keyboards/evyd13/wasdat_code/wasdat_code.c (renamed from keyboards/maartenwut/wasdat_code/wasdat_code.c)2
-rw-r--r--keyboards/evyd13/wasdat_code/wasdat_code.h (renamed from keyboards/maartenwut/wasdat_code/wasdat_code.h)2
-rw-r--r--[-rwxr-xr-x]keyboards/evyd13/wonderland/config.h (renamed from keyboards/maartenwut/wonderland/config.h)2
-rw-r--r--keyboards/evyd13/wonderland/info.json (renamed from keyboards/maartenwut/wonderland/info.json)4
-rw-r--r--keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h (renamed from keyboards/maartenwut/wonderland/keymaps/brandonschlack/config.h)0
-rwxr-xr-xkeyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c (renamed from keyboards/maartenwut/wonderland/keymaps/brandonschlack/keymap.c)0
-rwxr-xr-xkeyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk (renamed from keyboards/maartenwut/wonderland/keymaps/brandonschlack/rules.mk)0
-rw-r--r--[-rwxr-xr-x]keyboards/evyd13/wonderland/keymaps/default/keymap.c (renamed from keyboards/maartenwut/wonderland/keymaps/default/keymap.c)0
-rw-r--r--[-rwxr-xr-x]keyboards/evyd13/wonderland/keymaps/keebs/keymap.c (renamed from keyboards/maartenwut/wonderland/keymaps/keebs/keymap.c)0
-rw-r--r--[-rwxr-xr-x]keyboards/evyd13/wonderland/keymaps/rafael-azevedo/keymap.c (renamed from keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/keymap.c)0
-rw-r--r--keyboards/evyd13/wonderland/keymaps/rafael-azevedo/readme.md (renamed from keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/readme.md)0
-rw-r--r--[-rwxr-xr-x]keyboards/evyd13/wonderland/keymaps/rys/keymap.c (renamed from keyboards/maartenwut/wonderland/keymaps/rys/keymap.c)0
-rw-r--r--keyboards/evyd13/wonderland/keymaps/via/keymap.c (renamed from keyboards/maartenwut/wonderland/keymaps/via/keymap.c)0
-rw-r--r--keyboards/evyd13/wonderland/keymaps/via/rules.mk (renamed from keyboards/maartenwut/wonderland/keymaps/via/rules.mk)0
-rw-r--r--keyboards/evyd13/wonderland/readme.md (renamed from keyboards/maartenwut/wonderland/readme.md)4
-rw-r--r--[-rwxr-xr-x]keyboards/evyd13/wonderland/rules.mk (renamed from keyboards/maartenwut/wonderland/rules.mk)0
-rw-r--r--[-rwxr-xr-x]keyboards/evyd13/wonderland/wonderland.c (renamed from keyboards/maartenwut/wonderland/wonderland.c)0
-rw-r--r--[-rwxr-xr-x]keyboards/evyd13/wonderland/wonderland.h (renamed from keyboards/maartenwut/wonderland/wonderland.h)0
-rw-r--r--keyboards/exclusive/e6_rgb/keymaps/allleds/rules.mk2
-rw-r--r--keyboards/exclusive/e6_rgb/rules.mk1
-rw-r--r--keyboards/gami_studio/lex60/config.h4
-rw-r--r--keyboards/geekboards/tester/rules.mk1
-rwxr-xr-xkeyboards/gh60/revc/keymaps/maartenwut/keymap.c47
-rw-r--r--keyboards/hadron/ver3/rules.mk3
-rw-r--r--keyboards/handwired/6macro/rules.mk3
-rw-r--r--keyboards/handwired/colorlice/rules.mk3
-rw-r--r--keyboards/handwired/hnah108/rules.mk3
-rw-r--r--keyboards/handwired/hnah40rgb/rules.mk3
-rwxr-xr-xkeyboards/handwired/maartenwut/config.h40
-rw-r--r--keyboards/handwired/maartenwut/info.json80
-rwxr-xr-xkeyboards/handwired/maartenwut/keymaps/default/keymap.c43
-rwxr-xr-xkeyboards/handwired/maartenwut/maartenwut.c13
-rwxr-xr-xkeyboards/handwired/maartenwut/maartenwut.h23
-rw-r--r--keyboards/handwired/maartenwut/readme.md13
-rwxr-xr-xkeyboards/handwired/maartenwut/rules.mk30
-rw-r--r--keyboards/handwired/p65rgb/rules.mk3
-rw-r--r--keyboards/helix/pico/keymaps/default/readme.md6
-rw-r--r--keyboards/helix/pico/local_features.mk60
-rw-r--r--keyboards/helix/pico/qmk_conf/config.h43
-rw-r--r--keyboards/helix/pico/qmk_conf/rules.mk4
-rw-r--r--keyboards/helix/pico/sc/back/rules.mk1
-rw-r--r--keyboards/helix/pico/sc/rules.mk1
-rw-r--r--keyboards/helix/pico/sc/under/rules.mk1
-rw-r--r--keyboards/helix/rev2/back/oled/rules.mk1
-rw-r--r--keyboards/helix/rev2/keymaps/default/readme.md34
-rw-r--r--keyboards/helix/rev2/keymaps/default/readme_jp.md21
-rw-r--r--keyboards/helix/rev2/keymaps/led_test/rules.mk4
-rw-r--r--keyboards/helix/rev2/keymaps/xulkal/rules.mk3
-rw-r--r--keyboards/helix/rev2/local_features.mk78
-rw-r--r--keyboards/helix/rev2/oled/back/rules.mk1
-rw-r--r--keyboards/helix/rev2/oled/rules.mk1
-rw-r--r--keyboards/helix/rev2/oled/under/rules.mk1
-rw-r--r--keyboards/helix/rev2/qmk_conf/config.h38
-rw-r--r--keyboards/helix/rev2/qmk_conf/rules.mk4
-rw-r--r--keyboards/helix/rev2/rules.mk2
-rw-r--r--keyboards/helix/rev2/sc/back/rules.mk1
-rw-r--r--keyboards/helix/rev2/sc/oled/rules.mk1
-rw-r--r--keyboards/helix/rev2/sc/oledback/rules.mk2
-rw-r--r--keyboards/helix/rev2/sc/oledunder/rules.mk2
-rw-r--r--keyboards/helix/rev2/sc/rules.mk1
-rw-r--r--keyboards/helix/rev2/sc/under/rules.mk1
-rw-r--r--keyboards/helix/rev2/under/oled/rules.mk1
-rw-r--r--keyboards/helix/rev3_4rows/rules.mk3
-rw-r--r--keyboards/helix/rev3_5rows/rules.mk3
-rw-r--r--keyboards/hs60/v1/rules.mk1
-rw-r--r--keyboards/id80/rules.mk1
-rw-r--r--keyboards/idobo/config.h28
-rw-r--r--keyboards/idobo/rules.mk3
-rw-r--r--keyboards/illuminati/is0/config.h28
-rw-r--r--keyboards/illuminati/is0/rules.mk1
-rw-r--r--keyboards/inett_studio/sqx/hotswap/rules.mk3
-rw-r--r--keyboards/inett_studio/sqx/universal/rules.mk3
-rw-r--r--keyboards/jae/j01/config.h32
-rw-r--r--keyboards/jae/j01/j01.c2
-rw-r--r--keyboards/jae/j01/j01.h2
-rw-r--r--keyboards/jae/j01/keymaps/default/keymap.c2
-rw-r--r--keyboards/jae/j01/readme.md2
-rw-r--r--keyboards/jae/j01/rules.mk1
-rw-r--r--keyboards/jisplit89/rules.mk1
-rw-r--r--keyboards/jj40/keymaps/stevexyz/rules.mk1
-rw-r--r--keyboards/jj40/rules.mk1
-rw-r--r--keyboards/jj4x4/rules.mk1
-rw-r--r--keyboards/jnao/rules.mk1
-rw-r--r--keyboards/just60/rules.mk1
-rw-r--r--keyboards/k_type/keymaps/rgb/rules.mk2
-rw-r--r--keyboards/k_type/rules.mk2
-rw-r--r--keyboards/kagamidget/config.h28
-rw-r--r--keyboards/kagamidget/rules.mk1
-rw-r--r--keyboards/kbdclack/kaishi65/config.h28
-rw-r--r--keyboards/kbdfans/kbd19x/config.h27
-rw-r--r--keyboards/kbdfans/kbd19x/rules.mk1
-rw-r--r--keyboards/kbdfans/kbd4x/config.h27
-rw-r--r--keyboards/kbdfans/kbd4x/rules.mk1
-rwxr-xr-xkeyboards/kbdfans/kbd66/keymaps/maartenwut/keymap.c62
-rwxr-xr-xkeyboards/kbdfans/kbd66/keymaps/maartenwut/readme.md3
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/config.h28
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/rules.mk1
-rw-r--r--keyboards/kbdfans/kbd67/mkii_soldered/rules.mk3
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v1/rules.mk3
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v2/rules.mk1
-rw-r--r--keyboards/kbdfans/kbd67/rev1/config.h28
-rw-r--r--keyboards/kbdfans/kbd67/rev1/rules.mk1
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/rules.mk1
-rw-r--r--keyboards/kbdfans/kbd67/rev2/rules.mk1
-rw-r--r--keyboards/kbdfans/kbd6x/config.h27
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/othi/rules.mk1
-rw-r--r--keyboards/kbdfans/kbd6x/rules.mk1
-rw-r--r--keyboards/kbdfans/kbd8x_mk2/config.h28
-rw-r--r--keyboards/kbdfans/kbd8x_mk2/rules.mk1
-rw-r--r--keyboards/kbdfans/kbdmini/rules.mk3
-rw-r--r--keyboards/kbdfans/kbdpad_mk2/config.h28
-rw-r--r--keyboards/kbdfans/kbdpad_mk2/rules.mk1
-rwxr-xr-xkeyboards/kbdfans/maja/rules.mk1
-rw-r--r--keyboards/keebio/bdn9/rev1/rules.mk1
-rw-r--r--keyboards/keebio/bdn9/rev2/rules.mk4
-rw-r--r--keyboards/keebio/choconum/config.h28
-rw-r--r--keyboards/keebio/choconum/rules.mk1
-rw-r--r--keyboards/keebio/ergodicity/config.h28
-rw-r--r--keyboards/keebio/ergodicity/rules.mk1
-rw-r--r--keyboards/keebio/tukey/rules.mk1
-rw-r--r--keyboards/keebwerk/nano_slider/config.h28
-rw-r--r--keyboards/keyboardio/model01/rules.mk3
-rw-r--r--keyboards/keyhive/maypad/config.h26
-rw-r--r--keyboards/keyhive/maypad/rules.mk1
-rw-r--r--keyboards/kingly_keys/romac_plus/rules.mk1
-rwxr-xr-xkeyboards/kmini/config.h2
-rwxr-xr-xkeyboards/kmini/info.json2
-rwxr-xr-xkeyboards/kmini/keymaps/default/keymap.c2
-rwxr-xr-xkeyboards/kmini/kmini.c2
-rwxr-xr-xkeyboards/kmini/kmini.h2
-rwxr-xr-xkeyboards/kmini/matrix.c2
-rw-r--r--keyboards/kv/revt/rules.mk1
-rw-r--r--keyboards/kyria/keymaps/drashna/rules.mk1
-rw-r--r--keyboards/kyria/rules.mk1
-rw-r--r--keyboards/latinpad/rules.mk3
-rw-r--r--keyboards/lattice60/rules.mk1
-rw-r--r--keyboards/launchpad/keymaps/drashna/rules.mk3
-rw-r--r--keyboards/lazydesigners/the30/rules.mk1
-rw-r--r--keyboards/lfkeyboards/lfk78/config.h28
-rw-r--r--keyboards/lfkeyboards/lfkpad/config.h28
-rw-r--r--keyboards/lfkeyboards/lfkpad/rules.mk1
-rw-r--r--keyboards/maartenwut/eon40/config.h254
-rw-r--r--keyboards/maartenwut/minitomic/config.h252
-rw-r--r--keyboards/maartenwut/mx5160/config.h252
-rw-r--r--keyboards/manta60/rules.mk1
-rw-r--r--keyboards/marksard/rhymestone/keymaps/switch_tester/rules.mk2
-rw-r--r--keyboards/marksard/rhymestone/rules.mk2
-rw-r--r--keyboards/massdrop/alt/alt.h2
-rw-r--r--keyboards/massdrop/alt/config_led.c4
-rw-r--r--keyboards/massdrop/alt/keymaps/default_md/keymap.c2
-rw-r--r--keyboards/massdrop/alt/keymaps/reywood/rgb_matrix_user.c4
-rw-r--r--keyboards/massdrop/alt/keymaps/reywood/rules.mk1
-rw-r--r--keyboards/massdrop/alt/rules.mk4
-rw-r--r--keyboards/massdrop/ctrl/config_led.c4
-rw-r--r--keyboards/massdrop/ctrl/ctrl.h2
-rw-r--r--keyboards/massdrop/ctrl/keymaps/default_md/keymap.c2
-rw-r--r--keyboards/massdrop/ctrl/keymaps/endgame/config_led.c4
-rw-r--r--keyboards/massdrop/ctrl/keymaps/matthewrobo/config_led.c6
-rw-r--r--keyboards/massdrop/ctrl/keymaps/responsive_pattern/keymap.c2
-rw-r--r--keyboards/massdrop/ctrl/rules.mk4
-rw-r--r--keyboards/matrix/noah/rules.mk1
-rw-r--r--keyboards/maxipad/rules.mk1
-rw-r--r--keyboards/mc_76k/rules.mk1
-rw-r--r--keyboards/mechkeys/mk60/config.h28
-rw-r--r--keyboards/mechkeys/mk60/rules.mk1
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev1/rules.mk3
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev2/rules.mk3
-rw-r--r--keyboards/mechlovin/adelais/rules.mk1
-rw-r--r--keyboards/mechlovin/delphine/rgb_led/rules.mk3
-rw-r--r--keyboards/mechlovin/hannah60rgb/rev1/rules.mk3
-rw-r--r--keyboards/mechlovin/hannah60rgb/rev2/rules.mk3
-rw-r--r--keyboards/mechlovin/hannah60rgb/rules.mk1
-rw-r--r--keyboards/mechlovin/hannah910/config.h28
-rw-r--r--keyboards/mechlovin/hannah910/rev1/rules.mk1
-rw-r--r--keyboards/mechlovin/infinityce/rules.mk1
-rw-r--r--keyboards/mechlovin/pisces/rules.mk1
-rw-r--r--keyboards/meishi2/config.h27
-rw-r--r--keyboards/meishi2/rules.mk1
-rw-r--r--keyboards/melgeek/mj61/rev1/rules.mk3
-rw-r--r--keyboards/melgeek/mj63/rev1/rules.mk3
-rw-r--r--keyboards/melgeek/mj64/rev1/rules.mk3
-rw-r--r--keyboards/melgeek/mj64/rev2/rules.mk3
-rw-r--r--keyboards/melgeek/mojo75/rev1/rules.mk3
-rw-r--r--keyboards/melgeek/z70ultra/rev1/rules.mk3
-rw-r--r--keyboards/meson/rules.mk1
-rw-r--r--keyboards/miller/gm862/rules.mk4
-rw-r--r--keyboards/miniaxe/config.h28
-rw-r--r--keyboards/miniaxe/rules.mk1
-rw-r--r--keyboards/minidox/rules.mk1
-rw-r--r--keyboards/mint60/config.h27
-rw-r--r--keyboards/mint60/rules.mk1
-rw-r--r--keyboards/montsinger/rebound/rev1/rules.mk1
-rw-r--r--keyboards/montsinger/rebound/rev2/rules.mk1
-rw-r--r--keyboards/montsinger/rebound/rev3/rules.mk1
-rw-r--r--keyboards/moon/rules.mk1
-rw-r--r--keyboards/moonlander/rules.mk3
-rw-r--r--keyboards/mountainblocks/mb17/rules.mk1
-rw-r--r--keyboards/murcielago/rev1/rules.mk1
-rw-r--r--keyboards/nack/rules.mk3
-rw-r--r--keyboards/naked48/keymaps/salicylic/rules.mk2
-rw-r--r--keyboards/naked48/rules.mk2
-rw-r--r--keyboards/namecard2x4/rev1/config.h27
-rw-r--r--keyboards/namecard2x4/rev2/config.h27
-rw-r--r--keyboards/namecard2x4/rules.mk1
-rw-r--r--keyboards/navi10/rev0/rules.mk1
-rw-r--r--keyboards/navi10/rev2/rules.mk1
-rw-r--r--keyboards/navi10/rev3/rules.mk1
-rwxr-xr-xkeyboards/nebula12/config.h6
-rwxr-xr-xkeyboards/nebula12/nebula12.c4
-rw-r--r--keyboards/nek_type_a/rules.mk1
-rw-r--r--keyboards/nightmare/config.h28
-rw-r--r--keyboards/nightmare/rules.mk1
-rwxr-xr-xkeyboards/novelpad/config.h28
-rw-r--r--keyboards/noxary/220/config.h28
-rw-r--r--keyboards/noxary/260/config.h28
-rw-r--r--keyboards/noxary/260/rules.mk1
-rw-r--r--keyboards/noxary/268_2/config.h28
-rw-r--r--keyboards/noxary/268_2/rules.mk1
-rw-r--r--keyboards/noxary/280/config.h28
-rw-r--r--keyboards/noxary/280/rules.mk1
-rw-r--r--keyboards/noxary/x268/config.h28
-rw-r--r--keyboards/noxary/x268/rules.mk1
-rw-r--r--keyboards/oddball/config.h28
-rw-r--r--keyboards/oddball/rules.mk1
-rw-r--r--keyboards/ogre/ergo_single/rules.mk1
-rw-r--r--keyboards/ogre/ergo_split/rules.mk1
-rw-r--r--keyboards/opendeck/32/rev1/rules.mk3
-rw-r--r--keyboards/ortho5by12/rules.mk1
-rw-r--r--keyboards/otaku_split/rev0/config.h28
-rw-r--r--keyboards/otaku_split/rev0/rules.mk1
-rw-r--r--keyboards/otaku_split/rev1/config.h28
-rw-r--r--keyboards/otaku_split/rev1/rules.mk1
-rw-r--r--keyboards/pabile/p18/rules.mk1
-rw-r--r--keyboards/pabile/p40/rules.mk1
-rw-r--r--keyboards/palette1202/rules.mk1
-rw-r--r--keyboards/panc40/rules.mk1
-rw-r--r--keyboards/pdxkbc/config.h28
-rw-r--r--keyboards/pdxkbc/rules.mk1
-rw-r--r--keyboards/percent/booster/rules.mk1
-rw-r--r--keyboards/percent/canoe_gen2/rules.mk3
-rw-r--r--keyboards/pinky/3/config.h28
-rw-r--r--keyboards/pinky/4/config.h28
-rw-r--r--keyboards/pinky/rules.mk1
-rw-r--r--keyboards/planck/ez/glow/rules.mk2
-rw-r--r--keyboards/planck/ez/rules.mk1
-rw-r--r--keyboards/planck/light/rules.mk1
-rw-r--r--keyboards/planck/rev6/rules.mk3
-rw-r--r--keyboards/plume/plume65/config.h2
-rw-r--r--keyboards/plume/plume65/info.json2
-rw-r--r--keyboards/plume/plume65/keymaps/default/keymap.c2
-rw-r--r--keyboards/plume/plume65/keymaps/via/keymap.c2
-rw-r--r--keyboards/plume/plume65/plume65.c2
-rw-r--r--keyboards/plume/plume65/plume65.h2
-rw-r--r--keyboards/plume/plume65/readme.md2
-rw-r--r--keyboards/primekb/prime_l/rules.mk1
-rw-r--r--keyboards/primekb/prime_m/rules.mk1
-rw-r--r--keyboards/primekb/prime_o/rules.mk1
-rw-r--r--keyboards/projectkb/alice/rev1/rules.mk1
-rw-r--r--keyboards/projectkb/alice/rev2/rules.mk1
-rw-r--r--keyboards/quad_h/lb75/rules.mk1
-rw-r--r--keyboards/quantrik/kyuu/config.h28
-rw-r--r--keyboards/quantrik/kyuu/rules.mk1
-rw-r--r--keyboards/qwertyydox/config.h28
-rw-r--r--keyboards/rabbit/rabbit68/config.h28
-rw-r--r--keyboards/rabbit/rabbit68/rules.mk1
-rw-r--r--keyboards/redscarf_i/rules.mk1
-rwxr-xr-xkeyboards/redscarf_iiplus/verb/config.h30
-rwxr-xr-xkeyboards/redscarf_iiplus/verb/keymaps/default/keymap.c2
-rwxr-xr-xkeyboards/redscarf_iiplus/verb/readme.md2
-rwxr-xr-xkeyboards/redscarf_iiplus/verb/rules.mk1
-rwxr-xr-xkeyboards/redscarf_iiplus/verb/verb.c2
-rwxr-xr-xkeyboards/redscarf_iiplus/verb/verb.h2
-rwxr-xr-xkeyboards/redscarf_iiplus/verc/config.h30
-rwxr-xr-xkeyboards/redscarf_iiplus/verc/keymaps/default/keymap.c2
-rwxr-xr-xkeyboards/redscarf_iiplus/verc/rules.mk1
-rwxr-xr-xkeyboards/redscarf_iiplus/verc/verc.c2
-rwxr-xr-xkeyboards/redscarf_iiplus/verc/verc.h2
-rw-r--r--keyboards/redscarf_iiplus/verd/config.h28
-rw-r--r--keyboards/redscarf_iiplus/verd/rules.mk1
-rw-r--r--keyboards/retro_75/config.h28
-rw-r--r--keyboards/retro_75/rules.mk1
-rw-r--r--keyboards/reversestudio/decadepad/rules.mk1
-rwxr-xr-xkeyboards/reviung34/config.h28
-rwxr-xr-xkeyboards/reviung34/rules.mk1
-rw-r--r--keyboards/reviung39/config.h28
-rw-r--r--keyboards/reviung39/rules.mk1
-rw-r--r--keyboards/reviung41/config.h28
-rw-r--r--keyboards/reviung41/rules.mk1
-rw-r--r--keyboards/rgbkb/pan/rules.mk3
-rw-r--r--keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk2
-rw-r--r--keyboards/rgbkb/sol/keymaps/xulkal/rules.mk2
-rw-r--r--keyboards/rgbkb/sol/rev1/rules.mk1
-rw-r--r--keyboards/rgbkb/sol/rev2/rules.mk3
-rw-r--r--keyboards/rgbkb/zygomorph/rules.mk2
-rw-r--r--keyboards/runner3680/rules.mk1
-rw-r--r--keyboards/sck/m0116b/config.h28
-rw-r--r--keyboards/sck/m0116b/rules.mk1
-rw-r--r--keyboards/sck/neiso/rules.mk1
-rw-r--r--keyboards/sck/osa/config.h28
-rw-r--r--keyboards/sck/osa/rules.mk1
-rw-r--r--keyboards/scythe/config.h28
-rw-r--r--keyboards/scythe/rules.mk1
-rw-r--r--keyboards/sentraq/number_pad/rules.mk1
-rw-r--r--keyboards/setta21/keymaps/salicylic/rules.mk2
-rw-r--r--keyboards/setta21/rules.mk2
-rw-r--r--keyboards/shambles/rules.mk1
-rw-r--r--keyboards/shiro/config.h28
-rw-r--r--keyboards/shiro/rules.mk1
-rw-r--r--keyboards/sidderskb/majbritt/rules.mk1
-rw-r--r--keyboards/silverbullet44/config.h28
-rw-r--r--keyboards/silverbullet44/rules.mk4
-rw-r--r--keyboards/snampad/config.h28
-rw-r--r--keyboards/snampad/rules.mk1
-rw-r--r--keyboards/spacetime/config.h28
-rw-r--r--keyboards/spacetime/rules.mk1
-rw-r--r--keyboards/speedo/config.h185
-rw-r--r--keyboards/speedo/info.json13
-rw-r--r--keyboards/speedo/keymaps/default/readme.md1
-rw-r--r--keyboards/speedo/readme.md16
-rw-r--r--keyboards/speedo/rules.mk31
-rw-r--r--keyboards/speedo/speedo.c43
-rw-r--r--keyboards/speedo/speedo.h41
-rw-r--r--keyboards/splitreus62/rules.mk1
-rw-r--r--keyboards/standaside/config.h27
-rw-r--r--keyboards/standaside/rules.mk1
-rwxr-xr-xkeyboards/staryu/rules.mk1
-rw-r--r--keyboards/suihankey/alpha/config.h28
-rw-r--r--keyboards/suihankey/rev1/config.h28
-rw-r--r--keyboards/suihankey/rules.mk1
-rw-r--r--keyboards/suihankey/split/alpha/config.h28
-rw-r--r--keyboards/suihankey/split/rev1/config.h28
-rw-r--r--keyboards/switchplate/southpaw_65/config.h28
-rw-r--r--keyboards/switchplate/southpaw_65/rules.mk1
-rw-r--r--keyboards/switchplate/southpaw_fullsize/rules.mk1
-rwxr-xr-xkeyboards/tada68/keymaps/maartenwut/config.h1
-rwxr-xr-xkeyboards/tada68/keymaps/maartenwut/keymap.c48
-rwxr-xr-xkeyboards/tada68/keymaps/maartenwut/readme.md3
-rwxr-xr-xkeyboards/tada68/rules.mk1
-rw-r--r--keyboards/terrazzo/rules.mk3
-rw-r--r--keyboards/tg4x/config.h28
-rw-r--r--keyboards/tg4x/rules.mk1
-rw-r--r--keyboards/the_royal/liminal/rules.mk1
-rw-r--r--keyboards/thedogkeyboard/config.h28
-rw-r--r--keyboards/thedogkeyboard/rules.mk1
-rw-r--r--keyboards/tmo50/rules.mk1
-rw-r--r--keyboards/tr60w/rules.mk1
-rw-r--r--keyboards/treadstone48/rev1/config.h28
-rw-r--r--keyboards/treadstone48/rev2/config.h28
-rw-r--r--keyboards/treadstone48/rules.mk1
-rw-r--r--keyboards/treasure/type9/config.h27
-rw-r--r--keyboards/treasure/type9/rules.mk1
-rw-r--r--keyboards/ua62/config.h28
-rw-r--r--keyboards/ua62/rules.mk1
-rw-r--r--keyboards/ungodly/launch_pad/rules.mk3
-rw-r--r--keyboards/uranuma/config.h28
-rw-r--r--keyboards/uranuma/rules.mk1
-rw-r--r--keyboards/wallaby/config.h28
-rw-r--r--keyboards/wallaby/rules.mk1
-rw-r--r--keyboards/westfoxtrot/cyclops/config.h26
-rw-r--r--keyboards/westfoxtrot/cyclops/rules.mk1
-rw-r--r--keyboards/westfoxtrot/cypher/rev1/rules.mk1
-rw-r--r--keyboards/westfoxtrot/cypher/rev5/rules.mk1
-rw-r--r--keyboards/wheatfield/blocked65/config.h2
-rw-r--r--keyboards/wheatfield/blocked65/rules.mk1
-rw-r--r--keyboards/wsk/gothic50/rules.mk1
-rw-r--r--keyboards/wsk/gothic70/rules.mk1
-rw-r--r--keyboards/wsk/tkl30/rules.mk1
-rw-r--r--keyboards/xbows/nature/rules.mk3
-rw-r--r--keyboards/xbows/woody/rules.mk3
-rw-r--r--keyboards/xd002/rules.mk1
-rw-r--r--keyboards/xd68/rules.mk1
-rw-r--r--keyboards/xd75/config.h132
-rw-r--r--keyboards/xd75/keymaps/adi/keymap.c98
-rw-r--r--keyboards/xd75/keymaps/arpinfidel/keymap.c28
-rw-r--r--keyboards/xd75/keymaps/atomic_style/keymap.c84
-rw-r--r--keyboards/xd75/keymaps/boy_314/keymap.c70
-rw-r--r--keyboards/xd75/keymaps/bramver/keymap.c84
-rw-r--r--keyboards/xd75/keymaps/c4software_bepo/keymap.c28
-rw-r--r--keyboards/xd75/keymaps/daniel/keymap.c42
-rw-r--r--keyboards/xd75/keymaps/default/keymap.c129
-rw-r--r--keyboards/xd75/keymaps/developper_bepo/keymap.c28
-rw-r--r--keyboards/xd75/keymaps/dyn_macro_tap_dance/keymap.c28
-rw-r--r--keyboards/xd75/keymaps/emilyh/keymap.c84
-rw-r--r--keyboards/xd75/keymaps/fabian/keymap.c98
-rw-r--r--keyboards/xd75/keymaps/french/keymap.c28
-rw-r--r--keyboards/xd75/keymaps/germanized/keymap.c28
-rw-r--r--keyboards/xd75/keymaps/jarred/keymap.c56
-rw-r--r--keyboards/xd75/keymaps/kim-kim-xd73/keymap.c56
-rw-r--r--keyboards/xd75/keymaps/kim-kim/keymap.c56
-rw-r--r--keyboards/xd75/keymaps/kloki/keymap.c70
-rw-r--r--keyboards/xd75/keymaps/markus/keymap.c84
-rw-r--r--keyboards/xd75/keymaps/msiu/keymap.c70
-rw-r--r--keyboards/xd75/keymaps/mtdjr/keymap.c66
-rw-r--r--keyboards/xd75/keymaps/tdl-jturner/keymap.c140
-rw-r--r--keyboards/xd75/keymaps/via/keymap.c112
-rw-r--r--keyboards/xd75/readme.md29
-rw-r--r--keyboards/xd75/rules.mk28
-rw-r--r--keyboards/xd75/xd75.c77
-rw-r--r--keyboards/xd75/xd75.h59
-rw-r--r--keyboards/xd84/config.h28
-rw-r--r--keyboards/xd84/rules.mk1
-rw-r--r--keyboards/xd87/config.h27
-rw-r--r--keyboards/xd87/rules.mk1
-rw-r--r--keyboards/xd96/config.h28
-rw-r--r--keyboards/xd96/rules.mk7
-rw-r--r--keyboards/xelus/dawn60/config.h132
-rw-r--r--keyboards/xelus/dawn60/dawn60.c19
-rw-r--r--keyboards/xelus/dawn60/dawn60.h22
-rw-r--r--keyboards/xelus/dawn60/readme.md2
-rw-r--r--keyboards/xelus/dawn60/rev1/config.h143
-rw-r--r--keyboards/xelus/dawn60/rev1/rev1.c (renamed from keyboards/kbdfans/kbd66/keymaps/maartenwut/config.h)12
-rw-r--r--keyboards/xelus/dawn60/rev1/rev1.h36
-rw-r--r--keyboards/xelus/dawn60/rev1/rules.mk (renamed from keyboards/xelus/dawn60/rules.mk)0
-rw-r--r--keyboards/xelus/valor/rev1/config.h (renamed from keyboards/xelus/valor/config.h)0
-rw-r--r--keyboards/xelus/valor/rev1/keymaps/default/keymap.c (renamed from keyboards/xelus/valor/keymaps/default/keymap.c)0
-rw-r--r--keyboards/xelus/valor/rev1/keymaps/default/readme.md (renamed from keyboards/xelus/valor/keymaps/default/readme.md)0
-rw-r--r--keyboards/xelus/valor/rev1/keymaps/via/keymap.c (renamed from keyboards/xelus/valor/keymaps/via/keymap.c)0
-rw-r--r--keyboards/xelus/valor/rev1/keymaps/via/readme.md (renamed from keyboards/xelus/valor/keymaps/via/readme.md)0
-rw-r--r--keyboards/xelus/valor/rev1/keymaps/via/rules.mk (renamed from keyboards/maartenwut/ta65/keymaps/via/rules.mk)0
-rw-r--r--keyboards/xelus/valor/rev1/readme.md (renamed from keyboards/xelus/valor/readme.md)2
-rw-r--r--keyboards/xelus/valor/rev1/rev1.c (renamed from keyboards/xelus/valor/valor.c)2
-rw-r--r--keyboards/xelus/valor/rev1/rev1.h (renamed from keyboards/xelus/valor/valor.h)0
-rw-r--r--keyboards/xelus/valor/rev1/rules.mk (renamed from keyboards/xelus/valor/rules.mk)0
-rw-r--r--keyboards/xelus/valor_frl_tkl/chconf.h714
-rw-r--r--keyboards/xelus/valor_frl_tkl/config.h66
-rw-r--r--keyboards/xelus/valor_frl_tkl/halconf.h525
-rw-r--r--keyboards/xelus/valor_frl_tkl/keymaps/default/config.h (renamed from keyboards/xd75/keymaps/default/config.h)6
-rw-r--r--keyboards/xelus/valor_frl_tkl/keymaps/default/keymap.c34
-rw-r--r--keyboards/xelus/valor_frl_tkl/keymaps/default/readme.md2
-rw-r--r--keyboards/xelus/valor_frl_tkl/keymaps/via/config.h19
-rw-r--r--keyboards/xelus/valor_frl_tkl/keymaps/via/keymap.c50
-rw-r--r--keyboards/xelus/valor_frl_tkl/keymaps/via/readme.md2
-rw-r--r--keyboards/xelus/valor_frl_tkl/keymaps/via/rules.mk (renamed from keyboards/xelus/valor/keymaps/via/rules.mk)0
-rw-r--r--keyboards/xelus/valor_frl_tkl/mcuconf.h176
-rw-r--r--keyboards/xelus/valor_frl_tkl/readme.md (renamed from keyboards/aeboards/ext65/rev2/readme.md)12
-rw-r--r--keyboards/xelus/valor_frl_tkl/rules.mk24
-rw-r--r--keyboards/xelus/valor_frl_tkl/valor_frl_tkl.c24
-rw-r--r--keyboards/xelus/valor_frl_tkl/valor_frl_tkl.h35
-rw-r--r--keyboards/yatara/drink_me/rules.mk1
-rw-r--r--keyboards/yd60mq/rules.mk1
-rw-r--r--keyboards/yd68/config.h27
-rw-r--r--keyboards/yd68/rules.mk1
-rw-r--r--keyboards/ymdk/ymd09/rules.mk1
-rw-r--r--keyboards/yncognito/batpad/rules.mk3
-rw-r--r--keyboards/yurei/config.h28
-rw-r--r--keyboards/yurei/rules.mk1
-rw-r--r--keyboards/yushakobo/quick7/config.h28
-rw-r--r--keyboards/yushakobo/quick7/rules.mk1
-rw-r--r--keyboards/zfrontier/big_switch/rules.mk1
-rw-r--r--keyboards/zinc/keymaps/default/rules.mk2
-rw-r--r--keyboards/zinc/keymaps/toshi0383/rules.mk2
-rw-r--r--keyboards/zinc/rules.mk3
-rw-r--r--layouts/community/ortho_4x12/drashna/rules.mk2
-rw-r--r--layouts/community/split_3x6_3/bcat/rules.mk2
-rw-r--r--layouts/community/split_3x6_3/drashna/rules.mk2
-rw-r--r--lib/python/milc.py826
-rw-r--r--lib/python/qmk/cli/__init__.py1
-rw-r--r--lib/python/qmk/cli/chibios/__init__.py1
-rw-r--r--lib/python/qmk/cli/chibios/confmigrate.py161
-rwxr-xr-xlib/python/qmk/cli/doctor.py2
-rw-r--r--lib/python/qmk/questions.py183
-rw-r--r--message.mk3
-rw-r--r--platforms/chibios/BLACKPILL_STM32_F401/configs/config.h4
-rw-r--r--platforms/chibios/BLACKPILL_STM32_F411/configs/config.h4
-rw-r--r--platforms/chibios/GENERIC_STM32_F042X6/configs/mcuconf.h168
-rw-r--r--platforms/chibios/GENERIC_STM32_F072XB/board/board.c250
-rw-r--r--platforms/chibios/GENERIC_STM32_F072XB/board/board.h407
-rw-r--r--platforms/chibios/GENERIC_STM32_F072XB/board/board.mk4
-rw-r--r--platforms/chibios/GENERIC_STM32_F072XB/configs/board.h20
-rw-r--r--platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h177
-rw-r--r--platforms/chibios/GENERIC_STM32_F303XC/configs/config.h4
-rw-r--r--platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h209
-rw-r--r--platforms/chibios/common/configs/chconf.h (renamed from platforms/chibios/GENERIC_STM32_F303XC/configs/chconf.h)0
-rw-r--r--platforms/chibios/common/configs/halconf.h (renamed from platforms/chibios/GENERIC_STM32_F303XC/configs/halconf.h)0
-rw-r--r--platforms/chibios/common/ld/MKL26Z64.ld (renamed from platforms/chibios/ld/MKL26Z64.ld)0
-rw-r--r--platforms/chibios/common/ld/STM32F103x8_stm32duino_bootloader.ld (renamed from platforms/chibios/ld/STM32F103x8_stm32duino_bootloader.ld)0
-rw-r--r--quantum/backlight/backlight_avr.c12
-rw-r--r--quantum/backlight/backlight_chibios.c14
-rw-r--r--quantum/config_common.h92
-rw-r--r--quantum/encoder.c24
-rw-r--r--quantum/joystick.h12
-rw-r--r--quantum/led_matrix.c2
-rw-r--r--quantum/led_matrix.h (renamed from quantum/ledmatrix.h)0
-rw-r--r--quantum/led_matrix_drivers.c2
-rw-r--r--quantum/matrix.c35
-rw-r--r--quantum/mcu_selection.mk3
-rw-r--r--quantum/process_keycode/process_auto_shift.c199
-rw-r--r--quantum/process_keycode/process_auto_shift.h1
-rw-r--r--quantum/process_keycode/process_joystick.c8
-rw-r--r--quantum/process_keycode/process_midi.c25
-rw-r--r--quantum/process_keycode/process_midi.h2
-rw-r--r--quantum/process_keycode/process_sequencer.c62
-rw-r--r--quantum/process_keycode/process_sequencer.h21
-rw-r--r--quantum/quantum.c15
-rw-r--r--quantum/quantum.h62
-rw-r--r--quantum/quantum_keycodes.h38
-rw-r--r--quantum/rgb_matrix.c32
-rw-r--r--quantum/rgb_matrix.h9
-rw-r--r--quantum/rgb_matrix_animations/alpha_mods_anim.h4
-rw-r--r--quantum/rgb_matrix_animations/breathing_anim.h2
-rw-r--r--quantum/rgb_matrix_animations/gradient_left_right_anim.h2
-rw-r--r--quantum/rgb_matrix_animations/gradient_up_down_anim.h2
-rw-r--r--quantum/rgb_matrix_animations/jellybean_raindrops_anim.h2
-rw-r--r--quantum/rgb_matrix_animations/raindrops_anim.h2
-rw-r--r--quantum/rgb_matrix_animations/solid_color_anim.h2
-rw-r--r--quantum/rgb_matrix_animations/typing_heatmap_anim.h2
-rw-r--r--quantum/rgb_matrix_runners/effect_runner_dx_dy.h2
-rw-r--r--quantum/rgb_matrix_runners/effect_runner_dx_dy_dist.h2
-rw-r--r--quantum/rgb_matrix_runners/effect_runner_i.h2
-rw-r--r--quantum/rgb_matrix_runners/effect_runner_reactive.h2
-rw-r--r--quantum/rgb_matrix_runners/effect_runner_reactive_splash.h2
-rw-r--r--quantum/rgb_matrix_runners/effect_runner_sin_cos_i.h2
-rw-r--r--quantum/rgblight.c4
-rw-r--r--quantum/sequencer/sequencer.c275
-rw-r--r--quantum/sequencer/sequencer.h122
-rw-r--r--quantum/sequencer/tests/midi_mock.c26
-rw-r--r--quantum/sequencer/tests/midi_mock.h26
-rw-r--r--quantum/sequencer/tests/rules.mk11
-rw-r--r--quantum/sequencer/tests/sequencer_tests.cpp590
-rw-r--r--quantum/sequencer/tests/testlist.mk1
-rw-r--r--quantum/split_common/matrix.c35
-rw-r--r--requirements.txt2
-rw-r--r--show_options.mk1
-rw-r--r--testlist.mk1
-rw-r--r--tmk_core/chibios.mk10
-rw-r--r--tmk_core/common/action.c66
-rw-r--r--tmk_core/common/action_util.c31
-rw-r--r--tmk_core/common/action_util.h7
-rw-r--r--tmk_core/common/arm_atsam/suspend.c2
-rw-r--r--tmk_core/common/chibios/bootloader.c10
-rw-r--r--tmk_core/common/eeconfig.c13
-rw-r--r--tmk_core/common/keyboard.c21
-rw-r--r--tmk_core/common/keyboard.h3
-rw-r--r--tmk_core/common/matrix.h10
-rw-r--r--tmk_core/common/report.h4
-rw-r--r--tmk_core/protocol/arm_atsam.mk6
-rw-r--r--tmk_core/protocol/arm_atsam/arm_atsam_protocol.h2
-rw-r--r--tmk_core/protocol/arm_atsam/main_arm_atsam.c4
-rw-r--r--tmk_core/protocol/arm_atsam/md_rgb_matrix.c (renamed from tmk_core/protocol/arm_atsam/led_matrix.c)12
-rw-r--r--tmk_core/protocol/arm_atsam/md_rgb_matrix.h (renamed from tmk_core/protocol/arm_atsam/led_matrix.h)2
-rw-r--r--tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c (renamed from tmk_core/protocol/arm_atsam/led_matrix_programs.c)2
-rw-r--r--tmk_core/protocol/chibios/main.c11
-rw-r--r--tmk_core/protocol/chibios/usb_main.c81
-rw-r--r--tmk_core/protocol/chibios/usb_main.h3
-rw-r--r--tmk_core/protocol/lufa/lufa.c4
-rw-r--r--tmk_core/protocol/usb_descriptor.c15
-rw-r--r--tmk_core/protocol/usb_descriptor.h20
-rw-r--r--tmk_core/protocol/vusb/main.c4
-rw-r--r--users/tominabox1/rules.mk3
-rw-r--r--users/yanfali/config.h2
-rw-r--r--users/yanfali/rules.mk2
884 files changed, 8114 insertions, 11678 deletions
diff --git a/Makefile b/Makefile
index c851e01e73..c5c71c5a8f 100644
--- a/Makefile
+++ b/Makefile
@@ -272,11 +272,24 @@ endef
define PARSE_RULE
RULE := $1
COMMANDS :=
+ REQUIRE_PLATFORM_KEY :=
# If the rule starts with all, then continue the parsing from
# PARSE_ALL_KEYBOARDS
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
KEYBOARD_RULE=all
$$(eval $$(call PARSE_ALL_KEYBOARDS))
+ else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-avr),true)
+ KEYBOARD_RULE=all
+ REQUIRE_PLATFORM_KEY := avr
+ $$(eval $$(call PARSE_ALL_KEYBOARDS))
+ else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-chibios),true)
+ KEYBOARD_RULE=all
+ REQUIRE_PLATFORM_KEY := chibios
+ $$(eval $$(call PARSE_ALL_KEYBOARDS))
+ else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-arm_atsam),true)
+ KEYBOARD_RULE=all
+ REQUIRE_PLATFORM_KEY := arm_atsam
+ $$(eval $$(call PARSE_ALL_KEYBOARDS))
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
$$(eval $$(call PARSE_TEST))
# If the rule starts with the name of a known keyboard, then continue
@@ -447,7 +460,7 @@ define PARSE_KEYMAP
# Format it in bold
KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR)
# Specify the variables that we are passing forward to submake
- MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM)
+ MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) REQUIRE_PLATFORM_KEY=$$(REQUIRE_PLATFORM_KEY)
# And the first part of the make command
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET)
# The message to display
@@ -466,6 +479,8 @@ define BUILD
LOG=$$$$($$(MAKE_CMD) $$(MAKE_VARS) SILENT=true 2>&1) ; \
if [ $$$$? -gt 0 ]; \
then $$(PRINT_ERROR_PLAIN); \
+ elif [ "$$$$LOG" = "skipped" ] ; \
+ then $$(PRINT_SKIPPED_PLAIN); \
elif [ "$$$$LOG" != "" ] ; \
then $$(PRINT_WARNING_PLAIN); \
else \
@@ -637,12 +652,13 @@ else
endif
ifndef SKIP_VERSION
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
+else
+BUILD_DATE := 2020-01-01-00:00:00
+endif
+
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define CHIBIOS_VERSION "$(CHIBIOS_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
$(shell echo '#define CHIBIOS_CONTRIB_VERSION "$(CHIBIOS_CONTRIB_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
-else
-BUILD_DATE := NA
-endif
include $(ROOT_DIR)/testlist.mk
diff --git a/build_keyboard.mk b/build_keyboard.mk
index b4e1efd9ee..e87dcb8f22 100644
--- a/build_keyboard.mk
+++ b/build_keyboard.mk
@@ -317,6 +317,13 @@ SRC += $(TMK_COMMON_SRC)
OPT_DEFS += $(TMK_COMMON_DEFS)
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
+SKIP_COMPILE := no
+ifneq ($(REQUIRE_PLATFORM_KEY),)
+ ifneq ($(REQUIRE_PLATFORM_KEY),$(PLATFORM_KEY))
+ SKIP_COMPILE := yes
+ endif
+endif
+
include $(TMK_PATH)/$(PLATFORM_KEY).mk
ifneq ($(strip $(PROTOCOL)),)
include $(TMK_PATH)/protocol/$(strip $(shell echo $(PROTOCOL) | tr '[:upper:]' '[:lower:]')).mk
@@ -352,7 +359,13 @@ $(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) $(GFXINC)
$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
# Default target.
+ifeq ($(SKIP_COMPILE),no)
all: build check-size
+else
+all:
+ echo "skipped" >&2
+endif
+
build: elf cpfirmware
check-size: build
objs-size: build
diff --git a/build_test.mk b/build_test.mk
index d13d9a515b..e705c6a3ba 100644
--- a/build_test.mk
+++ b/build_test.mk
@@ -49,6 +49,7 @@ endif
include common_features.mk
include $(TMK_PATH)/common.mk
+include $(QUANTUM_PATH)/sequencer/tests/rules.mk
include $(QUANTUM_PATH)/serial_link/tests/rules.mk
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include build_full_test.mk
diff --git a/common.mk b/common.mk
index aea29a7a20..c13b5e2768 100644
--- a/common.mk
+++ b/common.mk
@@ -21,4 +21,5 @@ COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras
COMMON_VPATH += $(QUANTUM_PATH)/audio
COMMON_VPATH += $(QUANTUM_PATH)/process_keycode
COMMON_VPATH += $(QUANTUM_PATH)/api
+COMMON_VPATH += $(QUANTUM_PATH)/sequencer
COMMON_VPATH += $(DRIVER_PATH)
diff --git a/common_features.mk b/common_features.mk
index ba66c53248..8ac53ec45a 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -21,6 +21,11 @@ QUANTUM_SRC += \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c
+ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), yes)
+ OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
+ CONSOLE_ENABLE = yes
+endif
+
ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
OPT_DEFS += -DAPI_SYSEX_ENABLE
OPT_DEFS += -DAPI_ENABLE
@@ -39,6 +44,13 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/audio/luts.c
endif
+ifeq ($(strip $(SEQUENCER_ENABLE)), yes)
+ OPT_DEFS += -DSEQUENCER_ENABLE
+ MUSIC_ENABLE = yes
+ SRC += $(QUANTUM_DIR)/sequencer/sequencer.c
+ SRC += $(QUANTUM_DIR)/process_keycode/process_sequencer.c
+endif
+
ifeq ($(strip $(MIDI_ENABLE)), yes)
OPT_DEFS += -DMIDI_ENABLE
MUSIC_ENABLE = yes
@@ -156,12 +168,14 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
endif
endif
-VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
LED_MATRIX_ENABLE ?= no
-ifneq ($(strip $(LED_MATRIX_ENABLE)), no)
- ifeq ($(filter $(LED_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),)
- $(error LED_MATRIX_ENABLE="$(LED_MATRIX_ENABLE)" is not a valid matrix type)
+VALID_LED_MATRIX_TYPES := IS31FL3731 custom
+# TODO: IS31FL3733 IS31FL3737 IS31FL3741
+
+ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
+ ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
+ $(error LED_MATRIX_DRIVER="$(LED_MATRIX_DRIVER)" is not a valid matrix type)
else
BACKLIGHT_ENABLE = yes
BACKLIGHT_DRIVER = custom
@@ -169,21 +183,22 @@ ifneq ($(strip $(LED_MATRIX_ENABLE)), no)
SRC += $(QUANTUM_DIR)/led_matrix.c
SRC += $(QUANTUM_DIR)/led_matrix_drivers.c
endif
-endif
-ifeq ($(strip $(LED_MATRIX_ENABLE)), IS31FL3731)
- OPT_DEFS += -DIS31FL3731
- COMMON_VPATH += $(DRIVER_PATH)/issi
- SRC += is31fl3731-simple.c
- QUANTUM_LIB_SRC += i2c_master.c
+ ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3731)
+ OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ COMMON_VPATH += $(DRIVER_PATH)/issi
+ SRC += is31fl3731-simple.c
+ QUANTUM_LIB_SRC += i2c_master.c
+ endif
endif
RGB_MATRIX_ENABLE ?= no
+VALID_RGB_MATRIX_TYPES := IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
-ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
-ifeq ($(filter $(RGB_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),)
- $(error RGB_MATRIX_ENABLE="$(RGB_MATRIX_ENABLE)" is not a valid matrix type)
-endif
+ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
+ ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
+ $(error "$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
+ endif
OPT_DEFS += -DRGB_MATRIX_ENABLE
ifneq (,$(filter $(MCU), atmega16u2 atmega32u2))
# ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
@@ -194,51 +209,47 @@ endif
SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c
CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
-endif
-
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
- RGB_MATRIX_ENABLE := IS31FL3731
-endif
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3731)
- OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
- COMMON_VPATH += $(DRIVER_PATH)/issi
- SRC += is31fl3731.c
- QUANTUM_LIB_SRC += i2c_master.c
-endif
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3731)
+ OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ COMMON_VPATH += $(DRIVER_PATH)/issi
+ SRC += is31fl3731.c
+ QUANTUM_LIB_SRC += i2c_master.c
+ endif
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3733)
- OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE
- COMMON_VPATH += $(DRIVER_PATH)/issi
- SRC += is31fl3733.c
- QUANTUM_LIB_SRC += i2c_master.c
-endif
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3733)
+ OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ COMMON_VPATH += $(DRIVER_PATH)/issi
+ SRC += is31fl3733.c
+ QUANTUM_LIB_SRC += i2c_master.c
+ endif
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3737)
- OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE
- COMMON_VPATH += $(DRIVER_PATH)/issi
- SRC += is31fl3737.c
- QUANTUM_LIB_SRC += i2c_master.c
-endif
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3737)
+ OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ COMMON_VPATH += $(DRIVER_PATH)/issi
+ SRC += is31fl3737.c
+ QUANTUM_LIB_SRC += i2c_master.c
+ endif
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3741)
- OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE
- COMMON_VPATH += $(DRIVER_PATH)/issi
- SRC += is31fl3741.c
- QUANTUM_LIB_SRC += i2c_master.c
-endif
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3741)
+ OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ COMMON_VPATH += $(DRIVER_PATH)/issi
+ SRC += is31fl3741.c
+ QUANTUM_LIB_SRC += i2c_master.c
+ endif
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), WS2812)
- OPT_DEFS += -DWS2812
- WS2812_DRIVER_REQUIRED := yes
-endif
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), WS2812)
+ OPT_DEFS += -DWS2812
+ WS2812_DRIVER_REQUIRED := yes
+ endif
-ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes)
- OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB
-endif
+ ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes)
+ OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB
+ endif
-ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes)
- OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER
+ ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes)
+ OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER
+ endif
endif
ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes)
@@ -444,11 +455,14 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
# Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called.
# Unused functions are pruned away, which is why we can add multiple drivers here without bloat.
ifeq ($(PLATFORM),AVR)
- QUANTUM_LIB_SRC += i2c_master.c \
- i2c_slave.c
+ ifneq ($(NO_I2C),yes)
+ QUANTUM_LIB_SRC += i2c_master.c \
+ i2c_slave.c
+ endif
endif
SERIAL_DRIVER ?= bitbang
+ OPT_DEFS += -DSERIAL_DRIVER_$(strip $(shell echo $(SERIAL_DRIVER) | tr '[:lower:]' '[:upper:]'))
ifeq ($(strip $(SERIAL_DRIVER)), bitbang)
QUANTUM_LIB_SRC += serial.c
else
diff --git a/docs/ChangeLog/20201128.md b/docs/ChangeLog/20201128.md
new file mode 100644
index 0000000000..86abd384df
--- /dev/null
+++ b/docs/ChangeLog/20201128.md
@@ -0,0 +1,150 @@
+# QMK Breaking Change - 2020 Nov 28 Changelog
+
+Four times a year QMK runs a process for merging Breaking Changes. A Breaking Change is any change which modifies how QMK behaves in a way that is incompatible or potentially dangerous. We limit these changes to 4 times per year so that users can have confidence that updating their QMK tree will not break their keymaps.
+
+
+## Changes Requiring User Action :id=changes-requiring-user-action
+
+### Relocated Keyboards :id-relocated-keyboards
+
+#### Reduce Helix keyboard build variation ([#8669](https://github.com/qmk/qmk_firmware/pull/8669))
+
+The build commands for the Helix keyboard are:
+
+```
+make <helix_build_name>:<keymap_name>
+```
+
+For `<helix_build_name>`, specify the one in the rightmost column of the table below, such as `helix`,` helix/pico`.
+
+| before Oct 17 2019 | Oct 17 2019 | Mar 10 2020 | Nov 28 2020 |
+| ---------------------|-------------------------|-------------------------| ------------------------|
+| helix/rev1 | helix/rev1 | helix/rev1 | helix/rev1 |
+| helix/pico | helix/pico | helix/pico | helix/pico |
+| | helix/pico/back | helix/pico/back | helix/pico/back |
+| | helix/pico/under | helix/pico/under | helix/pico/under |
+| | | helix/pico/sc | -- |
+| | | helix/pico/sc/back | helix/pico/sc |
+| | | helix/pico/sc/under | -- |
+| helix/rev2 (=helix) | helix/rev2 (=helix) | helix/rev2 (=helix) | -- |
+| | helix/rev2/back | helix/rev2/back | -- |
+| | helix/rev2/back/oled | helix/rev2/back/oled | ( --> helix/rev2/back) |
+| | helix/rev2/oled | helix/rev2/oled | helix/rev2 (=helix) |
+| | helix/rev2/oled/back | helix/rev2/oled/back | helix/rev2/back |
+| | helix/rev2/oled/under | helix/rev2/oled/under | helix/rev2/under |
+| | | helix/rev2/sc | -- |
+| | | helix/rev2/sc/back | -- |
+| | | helix/rev2/sc/oled | -- |
+| | | helix/rev2/sc/oledback | helix/rev2/sc |
+| | | helix/rev2/sc/oledunder | -- |
+| | | helix/rev2/sc/under | -- |
+| | helix/rev2/under | helix/rev2/under | -- |
+| | helix/rev2/under/oled | helix/rev2/under/oled | ( --> helix/rev2/under) |
+
+#### Update the Speedo firmware for v3.0 ([#10657](https://github.com/qmk/qmk_firmware/pull/10657))
+
+The Speedo keyboard has moved to `cozykeys/speedo/v2` as the designer prepares to release the Speedo v3.0.
+
+| Previous Name | New Name |
+| :------------ | :------------------------- |
+| speedo | cozykeys/speedo/v2 |
+| -- | cozykeys/speedo/v3 **new** |
+
+#### Maartenwut/Maarten name change to evyd13/Evy ([#10274](https://github.com/qmk/qmk_firmware/pull/10274))
+
+Maartenwut has rebranded as @evyd13, and all released Maartenwut boards have moved.
+
+| Previous Name | New Name |
+| :--------------------- | :----------------- |
+| maartenwut/atom47/rev2 | evyd13/atom47/rev2 |
+| maartenwut/atom47/rev3 | evyd13/atom47/rev3 |
+| maartenwut/eon40 | evyd13/eon40 |
+| maartenwut/eon65 | evyd13/eon65 |
+| maartenwut/eon75 | evyd13/eon75 |
+| maartenwut/eon87 | evyd13/eon87 |
+| maartenwut/eon95 | evyd13/eon95 |
+| maartenwut/gh80_1800 | evyd13/gh80_1800 |
+| maartenwut/gh80_3700 | evyd13/gh80_3700 |
+| maartenwut/minitomic | evyd13/minitomic |
+| maartenwut/mx5160 | evyd13/mx5160 |
+| maartenwut/nt660 | evyd13/nt660 |
+| maartenwut/omrontkl | evyd13/omrontkl |
+| maartenwut/plain60 | evyd13/plain60 |
+| maartenwut/pockettype | evyd13/pockettype |
+| maartenwut/quackfire | evyd13/quackfire |
+| maartenwut/solheim68 | evyd13/solheim68 |
+| maartenwut/ta65 | evyd13/ta65 |
+| maartenwut/wasdat | evyd13/wasdat |
+| maartenwut/wasdat_code | evyd13/wasdat_code |
+| maartenwut/wonderland | evyd13/wonderland |
+
+#### Xelus Valor and Dawn60 Refactors ([#10512](https://github.com/qmk/qmk_firmware/pull/10512), [#10584](https://github.com/qmk/qmk_firmware/pull/10584))
+
+The Valor and Dawn60 keyboards by Xelus22 both now require their revisions to be specified when compiling.
+
+| Previous Name | New Name |
+| :------------ | :---------------- |
+| xelus/dawn60 | xelus/dawn60/rev1 |
+| xelus/valor | xelus/valor/rev1 |
+
+
+### Updated Keyboard Codebases :id=keyboard-updates
+
+#### AEboards EXT65 Refactor ([#10820](https://github.com/qmk/qmk_firmware/pull/10820))
+
+The EXT65 codebase has been reworked so keymaps can be used with either revision.
+
+
+## Core Changes :id=core-changes
+
+### Fixes :id=core-fixes
+
+* Reconnect the USB if users wake up a computer from the keyboard to restore the USB state ([#10088](https://github.com/qmk/qmk_firmware/pull/10088))
+* Fix cursor position bug in oled_write_raw functions ([#10800](https://github.com/qmk/qmk_firmware/pull/10800))
+
+### Additions and Enhancements :id=core-additions
+
+* Allow MATRIX_ROWS to be greater than 32 ([#10183](https://github.com/qmk/qmk_firmware/pull/10183))
+* Add support for soft serial to ATmega32U2 ([#10204](https://github.com/qmk/qmk_firmware/pull/10204))
+* Allow direct control of MIDI velocity value ([#9940](https://github.com/qmk/qmk_firmware/pull/9940))
+* Joystick 16-bit support ([#10439](https://github.com/qmk/qmk_firmware/pull/10439))
+* Allow encoder resolutions to be set per encoder ([#10259](https://github.com/qmk/qmk_firmware/pull/10259))
+* Share button state from mousekey to pointing_device ([#10179](https://github.com/qmk/qmk_firmware/pull/10179))
+* Add advanced/efficient RGB Matrix Indicators ([#8564](https://github.com/qmk/qmk_firmware/pull/8564))
+* OLED display update interval support ([#10388](https://github.com/qmk/qmk_firmware/pull/10388))
+* Per-Key Retro Tapping ([#10622](https://github.com/qmk/qmk_firmware/pull/10622))
+* Allow backlight duty cycle limit ([#10260](https://github.com/qmk/qmk_firmware/pull/10260))
+* Add step sequencer feature ([#9703](https://github.com/qmk/qmk_firmware/pull/9703))
+* Added `add_oneshot_mods` & `del_oneshot_mods` ([#10549](https://github.com/qmk/qmk_firmware/pull/10549))
+* Add AT90USB support for serial.c ([#10706](https://github.com/qmk/qmk_firmware/pull/10706))
+* Auto shift: support repeats and early registration (#9826)
+
+### Clean-ups and Optimizations :id=core-optimizations
+
+* Haptic and solenoid cleanup ([#9700](https://github.com/qmk/qmk_firmware/pull/9700))
+* XD75 cleanup ([#10524](https://github.com/qmk/qmk_firmware/pull/10524))
+* Minor change to behavior allowing display updates to continue between task ticks ([#10750](https://github.com/qmk/qmk_firmware/pull/10750))
+* Change some GPIO manipulations in matrix.c to be atomic ([#10491](https://github.com/qmk/qmk_firmware/pull/10491))
+* combine repeated lines of code for ATmega32U2, ATmega16U2, ATmega328 and ATmega328P ([#10837](https://github.com/qmk/qmk_firmware/pull/10837))
+* Remove references to HD44780 ([#10735](https://github.com/qmk/qmk_firmware/pull/10735))
+
+
+## QMK Infrastructure and Internals :id=qmk-internals
+
+* Add ability to build a subset of all keyboards based on platform. ([#10420](https://github.com/qmk/qmk_firmware/pull/10420))
+* Initialise EEPROM drivers at startup, instead of upon first execution ([#10438](https://github.com/qmk/qmk_firmware/pull/10438))
+* Make bootloader_jump weak for ChibiOS ([#10417](https://github.com/qmk/qmk_firmware/pull/10417))
+* Support for STM32 GPIOF,G,H,I,J,K ([#10206](https://github.com/qmk/qmk_firmware/pull/10206))
+* Add milc as a dependency and remove the installed milc ([#10563](https://github.com/qmk/qmk_firmware/pull/10563))
+* ChibiOS upgrade: early init conversions ([#10214](https://github.com/qmk/qmk_firmware/pull/10214))
+* ChibiOS upgrade: configuration file migrator ([#9952](https://github.com/qmk/qmk_firmware/pull/9952))
+* Add definition based on currently-selected serial driver. ([#10716](https://github.com/qmk/qmk_firmware/pull/10716))
+* Allow for modification of output RGB values when using rgblight/rgb_matrix. ([#10638](https://github.com/qmk/qmk_firmware/pull/10638))
+* Allow keyboards/keymaps to execute code at each main loop iteration ([#10530](https://github.com/qmk/qmk_firmware/pull/10530))
+* qmk cformat ([#10767](https://github.com/qmk/qmk_firmware/pull/10767))
+* Add a Make variable to easily enable DEBUG_MATRIX_SCAN_RATE on the command line ([#10824](https://github.com/qmk/qmk_firmware/pull/10824))
+* update Chibios OS USB for the OTG driver ([#8893](https://github.com/qmk/qmk_firmware/pull/8893))
+* Fixup version.h writing when using `SKIP_VERSION=yes` ([#10972](https://github.com/qmk/qmk_firmware/pull/10972), [#10974](https://github.com/qmk/qmk_firmware/pull/10974))
+* Rename ledmatrix.h to match .c file ([#7949](https://github.com/qmk/qmk_firmware/pull/7949))
+* Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER ([#10231](https://github.com/qmk/qmk_firmware/pull/10231))
+* Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER ([#10840](https://github.com/qmk/qmk_firmware/pull/10840))
diff --git a/docs/_summary.md b/docs/_summary.md
index 44030d812d..19498f6a20 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -80,6 +80,7 @@
* [One Shot Keys](one_shot_keys.md)
* [Pointing Device](feature_pointing_device.md)
* [Raw HID](feature_rawhid.md)
+ * [Sequencer](feature_sequencer.md)
* [Swap Hands](feature_swap_hands.md)
* [Tap Dance](feature_tap_dance.md)
* [Tap-Hold Configuration](tap_hold.md)
@@ -119,6 +120,7 @@
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
* History
+ * [2020 Nov 28](ChangeLog/20201128.md)
* [2020 Aug 29](ChangeLog/20200829.md)
* [2020 May 30](ChangeLog/20200530.md)
* [2020 Feb 29](ChangeLog/20200229.md)
diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md
index abace81648..3ee14f2bfc 100644
--- a/docs/breaking_changes.md
+++ b/docs/breaking_changes.md
@@ -6,6 +6,7 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## What has been included in past Breaking Changes?
+* [2020 Nov 28](ChangeLog/20201128.md)
* [2020 Aug 29](ChangeLog/20200829.md)
* [2020 May 30](ChangeLog/20200530.md)
* [2020 Feb 29](ChangeLog/20200229.md)
@@ -13,16 +14,16 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## When is the next Breaking Change?
-The next Breaking Change is scheduled for November 28, 2020.
+The next Breaking Change is scheduled for February 27, 2021.
### Important Dates
-* [x] 2020 Aug 29 - `develop` is created. It will be rebased weekly.
-* [ ] 2020 Oct 31 - `develop` closed to new PR's.
-* [ ] 2020 Oct 31 - Call for testers.
-* [ ] 2020 Nov 26 - `master` is locked, no PR's merged.
-* [ ] 2020 Nov 28 - Merge `develop` to `master`.
-* [ ] 2020 Nov 28 - `master` is unlocked. PR's can be merged again.
+* [x] 2020 Nov 28 - `develop` is created. Each push to `master` is subsequently merged to `develop`
+* [ ] 2021 Jan 30 - `develop` closed to new PR's.
+* [ ] 2021 Jan 30 - Call for testers.
+* [ ] 2021 Feb 25 - `master` is locked, no PR's merged.
+* [ ] 2021 Feb 27 - Merge `develop` to `master`.
+* [ ] 2021 Feb 27 - `master` is unlocked. PR's can be merged again.
## What changes will be included?
@@ -39,21 +40,6 @@ Criteria for acceptance:
This section documents various processes we use when running the Breaking Changes process.
-## Rebase `develop` from `master`
-
-This is run every Friday while `develop` is open.
-
-Process:
-
-```
-cd qmk_firmware
-git checkout master
-git pull --ff-only
-git checkout develop
-git rebase master
-git push --force
-```
-
## Creating the `develop` branch
This happens immediately after the previous `develop` branch is merged.
diff --git a/docs/config_options.md b/docs/config_options.md
index f9b1cc6578..3a4d7c87c5 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -135,6 +135,8 @@ If you define these options you will enable the associated feature, which may in
* `#define RETRO_TAPPING`
* tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release
* See [Retro Tapping](tap_hold.md#retro-tapping) for details
+* `#define RETRO_TAPPING_PER_KEY`
+ * enables handling for per key `RETRO_TAPPING` settings
* `#define TAPPING_TOGGLE 2`
* how many taps before triggering the toggle
* `#define PERMISSIVE_HOLD`
diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md
index a459042b32..694b421e79 100644
--- a/docs/custom_quantum_functions.md
+++ b/docs/custom_quantum_functions.md
@@ -185,6 +185,14 @@ This function gets called at every matrix scan, which is basically as often as t
You should use this function if you need custom matrix scanning code. It can also be used for custom status output (such as LEDs or a display) or other functionality that you want to trigger regularly even when the user isn't typing.
+# Keyboard housekeeping
+
+* Keyboard/Revision: `void housekeeping_task_kb(void)`
+* Keymap: `void housekeeping_task_user(void)`
+
+This function gets called at the end of all QMK processing, before starting the next iteration. You can safely assume that QMK has dealt with the last matrix scan at the time that these functions are invoked -- layer states have been updated, USB reports have been sent, LEDs have been updated, and displays have been drawn.
+
+Similar to `matrix_scan_*`, these are called as often as the MCU can handle. To keep your board responsive, it's suggested to do as little as possible during these function calls, potentially throtting their behaviour if you do indeed require implementing something special.
# Keyboard Idling/Wake Code
diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md
index b21a7690d9..8e04d9dd38 100644
--- a/docs/feature_auto_shift.md
+++ b/docs/feature_auto_shift.md
@@ -15,25 +15,31 @@ problem.
When you tap a key, it stays depressed for a short period of time before it is
then released. This depressed time is a different length for everyone. Auto Shift
defines a constant `AUTO_SHIFT_TIMEOUT` which is typically set to twice your
-normal pressed state time. When you press a key, a timer starts and then stops
-when you release the key. If the time depressed is greater than or equal to the
-`AUTO_SHIFT_TIMEOUT`, then a shifted version of the key is emitted. If the time
-is less than the `AUTO_SHIFT_TIMEOUT` time, then the normal state is emitted.
+normal pressed state time. When you press a key, a timer starts, and if you
+have not released the key after the `AUTO_SHIFT_TIMEOUT` period, then a shifted
+version of the key is emitted. If the time is less than the `AUTO_SHIFT_TIMEOUT`
+time, or you press another key, then the normal state is emitted.
+
+If `AUTO_SHIFT_REPEAT` is defined, there is keyrepeat support. Holding the key
+down will repeat the shifted key, though this can be disabled with
+`AUTO_SHIFT_NO_AUTO_REPEAT`. If you want to repeat the normal key, then tap it
+once then immediately (within `TAPPING_TERM`) hold it down again (this works
+with the shifted value as well if auto-repeat is disabled).
## Are There Limitations to Auto Shift?
Yes, unfortunately.
-1. Key repeat will cease to work. For example, before if you wanted 20 'a'
- characters, you could press and hold the 'a' key for a second or two. This no
- longer works with Auto Shift because it is timing your depressed time instead
- of emitting a depressed key state to your operating system.
-2. You will have characters that are shifted when you did not intend on shifting, and
- other characters you wanted shifted, but were not. This simply comes down to
- practice. As we get in a hurry, we think we have hit the key long enough
- for a shifted version, but we did not. On the other hand, we may think we are
- tapping the keys, but really we have held it for a little longer than
- anticipated.
+You will have characters that are shifted when you did not intend on shifting, and
+other characters you wanted shifted, but were not. This simply comes down to
+practice. As we get in a hurry, we think we have hit the key long enough for a
+shifted version, but we did not. On the other hand, we may think we are tapping
+the keys, but really we have held it for a little longer than anticipated.
+
+Additionally, with keyrepeat the desired shift state can get mixed up. It will
+always 'belong' to the last key pressed. For example, keyrepeating a capital
+and then tapping something lowercase (whether or not it's an Auto Shift key)
+will result in the capital's *key* still being held, but shift not.
## How Do I Enable Auto Shift?
@@ -103,6 +109,14 @@ Do not Auto Shift numeric keys, zero through nine.
Do not Auto Shift alpha characters, which include A through Z.
+### AUTO_SHIFT_REPEAT (simple define)
+
+Enables keyrepeat.
+
+### AUTO_SHIFT_NO_AUTO_REPEAT (simple define)
+
+Disables automatically keyrepeating when `AUTO_SHIFT_TIMEOUT` is exceeded.
+
## Using Auto Shift Setup
This will enable you to define three keys temporarily to increase, decrease and report your `AUTO_SHIFT_TIMEOUT`.
diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md
index 6bb2bbed84..a558af64e1 100644
--- a/docs/feature_backlight.md
+++ b/docs/feature_backlight.md
@@ -62,14 +62,15 @@ Valid driver values are `pwm`, `software`, `custom` or `no`. See below for help
To configure the backlighting, `#define` these in your `config.h`:
-|Define |Default |Description |
-|---------------------|-------------|-------------------------------------------------------------------------------------|
-|`BACKLIGHT_PIN` |*Not defined*|The pin that controls the LED(s) |
-|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) |
-|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
-|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported |
-|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
-|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low|
+| Define | Default | Description |
+|------------------------|---------------|-------------------------------------------------------------------------------------------------------------------|
+| `BACKLIGHT_PIN` | *Not defined* | The pin that controls the LED(s) |
+| `BACKLIGHT_LEVELS` | `3` | The number of brightness levels (maximum 31 excluding off) |
+| `BACKLIGHT_CAPS_LOCK` | *Not defined* | Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
+| `BACKLIGHT_BREATHING` | *Not defined* | Enable backlight breathing, if supported |
+| `BREATHING_PERIOD` | `6` | The length of one backlight "breath" in seconds |
+| `BACKLIGHT_ON_STATE` | `1` | The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
+| `BACKLIGHT_LIMIT_VAL ` | `255` | The maximum duty cycle of the backlight -- `255` allows for full brightness, any lower will decrease the maximum. |
Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`.
diff --git a/docs/feature_encoders.md b/docs/feature_encoders.md
index 8f9ba1a80a..e2cafdac48 100644
--- a/docs/feature_encoders.md
+++ b/docs/feature_encoders.md
@@ -32,13 +32,20 @@ Additionally, the resolution, which defines how many pulses the encoder register
#define ENCODER_RESOLUTION 4
```
+It can also be defined per-encoder, by instead defining:
+
+```c
+#define ENCODER_RESOLUTIONS { 4, 2 }
+```
+
## Split Keyboards
-If you are using different pinouts for the encoders on each half of a split keyboard, you can define the pinout for the right half like this:
+If you are using different pinouts for the encoders on each half of a split keyboard, you can define the pinout (and optionally, resolutions) for the right half like this:
```c
#define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a }
#define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b }
+#define ENCODER_RESOLUTIONS_RIGHT { 2, 4 }
```
## Callbacks
diff --git a/docs/feature_haptic_feedback.md b/docs/feature_haptic_feedback.md
index ff7337a51a..64b66310b6 100644
--- a/docs/feature_haptic_feedback.md
+++ b/docs/feature_haptic_feedback.md
@@ -42,14 +42,21 @@ First you will need a build a circuit to drive the solenoid through a mosfet as
[Wiring diagram provided by Adafruit](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf)
-| Settings | Default | Description |
-|--------------------------|---------------|-------------------------------------------------------|
-|`SOLENOID_PIN` | *Not defined* |Configures the pin that the Solenoid is connected to. |
-|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the solenoid. |
-|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. |
-|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. |
-
-?> Dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds.
+| Settings | Default | Description |
+|----------------------------|----------------------|-------------------------------------------------------|
+|`SOLENOID_PIN` | *Not defined* |Configures the pin that the Solenoid is connected to. |
+|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the solenoid. |
+|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. |
+|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. |
+|`SOLENOID_DWELL_STEP_SIZE` | `1` ms |The step size to use when `HPT_DWL*` keycodes are sent |
+|`SOLENOID_DEFAULT_BUZZ` | `0` (disabled) |On HPT_RST buzz is set "on" if this is "1" |
+|`SOLENOID_BUZZ_ACTUATED` | `SOLENOID_MIN_DWELL` |Actuated-time when the solenoid is in buzz mode |
+|`SOLENOID_BUZZ_NONACTUATED` | `SOLENOID_MIN_DWELL` |Non-Actuated-time when the solenoid is in buzz mode |
+
+* If solenoid buzz is off, then dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds.
+* If solenoid buzz is on, then dwell time sets the length of the buzz, while `SOLENOID_BUZZ_ACTUATED` and `SOLENOID_BUZZ_NONACTUATED` set the (non-)actuation times withing the buzz period.
+* With the current implementation, for any of the above time settings, the precision of these settings may be affected by how fast the keyboard is able to scan the matrix.
+ Therefore, if the keyboards scanning routine is slow, it may be preferable to set `SOLENOID_DWELL_STEP_SIZE` to a value slightly smaller than the time it takes to scan the keyboard.
Beware that some pins may be powered during bootloader (ie. A13 on the STM32F303 chip) and will result in the solenoid kept in the on state through the whole flashing process. This may overheat and damage the solenoid. If you find that the pin the solenoid is connected to is triggering the solenoid during bootloader/DFU, select another pin.
diff --git a/docs/feature_joystick.md b/docs/feature_joystick.md
index be3c781f6c..12bbf5b35e 100644
--- a/docs/feature_joystick.md
+++ b/docs/feature_joystick.md
@@ -141,6 +141,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
```
+### Axis Resolution
+
+By default, the resolution of each axis is 8 bit, giving a range of -127 to +127. If you need higher precision, you can increase it by defining eg. `JOYSTICK_AXES_RESOLUTION 12` in your `config.h`. The resolution must be between 8 and 16.
+
+Note that the supported AVR MCUs have a 10-bit ADC, and 12-bit for most STM32 MCUs.
+
### Triggering Joystick Buttons
Joystick buttons are normal Quantum keycodes, defined as `JS_BUTTON0` to `JS_BUTTON31`, depending on the number of buttons you have configured.
diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md
index 372407b90c..a4e9d7eb83 100644
--- a/docs/feature_led_matrix.md
+++ b/docs/feature_led_matrix.md
@@ -10,7 +10,8 @@ If you want to use RGB LED's you should use the [RGB Matrix Subsystem](feature_r
There is basic support for addressable LED matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`:
- LED_MATRIX_ENABLE = IS31FL3731
+ LED_MATRIX_ENABLE = yes
+ LED_MATRIX_DRIVER = IS31FL3731
You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_<N>` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
diff --git a/docs/feature_mouse_keys.md b/docs/feature_mouse_keys.md
index a6b46bc151..ffde133892 100644
--- a/docs/feature_mouse_keys.md
+++ b/docs/feature_mouse_keys.md
@@ -140,3 +140,7 @@ To use constant speed mode, you must at least define `MK_COMBINED` in your keyma
```c
#define MK_COMBINED
```
+
+## Use with PS/2 Mouse and Pointing Device
+
+Mouse keys button state is shared with [PS/2 mouse](feature_ps2_mouse.md) and [pointing device](feature_pointing_device.md) so mouse keys button presses can be used for clicks and drags.
diff --git a/docs/feature_oled_driver.md b/docs/feature_oled_driver.md
index 9f0ef1664b..44202487f1 100644
--- a/docs/feature_oled_driver.md
+++ b/docs/feature_oled_driver.md
@@ -150,6 +150,7 @@ void oled_task_user(void) {
|`OLED_IC` |`OLED_IC_SSD1306`|Set to `OLED_IC_SH1106` if you're using the SH1106 OLED controller. |
|`OLED_COLUMN_OFFSET` |`0` |(SH1106 only.) Shift output to the right this many pixels.<br />Useful for 128x64 displays centered on a 132x64 SH1106 IC.|
|`OLED_BRIGHTNESS` |`255` |The default brightness level of the OLED, from 0 to 255. |
+|`OLED_UPDATE_INTERVAL` |`0` |Set the time interval for updating the OLED display in ms. This will improve the matrix scan rate. |
## 128x64 & Custom sized OLED Displays
diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md
index b70a5fcba0..f8b0653551 100644
--- a/docs/feature_rgb_matrix.md
+++ b/docs/feature_rgb_matrix.md
@@ -11,7 +11,8 @@ If you want to use single color LED's you should use the [LED Matrix Subsystem](
There is basic support for addressable RGB matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`:
```makefile
-RGB_MATRIX_ENABLE = IS31FL3731
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = IS31FL3731
```
Configure the hardware via your `config.h`:
@@ -62,7 +63,8 @@ Where `Cx_y` is the location of the LED in the matrix defined by [the datasheet]
There is basic support for addressable RGB matrix lighting with the I2C IS31FL3733 RGB controller. To enable it, add this to your `rules.mk`:
```makefile
-RGB_MATRIX_ENABLE = IS31FL3733
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = IS31FL3733
```
Configure the hardware via your `config.h`:
@@ -112,7 +114,8 @@ Where `X_Y` is the location of the LED in the matrix defined by [the datasheet](
There is basic support for addressable RGB matrix lighting with a WS2811/WS2812{a,b,c} addressable LED strand. To enable it, add this to your `rules.mk`:
```makefile
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
```
Configure the hardware via your `config.h`:
@@ -482,6 +485,14 @@ void rgb_matrix_indicators_kb(void) {
}
```
+In addition, there are the advanced indicator functions. These are aimed at those with heavily customized displays, where rendering every LED per cycle is expensive. Such as some of the "drashna" layouts. This includes a special macro to help make this easier to use: `RGB_MATRIX_INDICATOR_SET_COLOR(i, r, g, b)`.
+
+```c
+void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue);
+}
+```
+
### Suspended state :id=suspended-state
To use the suspend feature, make sure that `#define RGB_DISABLE_WHEN_USB_SUSPENDED true` is added to the `config.h` file.
diff --git a/docs/feature_sequencer.md b/docs/feature_sequencer.md
new file mode 100644
index 0000000000..8c8587a9b8
--- /dev/null
+++ b/docs/feature_sequencer.md
@@ -0,0 +1,88 @@
+# Sequencer
+
+Since QMK has experimental support for MIDI, you can now turn your keyboard into a [step sequencer](https://en.wikipedia.org/wiki/Music_sequencer#Step_sequencers)!
+
+!> **IMPORTANT:** This feature is highly experimental, it has only been tested on a Planck EZ so far. Also, the scope will be limited to support the drum machine use-case to start with.
+
+## Enable the step sequencer
+
+Add the following line to your `rules.mk`:
+
+```make
+SEQUENCER_ENABLE = yes
+```
+
+By default the sequencer has 16 steps, but you can override this setting in your `config.h`:
+
+```c
+#define SEQUENCER_STEPS 32
+```
+
+## Tracks
+
+You can program up to 8 independent tracks with the step sequencer. Select the tracks you want to edit, enable or disable some steps, and start the sequence!
+
+## Resolutions
+
+While the tempo defines the absolute speed at which the sequencer goes through the steps, the resolution defines the granularity of these steps (from coarser to finer).
+
+|Resolution |Description |
+|---------- |----------- |
+|`SQ_RES_2` |Every other beat |
+|`SQ_RES_2T` |Every 1.5 beats |
+|`SQ_RES_4` |Every beat |
+|`SQ_RES_4T` |Three times per 2 beats|
+|`SQ_RES_8` |Twice per beat |
+|`SQ_RES_8T` |Three times per beat |
+|`SQ_RES_16` |Four times per beat |
+|`SQ_RES_16T` |Six times per beat |
+|`SQ_RES_32` |Eight times per beat |
+
+## Keycodes
+
+|Keycode |Description |
+|------- |----------- |
+|`SQ_ON` |Start the step sequencer |
+|`SQ_OFF` |Stop the step sequencer |
+|`SQ_TOG` |Toggle the step sequencer playback |
+|`SQ_SALL`|Enable all the steps |
+|`SQ_SCLR`|Disable all the steps |
+|`SQ_S(n)`|Toggle the step `n` |
+|`SQ_TMPD`|Decrease the tempo |
+|`SQ_TMPU`|Increase the tempo |
+|`SQ_R(n)`|Set the resolution to n |
+|`SQ_RESD`|Change to the slower resolution |
+|`SQ_RESU`|Change to the faster resolution |
+|`SQ_T(n)`|Set `n` as the only active track or deactivate all |
+
+## Functions
+
+|Function |Description |
+|-------- |----------- |
+|`bool is_sequencer_on(void);` |Return whether the sequencer is playing |
+|`void sequencer_toggle(void);` |Toggle the step sequencer playback |
+|`void sequencer_on(void);` |Start the step sequencer |
+|`void sequencer_off(void);` |Stop the step sequencer |
+|`bool is_sequencer_step_on(uint8_t step);` |Return whether the step is currently enabled |
+|`void sequencer_set_step(uint8_t step, bool value);` |Enable or disable the step |
+|`void sequencer_set_step_on();` |Enable the step |
+|`void sequencer_set_step_off();` |Disable the step |
+|`void sequencer_toggle_step(uint8_t step);` |Toggle the step |
+|`void sequencer_set_all_steps(bool value);` |Enable or disable all the steps |
+|`void sequencer_set_all_steps_on();` |Enable all the steps |
+|`void sequencer_set_all_steps_off();` |Disable all the steps |
+|`uint8_t sequencer_get_tempo(void);` |Return the current tempo |
+|`void sequencer_set_tempo(uint8_t tempo);` |Set the tempo to `tempo` (between 1 and 255) |
+|`void sequencer_increase_tempo(void);` |Increase the tempo |
+|`void sequencer_decrease_tempo(void);` |Decrease the tempo |
+|`sequencer_resolution_t sequencer_get_resolution(void);` |Return the current resolution |
+|`void sequencer_set_resolution(sequencer_resolution_t resolution);` |Set the resolution to `resolution` |
+|`void sequencer_increase_resolution(void);` |Change to the faster resolution |
+|`void sequencer_decrease_resolution(void);` |Change to the slower resolution |
+|`bool is_sequencer_track_active(uint8_t track);` |Return whether the track is active |
+|`void sequencer_set_track_activation(uint8_t track, bool value);` |Activate or deactivate the `track` |
+|`void sequencer_toggle_track_activation(uint8_t track);` |Toggle the `track` |
+|`void sequencer_activate_track(uint8_t track);` |Activate the `track` |
+|`void sequencer_deactivate_track(uint8_t track);` |Deactivate the `track` |
+|`void sequencer_toggle_single_active_track(uint8_t track);` |Set `track` as the only active track or deactivate all |
+
diff --git a/docs/internals_gpio_control.md b/docs/internals_gpio_control.md
index 48eaf8875b..7c2228949b 100644
--- a/docs/internals_gpio_control.md
+++ b/docs/internals_gpio_control.md
@@ -21,3 +21,22 @@ The following functions can provide basic control of GPIOs and are found in `qua
## Advanced Settings :id=advanced-settings
Each microcontroller can have multiple advanced settings regarding its GPIO. This abstraction layer does not limit the use of architecture-specific functions. Advanced users should consult the datasheet of their desired device and include any needed libraries. For AVR, the standard avr/io.h library is used; for STM32, the ChibiOS [PAL library](http://chibios.sourceforge.net/docs3/hal/group___p_a_l.html) is used.
+
+## Atomic Operation
+
+The above functions are not always guaranteed to work atomically. Therefore, if you want to prevent interruptions in the middle of operations when using multiple combinations of the above functions, use the following `ATOMIC_BLOCK_FORCEON` macro.
+
+eg.
+```c
+void some_function() {
+ // some process
+ ATOMIC_BLOCK_FORCEON {
+ // Atomic Processing
+ }
+ // some process
+}
+```
+
+`ATOMIC_BLOCK_FORCEON` forces interrupts to be disabled before the block is executed, without regard to whether they are enabled or disabled. Then, after the block is executed, the interrupt is enabled.
+
+Note that `ATOMIC_BLOCK_FORCEON` can therefore be used if you know that interrupts are enabled before the execution of the block, or if you know that it is OK to enable interrupts at the completion of the block.
diff --git a/docs/ja/feature_led_matrix.md b/docs/ja/feature_led_matrix.md
index b2595f9989..e7b60f594b 100644
--- a/docs/ja/feature_led_matrix.md
+++ b/docs/ja/feature_led_matrix.md
@@ -15,7 +15,8 @@ RGB LED を使ã„ãŸã„å ´åˆã¯ã€ä»£ã‚ã‚Šã« [RGB マトリックスサブシ
I2C IS31FL3731 RGB コントローラを使ã£ãŸã‚¢ãƒ‰ãƒ¬ã‚¹æŒ‡å®šå¯èƒ½ãª LED マトリックスライトã®ãŸã‚ã®åŸºæœ¬çš„ãªã‚µãƒãƒ¼ãƒˆãŒã‚ã‚Šã¾ã™:有効ã«ã™ã‚‹ã«ã¯ã€`rules.mk` ã«ä»¥ä¸‹ã‚’追加ã—ã¾ã™:
- LED_MATRIX_ENABLE = IS31FL3731
+ LED_MATRIX_ENABLE = yes
+ LED_MATRIX_DRIVER = IS31FL3731
1ã‹ã‚‰4個㮠IS31FL3731 IC を使ã†ã“ã¨ãŒã§ãã¾ã™ã€‚キーボード上ã«å­˜åœ¨ã—ãªã„ IC ã® `LED_DRIVER_ADDR_<N>` 定義を指定ã—ãªã„ã§ãã ã•ã„。`config.h` ã«ä»¥ä¸‹ã®é …目を定義ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™:
diff --git a/docs/tap_hold.md b/docs/tap_hold.md
index 9ffbfde8fc..aacff40042 100644
--- a/docs/tap_hold.md
+++ b/docs/tap_hold.md
@@ -179,6 +179,25 @@ Holding and releasing a dual function key without pressing another key will resu
For instance, holding and releasing `LT(2, KC_SPACE)` without hitting another key will result in nothing happening. With this enabled, it will send `KC_SPACE` instead.
+For more granular control of this feature, you can add the following to your `config.h`:
+
+```c
+#define RETRO_TAPPING_PER_KEY
+```
+
+You can then add the following function to your keymap:
+
+```c
+bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LT(2, KC_SPACE):
+ return true;
+ default:
+ return false;
+ }
+}
+```
+
## Why do we include the key record for the per key functions?
One thing that you may notice is that we include the key record for all of the "per key" functions, and may be wondering why we do that.
diff --git a/drivers/avr/serial.c b/drivers/avr/serial.c
index c27cbfdd0a..526a0946b2 100644
--- a/drivers/avr/serial.c
+++ b/drivers/avr/serial.c
@@ -20,50 +20,111 @@
#ifdef SOFT_SERIAL_PIN
-# ifdef __AVR_ATmega32U4__
-// if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial.
-# ifdef USE_AVR_I2C
-# if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1
-# error Using ATmega32U4 I2C, so can not use PD0, PD1
-# endif
+# if !(defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
+# error serial.c is not supported for the currently selected MCU
+# endif
+// if using ATmega32U4/2, AT90USBxxx I2C, can not use PD0 and PD1 in soft serial.
+# if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__)
+# if defined(USE_AVR_I2C) && (SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1)
+# error Using I2C, so can not use PD0, PD1
# endif
+# endif
+// PD0..PD3, common config
+# if SOFT_SERIAL_PIN == D0
+# define EIMSK_BIT _BV(INT0)
+# define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01)))
+# define SERIAL_PIN_INTERRUPT INT0_vect
+# define EICRx EICRA
+# elif SOFT_SERIAL_PIN == D1
+# define EIMSK_BIT _BV(INT1)
+# define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11)))
+# define SERIAL_PIN_INTERRUPT INT1_vect
+# define EICRx EICRA
+# elif SOFT_SERIAL_PIN == D2
+# define EIMSK_BIT _BV(INT2)
+# define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21)))
+# define SERIAL_PIN_INTERRUPT INT2_vect
+# define EICRx EICRA
+# elif SOFT_SERIAL_PIN == D3
+# define EIMSK_BIT _BV(INT3)
+# define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31)))
+# define SERIAL_PIN_INTERRUPT INT3_vect
+# define EICRx EICRA
+# endif
-# define setPinInputHigh(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
-# define setPinOutput(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF))
-# define writePinHigh(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
-# define writePinLow(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF))
-# define readPin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF)))
-
-# if SOFT_SERIAL_PIN >= D0 && SOFT_SERIAL_PIN <= D3
-# if SOFT_SERIAL_PIN == D0
-# define EIMSK_BIT _BV(INT0)
-# define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01)))
-# define SERIAL_PIN_INTERRUPT INT0_vect
-# elif SOFT_SERIAL_PIN == D1
-# define EIMSK_BIT _BV(INT1)
-# define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11)))
-# define SERIAL_PIN_INTERRUPT INT1_vect
-# elif SOFT_SERIAL_PIN == D2
-# define EIMSK_BIT _BV(INT2)
-# define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21)))
-# define SERIAL_PIN_INTERRUPT INT2_vect
-# elif SOFT_SERIAL_PIN == D3
-# define EIMSK_BIT _BV(INT3)
-# define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31)))
-# define SERIAL_PIN_INTERRUPT INT3_vect
-# endif
+// ATmegaxxU2 specific config
+# if defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__)
+// PD4(INT5), PD6(INT6), PD7(INT7), PC7(INT4)
+# if SOFT_SERIAL_PIN == D4
+# define EIMSK_BIT _BV(INT5)
+# define EICRx_BIT (~(_BV(ISC50) | _BV(ISC51)))
+# define SERIAL_PIN_INTERRUPT INT5_vect
+# define EICRx EICRB
+# elif SOFT_SERIAL_PIN == D6
+# define EIMSK_BIT _BV(INT6)
+# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
+# define SERIAL_PIN_INTERRUPT INT6_vect
+# define EICRx EICRB
+# elif SOFT_SERIAL_PIN == D7
+# define EIMSK_BIT _BV(INT7)
+# define EICRx_BIT (~(_BV(ISC70) | _BV(ISC71)))
+# define SERIAL_PIN_INTERRUPT INT7_vect
+# define EICRx EICRB
+# elif SOFT_SERIAL_PIN == C7
+# define EIMSK_BIT _BV(INT4)
+# define EICRx_BIT (~(_BV(ISC40) | _BV(ISC41)))
+# define SERIAL_PIN_INTERRUPT INT4_vect
+# define EICRx EICRB
+# endif
+# endif
+
+// ATmegaxxU4 specific config
+# if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)
+// PE6(INT6)
+# if SOFT_SERIAL_PIN == E6
+# define EIMSK_BIT _BV(INT6)
+# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
+# define SERIAL_PIN_INTERRUPT INT6_vect
+# define EICRx EICRB
+# endif
+# endif
+
+// AT90USBxxx specific config
+# if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__)
+// PE4..PE7(INT4..INT7)
+# if SOFT_SERIAL_PIN == E4
+# define EIMSK_BIT _BV(INT4)
+# define EICRx_BIT (~(_BV(ISC40) | _BV(ISC41)))
+# define SERIAL_PIN_INTERRUPT INT4_vect
+# define EICRx EICRB
+# elif SOFT_SERIAL_PIN == E5
+# define EIMSK_BIT _BV(INT5)
+# define EICRx_BIT (~(_BV(ISC50) | _BV(ISC51)))
+# define SERIAL_PIN_INTERRUPT INT5_vect
+# define EICRx EICRB
# elif SOFT_SERIAL_PIN == E6
# define EIMSK_BIT _BV(INT6)
# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
# define SERIAL_PIN_INTERRUPT INT6_vect
-# else
-# error invalid SOFT_SERIAL_PIN value
+# define EICRx EICRB
+# elif SOFT_SERIAL_PIN == E7
+# define EIMSK_BIT _BV(INT7)
+# define EICRx_BIT (~(_BV(ISC70) | _BV(ISC71)))
+# define SERIAL_PIN_INTERRUPT INT7_vect
+# define EICRx EICRB
# endif
+# endif
-# else
-# error serial.c now support ATmega32U4 only
+# ifndef SERIAL_PIN_INTERRUPT
+# error invalid SOFT_SERIAL_PIN value
# endif
+# define setPinInputHigh(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
+# define setPinOutput(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF))
+# define writePinHigh(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
+# define writePinLow(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF))
+# define readPin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF)))
+
# define ALWAYS_INLINE __attribute__((always_inline))
# define NO_INLINE __attribute__((noinline))
# define _delay_sub_us(x) __builtin_avr_delay_cycles(x)
@@ -210,15 +271,9 @@ void soft_serial_target_init(SSTD_t *sstd_table, int sstd_table_size) {
Transaction_table_size = (uint8_t)sstd_table_size;
serial_input_with_pullup();
- // Enable INT0-INT3,INT6
+ // Enable INT0-INT7
EIMSK |= EIMSK_BIT;
-# if SOFT_SERIAL_PIN == E6
- // Trigger on falling edge of INT6
- EICRB &= EICRx_BIT;
-# else
- // Trigger on falling edge of INT0-INT3
- EICRA &= EICRx_BIT;
-# endif
+ EICRx &= EICRx_BIT;
}
// Used by the sender to synchronize timing with the reciver.
diff --git a/drivers/chibios/i2c_master.c b/drivers/chibios/i2c_master.c
index 4bd8e2af76..fc4bb2ab37 100644
--- a/drivers/chibios/i2c_master.c
+++ b/drivers/chibios/i2c_master.c
@@ -58,18 +58,23 @@ static i2c_status_t chibios_to_qmk(const msg_t* status) {
}
__attribute__((weak)) void i2c_init(void) {
- // Try releasing special pins for a short time
- palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT);
- palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT);
+ static bool is_initialised = false;
+ if (!is_initialised) {
+ is_initialised = true;
- chThdSleepMilliseconds(10);
+ // Try releasing special pins for a short time
+ palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT);
+ palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT);
+
+ chThdSleepMilliseconds(10);
#if defined(USE_GPIOV1)
- palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, I2C1_SCL_PAL_MODE);
- palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, I2C1_SDA_PAL_MODE);
+ palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, I2C1_SCL_PAL_MODE);
+ palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, I2C1_SDA_PAL_MODE);
#else
- palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
- palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
+ palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
+ palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
#endif
+ }
}
i2c_status_t i2c_start(uint8_t address) {
diff --git a/drivers/chibios/spi_master.c b/drivers/chibios/spi_master.c
index 552ac663c1..5aa60742e3 100644
--- a/drivers/chibios/spi_master.c
+++ b/drivers/chibios/spi_master.c
@@ -22,21 +22,26 @@ static pin_t currentSlavePin = NO_PIN;
static SPIConfig spiConfig = {false, NULL, 0, 0, 0, 0};
__attribute__((weak)) void spi_init(void) {
- // Try releasing special pins for a short time
- palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_INPUT);
- palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_INPUT);
- palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_INPUT);
+ static bool is_initialised = false;
+ if (!is_initialised) {
+ is_initialised = true;
- chThdSleepMilliseconds(10);
+ // Try releasing special pins for a short time
+ palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_INPUT);
+ palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_INPUT);
+ palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_INPUT);
+
+ chThdSleepMilliseconds(10);
#if defined(USE_GPIOV1)
- palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
- palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
- palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
+ palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
+ palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
+ palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
#else
- palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
- palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
- palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
+ palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_ALTERNATE(SPI_SCK_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
+ palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_ALTERNATE(SPI_MOSI_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
+ palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_ALTERNATE(SPI_MISO_PAL_MODE) | PAL_STM32_OTYPE_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
#endif
+ }
}
bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) {
diff --git a/drivers/eeprom/eeprom_i2c.c b/drivers/eeprom/eeprom_i2c.c
index ca8af3da51..4210f06f9f 100644
--- a/drivers/eeprom/eeprom_i2c.c
+++ b/drivers/eeprom/eeprom_i2c.c
@@ -42,14 +42,6 @@
# include "debug.h"
#endif // DEBUG_EEPROM_OUTPUT
-static inline void init_i2c_if_required(void) {
- static int done = 0;
- if (!done) {
- i2c_init();
- done = 1;
- }
-}
-
static inline void fill_target_address(uint8_t *buffer, const void *addr) {
uintptr_t p = (uintptr_t)addr;
for (int i = 0; i < EXTERNAL_EEPROM_ADDRESS_SIZE; ++i) {
@@ -58,7 +50,7 @@ static inline void fill_target_address(uint8_t *buffer, const void *addr) {
}
}
-void eeprom_driver_init(void) {}
+void eeprom_driver_init(void) { i2c_init(); }
void eeprom_driver_erase(void) {
#if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT)
@@ -80,7 +72,6 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) {
uint8_t complete_packet[EXTERNAL_EEPROM_ADDRESS_SIZE];
fill_target_address(complete_packet, addr);
- init_i2c_if_required();
i2c_transmit(EXTERNAL_EEPROM_I2C_ADDRESS((uintptr_t)addr), complete_packet, EXTERNAL_EEPROM_ADDRESS_SIZE, 100);
i2c_receive(EXTERNAL_EEPROM_I2C_ADDRESS((uintptr_t)addr), buf, len, 100);
@@ -98,7 +89,6 @@ void eeprom_write_block(const void *buf, void *addr, size_t len) {
uint8_t * read_buf = (uint8_t *)buf;
uintptr_t target_addr = (uintptr_t)addr;
- init_i2c_if_required();
while (len > 0) {
uintptr_t page_offset = target_addr % EXTERNAL_EEPROM_PAGE_SIZE;
int write_length = EXTERNAL_EEPROM_PAGE_SIZE - page_offset;
diff --git a/drivers/eeprom/eeprom_spi.c b/drivers/eeprom/eeprom_spi.c
index 7b6416eafb..182731d82f 100644
--- a/drivers/eeprom/eeprom_spi.c
+++ b/drivers/eeprom/eeprom_spi.c
@@ -55,14 +55,6 @@
# include "debug.h"
#endif // CONSOLE_ENABLE
-static void init_spi_if_required(void) {
- static int done = 0;
- if (!done) {
- spi_init();
- done = 1;
- }
-}
-
static bool spi_eeprom_start(void) { return spi_start(EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN, EXTERNAL_EEPROM_SPI_LSBFIRST, EXTERNAL_EEPROM_SPI_MODE, EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR); }
static spi_status_t spi_eeprom_wait_while_busy(int timeout) {
@@ -91,7 +83,7 @@ static void spi_eeprom_transmit_address(uintptr_t addr) {
//----------------------------------------------------------------------------------------------------------------------
-void eeprom_driver_init(void) {}
+void eeprom_driver_init(void) { spi_init(); }
void eeprom_driver_erase(void) {
#if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT)
@@ -110,8 +102,6 @@ void eeprom_driver_erase(void) {
}
void eeprom_read_block(void *buf, const void *addr, size_t len) {
- init_spi_if_required();
-
//-------------------------------------------------
// Wait for the write-in-progress bit to be cleared
bool res = spi_eeprom_start();
@@ -154,8 +144,6 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) {
}
void eeprom_write_block(const void *buf, void *addr, size_t len) {
- init_spi_if_required();
-
bool res;
uint8_t * read_buf = (uint8_t *)buf;
uintptr_t target_addr = (uintptr_t)addr;
diff --git a/drivers/haptic/haptic.c b/drivers/haptic/haptic.c
index 2ce279b753..de3f400527 100644
--- a/drivers/haptic/haptic.c
+++ b/drivers/haptic/haptic.c
@@ -33,11 +33,18 @@ void haptic_init(void) {
eeconfig_init();
}
haptic_config.raw = eeconfig_read_haptic();
- if (haptic_config.mode < 1) {
- haptic_config.mode = 1;
- }
- if (!haptic_config.mode) {
- dprintf("No haptic config found in eeprom, setting default configs\n");
+#ifdef SOLENOID_ENABLE
+ solenoid_set_dwell(haptic_config.dwell);
+#endif
+ if ((haptic_config.raw == 0)
+#ifdef SOLENOID_ENABLE
+ || (haptic_config.dwell == 0)
+#endif
+ ) {
+ // this will be called, if the eeprom is not corrupt,
+ // but the previous firmware didn't have haptic enabled,
+ // or the previous firmware didn't have solenoid enabled,
+ // and the current one has solenoid enabled.
haptic_reset();
}
#ifdef SOLENOID_ENABLE
@@ -118,25 +125,37 @@ void haptic_mode_decrease(void) {
}
void haptic_dwell_increase(void) {
- uint8_t dwell = haptic_config.dwell + 1;
#ifdef SOLENOID_ENABLE
+ int16_t next_dwell = ((int16_t)haptic_config.dwell) + SOLENOID_DWELL_STEP_SIZE;
if (haptic_config.dwell >= SOLENOID_MAX_DWELL) {
- dwell = 1;
+ // if it's already at max, we wrap back to min
+ next_dwell = SOLENOID_MIN_DWELL;
+ } else if (next_dwell > SOLENOID_MAX_DWELL) {
+ // if we overshoot the max, then cap at max
+ next_dwell = SOLENOID_MAX_DWELL;
}
- solenoid_set_dwell(dwell);
+ solenoid_set_dwell(next_dwell);
+#else
+ int16_t next_dwell = ((int16_t)haptic_config.dwell) + 1;
#endif
- haptic_set_dwell(dwell);
+ haptic_set_dwell(next_dwell);
}
void haptic_dwell_decrease(void) {
- uint8_t dwell = haptic_config.dwell - 1;
#ifdef SOLENOID_ENABLE
- if (haptic_config.dwell < SOLENOID_MIN_DWELL) {
- dwell = SOLENOID_MAX_DWELL;
+ int16_t next_dwell = ((int16_t)haptic_config.dwell) - SOLENOID_DWELL_STEP_SIZE;
+ if (haptic_config.dwell <= SOLENOID_MIN_DWELL) {
+ // if it's already at min, we wrap to max
+ next_dwell = SOLENOID_MAX_DWELL;
+ } else if (next_dwell < SOLENOID_MIN_DWELL) {
+ // if we go below min, then we cap to min
+ next_dwell = SOLENOID_MIN_DWELL;
}
- solenoid_set_dwell(dwell);
+ solenoid_set_dwell(next_dwell);
+#else
+ int16_t next_dwell = ((int16_t)haptic_config.dwell) - 1;
#endif
- haptic_set_dwell(dwell);
+ haptic_set_dwell(next_dwell);
}
void haptic_reset(void) {
@@ -150,6 +169,12 @@ void haptic_reset(void) {
#ifdef SOLENOID_ENABLE
uint8_t dwell = SOLENOID_DEFAULT_DWELL;
haptic_config.dwell = dwell;
+ haptic_config.buzz = SOLENOID_DEFAULT_BUZZ;
+ solenoid_set_dwell(dwell);
+#else
+ // This is to trigger haptic_reset again, if solenoid is enabled in the future.
+ haptic_config.dwell = 0;
+ haptic_config.buzz = 0;
#endif
eeconfig_update_haptic(haptic_config.raw);
xprintf("haptic_config.feedback = %u\n", haptic_config.feedback);
diff --git a/drivers/haptic/solenoid.c b/drivers/haptic/solenoid.c
index d645c379ae..2975ef893a 100644
--- a/drivers/haptic/solenoid.c
+++ b/drivers/haptic/solenoid.c
@@ -32,14 +32,6 @@ void solenoid_buzz_off(void) { haptic_set_buzz(0); }
void solenoid_set_buzz(int buzz) { haptic_set_buzz(buzz); }
-void solenoid_dwell_minus(uint8_t solenoid_dwell) {
- if (solenoid_dwell > 0) solenoid_dwell--;
-}
-
-void solenoid_dwell_plus(uint8_t solenoid_dwell) {
- if (solenoid_dwell < SOLENOID_MAX_DWELL) solenoid_dwell++;
-}
-
void solenoid_set_dwell(uint8_t dwell) { solenoid_dwell = dwell; }
void solenoid_stop(void) {
@@ -73,7 +65,7 @@ void solenoid_check(void) {
// Check whether to buzz the solenoid on and off
if (haptic_config.buzz) {
- if (elapsed / SOLENOID_MIN_DWELL % 2 == 0) {
+ if ((elapsed % (SOLENOID_BUZZ_ACTUATED + SOLENOID_BUZZ_NONACTUATED)) < SOLENOID_BUZZ_ACTUATED) {
if (!solenoid_buzzing) {
solenoid_buzzing = true;
writePinHigh(SOLENOID_PIN);
diff --git a/drivers/haptic/solenoid.h b/drivers/haptic/solenoid.h
index dd6ececa68..f2a3bc4c30 100644
--- a/drivers/haptic/solenoid.h
+++ b/drivers/haptic/solenoid.h
@@ -29,6 +29,22 @@
# define SOLENOID_MIN_DWELL 4
#endif
+#ifndef SOLENOID_DWELL_STEP_SIZE
+# define SOLENOID_DWELL_STEP_SIZE 1
+#endif
+
+#ifndef SOLENOID_DEFAULT_BUZZ
+# define SOLENOID_DEFAULT_BUZZ 0
+#endif
+
+#ifndef SOLENOID_BUZZ_ACTUATED
+# define SOLENOID_BUZZ_ACTUATED SOLENOID_MIN_DWELL
+#endif
+
+#ifndef SOLENOID_BUZZ_NONACTUATED
+# define SOLENOID_BUZZ_NONACTUATED SOLENOID_MIN_DWELL
+#endif
+
#ifndef SOLENOID_PIN
# error SOLENOID_PIN not defined
#endif
@@ -37,8 +53,6 @@ void solenoid_buzz_on(void);
void solenoid_buzz_off(void);
void solenoid_set_buzz(int buzz);
-void solenoid_dwell_minus(uint8_t solenoid_dwell);
-void solenoid_dwell_plus(uint8_t solenoid_dwell);
void solenoid_set_dwell(uint8_t dwell);
void solenoid_stop(void);
diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c
index ba11db1d2a..53bb8ca3fa 100644
--- a/drivers/oled/oled_driver.c
+++ b/drivers/oled/oled_driver.c
@@ -119,6 +119,9 @@ uint32_t oled_timeout;
#if OLED_SCROLL_TIMEOUT > 0
uint32_t oled_scroll_timeout;
#endif
+#if OLED_UPDATE_INTERVAL > 0
+uint16_t oled_update_timeout;
+#endif
// Internal variables to reduce math instructions
@@ -468,8 +471,9 @@ void oled_write_raw_byte(const char data, uint16_t index) {
}
void oled_write_raw(const char *data, uint16_t size) {
- if (size > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE;
- for (uint16_t i = 0; i < size; i++) {
+ uint16_t cursor_start_index = oled_cursor - &oled_buffer[0];
+ if ((size + cursor_start_index) > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE - cursor_start_index;
+ for (uint16_t i = cursor_start_index; i < cursor_start_index + size; i++) {
if (oled_buffer[i] == data[i]) continue;
oled_buffer[i] = data[i];
oled_dirty |= ((OLED_BLOCK_TYPE)1 << (i / OLED_BLOCK_SIZE));
@@ -511,8 +515,9 @@ void oled_write_ln_P(const char *data, bool invert) {
}
void oled_write_raw_P(const char *data, uint16_t size) {
- if (size > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE;
- for (uint16_t i = 0; i < size; i++) {
+ uint16_t cursor_start_index = oled_cursor - &oled_buffer[0];
+ if ((size + cursor_start_index) > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE - cursor_start_index;
+ for (uint16_t i = cursor_start_index; i < cursor_start_index + size; i++) {
uint8_t c = pgm_read_byte(data++);
if (oled_buffer[i] == c) continue;
oled_buffer[i] = c;
@@ -650,9 +655,16 @@ void oled_task(void) {
return;
}
+#if OLED_UPDATE_INTERVAL > 0
+ if (timer_elapsed(oled_update_timeout) >= OLED_UPDATE_INTERVAL) {
+ oled_update_timeout = timer_read();
+ oled_set_cursor(0, 0);
+ oled_task_user();
+ }
+#else
oled_set_cursor(0, 0);
-
oled_task_user();
+#endif
#if OLED_SCROLL_TIMEOUT > 0
if (oled_dirty && oled_scrolling) {
diff --git a/keyboards/1upkeyboards/super16/rules.mk b/keyboards/1upkeyboards/super16/rules.mk
index 2ef04cd585..90e7e42ad0 100644
--- a/keyboards/1upkeyboards/super16/rules.mk
+++ b/keyboards/1upkeyboards/super16/rules.mk
@@ -25,7 +25,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/speedo/keymaps/default/config.h b/keyboards/aeboards/ext65/config.h
index 0ab49e8bc4..ff2ace9236 100644
--- a/keyboards/speedo/keymaps/default/config.h
+++ b/keyboards/aeboards/ext65/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2017 Paul Ewing
+/* Copyright 2020 Harrison Chan (Xelus)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -14,6 +14,4 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#pragma once
-
-// place overrides here
+#include "config_common.h"
diff --git a/keyboards/aeboards/ext65/ext65.c b/keyboards/aeboards/ext65/ext65.c
new file mode 100644
index 0000000000..5f824b7210
--- /dev/null
+++ b/keyboards/aeboards/ext65/ext65.c
@@ -0,0 +1 @@
+#include "ext65.h"
diff --git a/keyboards/aeboards/ext65/ext65.h b/keyboards/aeboards/ext65/ext65.h
new file mode 100644
index 0000000000..571ed05518
--- /dev/null
+++ b/keyboards/aeboards/ext65/ext65.h
@@ -0,0 +1,9 @@
+#pragma once
+
+#include "quantum.h"
+
+#if defined(KEYBOARD_aeboards_ext65_rev1)
+ #include "rev1.h"
+#elif defined(KEYBOARD_aeboards_ext65_rev2)
+ #include "rev2.h"
+#endif \ No newline at end of file
diff --git a/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c b/keyboards/aeboards/ext65/keymaps/default/keymap.c
index 2158fac317..af75379253 100644
--- a/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c
+++ b/keyboards/aeboards/ext65/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 Jason Williams (Wilba)
+/* Copyright 2020 Harrison Chan (Xelus)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -30,18 +30,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `------------------------------------------------------------------------------------------'
*/
[0] = LAYOUT_ext65(
- RGB_M_T, BL_INC , BL_DEC , BL_TOGG, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR,
- RGB_TOG, KC_P9 , KC_P8 , KC_P7 , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL ,
+ KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR,
+ KC_PPLS, KC_P9 , KC_P8 , KC_P7 , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL ,
KC_PPLS, KC_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP,
KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN,
KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
+ KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST,
+ KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DEBUG,
+ KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
diff --git a/keyboards/aeboards/ext65/rev2/keymaps/default/readme.md b/keyboards/aeboards/ext65/keymaps/default/readme.md
index 3a3bb66d67..3a3bb66d67 100644
--- a/keyboards/aeboards/ext65/rev2/keymaps/default/readme.md
+++ b/keyboards/aeboards/ext65/keymaps/default/readme.md
diff --git a/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c b/keyboards/aeboards/ext65/keymaps/via/keymap.c
index 2158fac317..af75379253 100644
--- a/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c
+++ b/keyboards/aeboards/ext65/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 Jason Williams (Wilba)
+/* Copyright 2020 Harrison Chan (Xelus)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -30,18 +30,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `------------------------------------------------------------------------------------------'
*/
[0] = LAYOUT_ext65(
- RGB_M_T, BL_INC , BL_DEC , BL_TOGG, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR,
- RGB_TOG, KC_P9 , KC_P8 , KC_P7 , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL ,
+ KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR,
+ KC_PPLS, KC_P9 , KC_P8 , KC_P7 , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL ,
KC_PPLS, KC_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP,
KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN,
KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
+ KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST,
+ KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DEBUG,
+ KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
diff --git a/keyboards/aeboards/ext65/rev2/keymaps/via/readme.md b/keyboards/aeboards/ext65/keymaps/via/readme.md
index 4be6efb9e7..4be6efb9e7 100644
--- a/keyboards/aeboards/ext65/rev2/keymaps/via/readme.md
+++ b/keyboards/aeboards/ext65/keymaps/via/readme.md
diff --git a/keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk b/keyboards/aeboards/ext65/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/aeboards/ext65/rev1/keymaps/via/rules.mk
+++ b/keyboards/aeboards/ext65/keymaps/via/rules.mk
diff --git a/keyboards/aeboards/ext65/readme.md b/keyboards/aeboards/ext65/readme.md
new file mode 100644
index 0000000000..dfbb403b19
--- /dev/null
+++ b/keyboards/aeboards/ext65/readme.md
@@ -0,0 +1,19 @@
+# EXT65
+
+A southpaw inspired keyboard by [AEBoards](https://aeboards.com/)
+
+* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
+* Hardware Supported: EXT65 Rev1, Rev2
+* Hardware Availability: Custom keyboard group buys
+
+Make example for this keyboard (after setting up your build environment):
+
+ make aeboards/ext65/rev1:default
+ make aeboards/ext65/rev2:default
+
+Flashing example for this keyboard:
+
+ make aeboards/ext65/rev1:default:flash
+ make aeboards/ext65/rev2:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/aeboards/ext65/rev1/config.h b/keyboards/aeboards/ext65/rev1/config.h
index c6e6ac8900..cd9c240069 100644
--- a/keyboards/aeboards/ext65/rev1/config.h
+++ b/keyboards/aeboards/ext65/rev1/config.h
@@ -22,9 +22,8 @@
#define VENDOR_ID 0x4145 // "AE"
#define PRODUCT_ID 0xAE65 // AEboards EXT65
#define DEVICE_VER 0x0001
-#define MANUFACTURER AEboards
-#define PRODUCT AEboards Ext65
-#define DESCRIPTION AEboards Ext65
+#define MANUFACTURER AEBoards
+#define PRODUCT AEBoards Ext65
/* key matrix size */
#define MATRIX_ROWS 10
diff --git a/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c b/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c
deleted file mode 100644
index 54eab23aec..0000000000
--- a/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright 2018 Jason Williams (Wilba)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Keymap BASE: (Base Layer) Default Layer
- * ,-------------------. ,-------------------------------------------------------------------.
- * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr|
- * |-------------------| |-------------------------------------------------------------------|
- * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del |
- * | + |--------------| |-------------------------------------------------------------------|
- * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup|
- * |-------------------| |-------------------------------------------------------------------|
- * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn|
- * | ENT|-------------------------------------------------------------------------------------|
- * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
- * `------------------------------------------------------------------------------------------'
- */
- [0] = LAYOUT_ext65(
- KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR,
- KC_PPLS, KC_P9 , KC_P8 , KC_P7 , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL ,
- KC_PPLS, KC_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP,
- KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN,
- KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [2] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
-
-void keyboard_pre_init_user(void) {
- // Call the keyboard pre init code.
-
- // Set our LED pins as output
- setPinOutput(D5);
- setPinOutput(D3);
- setPinOutput(D2);
- setPinOutput(D1);
-}
-
-void led_set_user(uint8_t usb_led) {
- if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
- writePinHigh(D5);
- } else {
- writePinLow(D5);
- }
- if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
- writePinHigh(D3);
- } else {
- writePinLow(D3);
- }
- if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
- writePinHigh(D2);
- } else {
- writePinLow(D2);
- }
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case 1:
- writePinHigh(D1);
- break;
- default: // for any other layers, or the default layer
- writePinLow(D1);
- break;
- }
- return state;
-}
diff --git a/keyboards/aeboards/ext65/rev1/keymaps/default/readme.md b/keyboards/aeboards/ext65/rev1/keymaps/default/readme.md
deleted file mode 100644
index b4d9a0b6de..0000000000
--- a/keyboards/aeboards/ext65/rev1/keymaps/default/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# The Default Ext65 Layout
-
diff --git a/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c
deleted file mode 100644
index ab6a93043a..0000000000
--- a/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright 2018 Jason Williams (Wilba)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Keymap BASE: (Base Layer) Default Layer
- * ,-------------------. ,-------------------------------------------------------------------.
- * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr|
- * |-------------------| |-------------------------------------------------------------------|
- * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del |
- * | + |--------------| |-------------------------------------------------------------------|
- * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup|
- * |-------------------| |-------------------------------------------------------------------|
- * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn|
- * | ENT|-------------------------------------------------------------------------------------|
- * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
- * `------------------------------------------------------------------------------------------'
- */
- [0] = LAYOUT_ext65(
- KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR,
- KC_PPLS, KC_P9 , KC_P8 , KC_P7 , KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL ,
- KC_PPLS, KC_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP,
- KC_PENT, KC_P3 , KC_P2 , KC_P1 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN,
- KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [2] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
-
-void keyboard_pre_init_user(void) {
- // Call the keyboard pre init code.
-
- // Set our LED pins as output
- setPinOutput(D5);
- setPinOutput(D3);
- setPinOutput(D2);
- setPinOutput(D1);
-}
-
-void led_set_user(uint8_t usb_led) {
- if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
- writePinHigh(D5);
- } else {
- writePinLow(D5);
- }
- if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
- writePinHigh(D3);
- } else {
- writePinLow(D3);
- }
- if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
- writePinHigh(D2);
- } else {
- writePinLow(D2);
- }
-}
-
-uint32_t layer_state_set_user(uint32_t state) {
- switch (biton32(state)) {
- case 1:
- writePinHigh(D1);
- break;
- default: // for any other layers, or the default layer
- writePinLow(D1);
- break;
- }
- return state;
-}
diff --git a/keyboards/aeboards/ext65/rev1/keymaps/via/readme.md b/keyboards/aeboards/ext65/rev1/keymaps/via/readme.md
deleted file mode 100644
index c2c416d166..0000000000
--- a/keyboards/aeboards/ext65/rev1/keymaps/via/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# The VIA Ext65 Layout
-
diff --git a/keyboards/aeboards/ext65/rev1/readme.md b/keyboards/aeboards/ext65/rev1/readme.md
deleted file mode 100644
index 78d5b8f959..0000000000
--- a/keyboards/aeboards/ext65/rev1/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-EXT65
-===
-
-A southpaw inspired keyboard by [aeboards](https://aeboards.com/)
-
-Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
-Hardware Supported: EXT65
-Hardware Availability: Custom keyboard group buys
-
-Make example for this keyboard (after setting up your build environment):
-
- make aeboards/ext65/rev1:default
-
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/aeboards/ext65/rev1/rev1.c b/keyboards/aeboards/ext65/rev1/rev1.c
index f52f8d4386..1d69a6897a 100644
--- a/keyboards/aeboards/ext65/rev1/rev1.c
+++ b/keyboards/aeboards/ext65/rev1/rev1.c
@@ -1,18 +1,32 @@
-/* Copyright 2018 Jason Williams (Wilba)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
+#include "rev1.h"
-// Nothing to see here, move along... ;-)
+void keyboard_pre_init_user(void) {
+ // Call the keyboard pre init code.
+ // Set our LED pins as output
+ setPinOutput(D5);
+ setPinOutput(D3);
+ setPinOutput(D2);
+ setPinOutput(D1);
+}
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if(res) {
+ writePin(D5, led_state.num_lock);
+ writePin(D3, led_state.caps_lock);
+ writePin(D2, led_state.scroll_lock);
+ }
+ return res;
+}
+
+layer_state_t layer_state_set_kb(layer_state_t state) {
+ switch (get_highest_layer(state)) {
+ case 1:
+ writePinHigh(D1);
+ break;
+ default: // for any other layers, or the default layer
+ writePinLow(D1);
+ break;
+ }
+ return layer_state_set_user(state);
+}
diff --git a/keyboards/aeboards/ext65/rev1/rev1.h b/keyboards/aeboards/ext65/rev1/rev1.h
index de79b92abd..a8efc48ac3 100644
--- a/keyboards/aeboards/ext65/rev1/rev1.h
+++ b/keyboards/aeboards/ext65/rev1/rev1.h
@@ -1,4 +1,4 @@
-/* Copyright 2018 Jason Williams (Wilba)
+/* Copyright 2020 Harrison Chan (Xelus)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,6 +16,7 @@
#pragma once
+#include "ext65.h"
#include "quantum.h"
#define ____ KC_NO
diff --git a/keyboards/aeboards/ext65/rev2/config.h b/keyboards/aeboards/ext65/rev2/config.h
index 959bf91dc3..9db2b3138b 100644
--- a/keyboards/aeboards/ext65/rev2/config.h
+++ b/keyboards/aeboards/ext65/rev2/config.h
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0x4145 // "AE"
#define PRODUCT_ID 0xA652 // AEboards EXT65 Rev2
#define DEVICE_VER 0x0001
-#define MANUFACTURER AEboards
+#define MANUFACTURER AEBoards
#define PRODUCT AEBoards Ext65 Rev2
/* key matrix size */
diff --git a/keyboards/aeboards/ext65/rev2/rev2.h b/keyboards/aeboards/ext65/rev2/rev2.h
index 23a4d7c89e..a8efc48ac3 100644
--- a/keyboards/aeboards/ext65/rev2/rev2.h
+++ b/keyboards/aeboards/ext65/rev2/rev2.h
@@ -1,5 +1,22 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
#pragma once
+#include "ext65.h"
#include "quantum.h"
#define ____ KC_NO
diff --git a/keyboards/aeboards/ext65/rules.mk b/keyboards/aeboards/ext65/rules.mk
new file mode 100644
index 0000000000..d8b0595a5d
--- /dev/null
+++ b/keyboards/aeboards/ext65/rules.mk
@@ -0,0 +1 @@
+DEFAULT_FOLDER = aeboards/ext65/rev2 \ No newline at end of file
diff --git a/keyboards/ares/ares.h b/keyboards/ares/ares.h
index 41ecb570c6..6628bb0227 100644
--- a/keyboards/ares/ares.h
+++ b/keyboards/ares/ares.h
@@ -1,5 +1,5 @@
/*
-Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2019 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/keyboards/ares/keymaps/default/keymap.c b/keyboards/ares/keymaps/default/keymap.c
index 18e3d30b0d..490dbdf626 100644
--- a/keyboards/ares/keymaps/default/keymap.c
+++ b/keyboards/ares/keymaps/default/keymap.c
@@ -1,5 +1,5 @@
/*
-Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2019 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/keyboards/at_at/660m/660m.c b/keyboards/at_at/660m/660m.c
index 1a54df3be5..92ccc067f8 100644
--- a/keyboards/at_at/660m/660m.c
+++ b/keyboards/at_at/660m/660m.c
@@ -1 +1,6 @@
#include "660m.h"
+
+void board_init(void) {
+ SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
+ SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
+}
diff --git a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.c b/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.c
deleted file mode 100644
index 7c09bd997c..0000000000
--- a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * This file has been automatically generated using ChibiStudio board
- * generator plugin. Do not edit manually.
- */
-
-#include "hal.h"
-#include "stm32_gpio.h"
-
-/*===========================================================================*/
-/* Driver local definitions. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver exported variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver local variables and types. */
-/*===========================================================================*/
-
-/**
- * @brief Type of STM32 GPIO port setup.
- */
-typedef struct {
- uint32_t moder;
- uint32_t otyper;
- uint32_t ospeedr;
- uint32_t pupdr;
- uint32_t odr;
- uint32_t afrl;
- uint32_t afrh;
-} gpio_setup_t;
-
-/**
- * @brief Type of STM32 GPIO initialization data.
- */
-typedef struct {
-#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
- gpio_setup_t PAData;
-#endif
-#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
- gpio_setup_t PBData;
-#endif
-#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
- gpio_setup_t PCData;
-#endif
-#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
- gpio_setup_t PDData;
-#endif
-#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
- gpio_setup_t PEData;
-#endif
-#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
- gpio_setup_t PFData;
-#endif
-#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
- gpio_setup_t PGData;
-#endif
-#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
- gpio_setup_t PHData;
-#endif
-#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
- gpio_setup_t PIData;
-#endif
-#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
- gpio_setup_t PJData;
-#endif
-#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
- gpio_setup_t PKData;
-#endif
-} gpio_config_t;
-
-/**
- * @brief STM32 GPIO static initialization data.
- */
-static const gpio_config_t gpio_default_config = {
-#if STM32_HAS_GPIOA
- {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
- VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
-#endif
-#if STM32_HAS_GPIOB
- {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
- VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
-#endif
-#if STM32_HAS_GPIOC
- {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
- VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
-#endif
-#if STM32_HAS_GPIOD
- {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
- VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
-#endif
-#if STM32_HAS_GPIOE
- {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
- VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
-#endif
-#if STM32_HAS_GPIOF
- {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
- VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
-#endif
-#if STM32_HAS_GPIOG
- {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
- VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
-#endif
-#if STM32_HAS_GPIOH
- {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
- VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
-#endif
-#if STM32_HAS_GPIOI
- {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
- VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
-#endif
-#if STM32_HAS_GPIOJ
- {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR,
- VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
-#endif
-#if STM32_HAS_GPIOK
- {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR,
- VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
-#endif
-};
-
-/*===========================================================================*/
-/* Driver local functions. */
-/*===========================================================================*/
-
-static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
-
- gpiop->OTYPER = config->otyper;
- gpiop->OSPEEDR = config->ospeedr;
- gpiop->PUPDR = config->pupdr;
- gpiop->ODR = config->odr;
- gpiop->AFRL = config->afrl;
- gpiop->AFRH = config->afrh;
- gpiop->MODER = config->moder;
-}
-
-static void stm32_gpio_init(void) {
-
- /* Enabling GPIO-related clocks, the mask comes from the
- registry header file.*/
- rccResetAHB(STM32_GPIO_EN_MASK);
- rccEnableAHB(STM32_GPIO_EN_MASK, true);
-
- /* Initializing all the defined GPIO ports.*/
-#if STM32_HAS_GPIOA
- gpio_init(GPIOA, &gpio_default_config.PAData);
-#endif
-#if STM32_HAS_GPIOB
- gpio_init(GPIOB, &gpio_default_config.PBData);
-#endif
-#if STM32_HAS_GPIOC
- gpio_init(GPIOC, &gpio_default_config.PCData);
-#endif
-#if STM32_HAS_GPIOD
- gpio_init(GPIOD, &gpio_default_config.PDData);
-#endif
-#if STM32_HAS_GPIOE
- gpio_init(GPIOE, &gpio_default_config.PEData);
-#endif
-#if STM32_HAS_GPIOF
- gpio_init(GPIOF, &gpio_default_config.PFData);
-#endif
-#if STM32_HAS_GPIOG
- gpio_init(GPIOG, &gpio_default_config.PGData);
-#endif
-#if STM32_HAS_GPIOH
- gpio_init(GPIOH, &gpio_default_config.PHData);
-#endif
-#if STM32_HAS_GPIOI
- gpio_init(GPIOI, &gpio_default_config.PIData);
-#endif
-#if STM32_HAS_GPIOJ
- gpio_init(GPIOJ, &gpio_default_config.PJData);
-#endif
-#if STM32_HAS_GPIOK
- gpio_init(GPIOK, &gpio_default_config.PKData);
-#endif
-}
-
-/*===========================================================================*/
-/* Driver interrupt handlers. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver exported functions. */
-/*===========================================================================*/
-
-/**
- * @brief Early initialization code.
- * @details GPIO ports and system clocks are initialized before everything
- * else.
- */
-void __early_init(void) {
- extern void enter_bootloader_mode_if_requested(void);
- enter_bootloader_mode_if_requested();
- stm32_gpio_init();
- stm32_clock_init();
-}
-
-#if HAL_USE_SDC || defined(__DOXYGEN__)
-/**
- * @brief SDC card detection.
- */
-bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
-
- (void)sdcp;
- /* TODO: Fill the implementation.*/
- return true;
-}
-
-/**
- * @brief SDC card write protection detection.
- */
-bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
-
- (void)sdcp;
- /* TODO: Fill the implementation.*/
- return false;
-}
-#endif /* HAL_USE_SDC */
-
-#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
-/**
- * @brief MMC_SPI card detection.
- */
-bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
-
- (void)mmcp;
- /* TODO: Fill the implementation.*/
- return true;
-}
-
-/**
- * @brief MMC_SPI card write protection detection.
- */
-bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
-
- (void)mmcp;
- /* TODO: Fill the implementation.*/
- return false;
-}
-#endif
-
-/**
- * @brief Board-specific initialization code.
- * @todo Add your board-specific code, if any.
- */
-void boardInit(void) {
- SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
- SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
-}
diff --git a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.h b/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.h
deleted file mode 100644
index 57636d1f12..0000000000
--- a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.h
+++ /dev/null
@@ -1,940 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * This file has been automatically generated using ChibiStudio board
- * generator plugin. Do not edit manually.
- */
-
-#ifndef BOARD_H
-#define BOARD_H
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-/*
- * Setup for ST STM32F072B-Discovery board.
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_ST_STM32F072B_DISCOVERY
-#define BOARD_NAME "ST STM32F072B-Discovery"
-
-/*
- * Board oscillators-related settings.
- * NOTE: HSE not fitted.
- */
-#if !defined(STM32_LSECLK)
-#define STM32_LSECLK 32768
-#endif
-
-#define STM32_LSEDRV (3U << 3U)
-
-#if !defined(STM32_HSECLK)
-#define STM32_HSECLK 0U
-#endif
-
-#define STM32_HSE_BYPASS
-
-/*
- * MCU type as defined in the ST header.
- */
-#define STM32F072xB
-
-/*
- * IO pins assignments.
- */
-#define GPIOA_BUTTON 0U
-#define GPIOA_PIN1 1U
-#define GPIOA_PIN2 2U
-#define GPIOA_PIN3 3U
-#define GPIOA_PIN4 4U
-#define GPIOA_PIN5 5U
-#define GPIOA_PIN6 6U
-#define GPIOA_PIN7 7U
-#define GPIOA_PIN8 8U
-#define GPIOA_PIN9 9U
-#define GPIOA_PIN10 10U
-#define GPIOA_USB_DM 11U
-#define GPIOA_USB_DP 12U
-#define GPIOA_SWDIO 13U
-#define GPIOA_SWCLK 14U
-#define GPIOA_PIN15 15U
-
-#define GPIOB_PIN0 0U
-#define GPIOB_PIN1 1U
-#define GPIOB_PIN2 2U
-#define GPIOB_PIN3 3U
-#define GPIOB_PIN4 4U
-#define GPIOB_PIN5 5U
-#define GPIOB_PIN6 6U
-#define GPIOB_PIN7 7U
-#define GPIOB_PIN8 8U
-#define GPIOB_PIN9 9U
-#define GPIOB_PIN10 10U
-#define GPIOB_PIN11 11U
-#define GPIOB_PIN12 12U
-#define GPIOB_SPI2_SCK 13U
-#define GPIOB_SPI2_MISO 14U
-#define GPIOB_SPI2_MOSI 15U
-
-#define GPIOC_MEMS_CS 0U
-#define GPIOC_PIN1 1U
-#define GPIOC_PIN2 2U
-#define GPIOC_PIN3 3U
-#define GPIOC_PIN4 4U
-#define GPIOC_PIN5 5U
-#define GPIOC_LED_RED 6U
-#define GPIOC_LED_BLUE 7U
-#define GPIOC_LED_ORANGE 8U
-#define GPIOC_LED_GREEN 9U
-#define GPIOC_PIN10 10U
-#define GPIOC_PIN11 11U
-#define GPIOC_PIN12 12U
-#define GPIOC_PIN13 13U
-#define GPIOC_OSC32_IN 14U
-#define GPIOC_OSC32_OUT 15U
-
-#define GPIOD_PIN0 0U
-#define GPIOD_PIN1 1U
-#define GPIOD_PIN2 2U
-#define GPIOD_PIN3 3U
-#define GPIOD_PIN4 4U
-#define GPIOD_PIN5 5U
-#define GPIOD_PIN6 6U
-#define GPIOD_PIN7 7U
-#define GPIOD_PIN8 8U
-#define GPIOD_PIN9 9U
-#define GPIOD_PIN10 10U
-#define GPIOD_PIN11 11U
-#define GPIOD_PIN12 12U
-#define GPIOD_PIN13 13U
-#define GPIOD_PIN14 14U
-#define GPIOD_PIN15 15U
-
-#define GPIOE_PIN0 0U
-#define GPIOE_PIN1 1U
-#define GPIOE_PIN2 2U
-#define GPIOE_PIN3 3U
-#define GPIOE_PIN4 4U
-#define GPIOE_PIN5 5U
-#define GPIOE_PIN6 6U
-#define GPIOE_PIN7 7U
-#define GPIOE_PIN8 8U
-#define GPIOE_PIN9 9U
-#define GPIOE_PIN10 10U
-#define GPIOE_PIN11 11U
-#define GPIOE_PIN12 12U
-#define GPIOE_PIN13 13U
-#define GPIOE_PIN14 14U
-#define GPIOE_PIN15 15U
-
-#define GPIOF_OSC_IN 0U
-#define GPIOF_OSC_OUT 1U
-#define GPIOF_PIN2 2U
-#define GPIOF_PIN3 3U
-#define GPIOF_PIN4 4U
-#define GPIOF_PIN5 5U
-#define GPIOF_PIN6 6U
-#define GPIOF_PIN7 7U
-#define GPIOF_PIN8 8U
-#define GPIOF_PIN9 9U
-#define GPIOF_PIN10 10U
-#define GPIOF_PIN11 11U
-#define GPIOF_PIN12 12U
-#define GPIOF_PIN13 13U
-#define GPIOF_PIN14 14U
-#define GPIOF_PIN15 15U
-
-/*
- * IO lines assignments.
- */
-#define LINE_BUTTON PAL_LINE(GPIOA, 0U)
-#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
-#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
-#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
-#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
-#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U)
-#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U)
-#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U)
-#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U)
-#define LINE_LED_RED PAL_LINE(GPIOC, 6U)
-#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U)
-#define LINE_LED_ORANGE PAL_LINE(GPIOC, 8U)
-#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U)
-#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U)
-#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U)
-#define LINE_OSC_IN PAL_LINE(GPIOF, 0U)
-#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U)
-
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Derived constants and error checks. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver macros. */
-/*===========================================================================*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- * Please refer to the STM32 Reference Manual for details.
- */
-#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
-#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
-#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
-#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
-#define PIN_ODR_LOW(n) (0U << (n))
-#define PIN_ODR_HIGH(n) (1U << (n))
-#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
-#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
-#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
-#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
-#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
-#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
-#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
-#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
-#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
-#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
-
-/*
- * GPIOA setup:
- *
- * PA0 - BUTTON (input floating).
- * PA1 - PIN1 (input pullup).
- * PA2 - PIN2 (input pullup).
- * PA3 - PIN3 (input pullup).
- * PA4 - PIN4 (input pullup).
- * PA5 - PIN5 (input pullup).
- * PA6 - PIN6 (input pullup).
- * PA7 - PIN7 (input pullup).
- * PA8 - PIN8 (input pullup).
- * PA9 - PIN9 (input pullup).
- * PA10 - PIN10 (input pullup).
- * PA11 - USB_DM (input floating).
- * PA12 - USB_DP (input floating).
- * PA13 - SWDIO (alternate 0).
- * PA14 - SWCLK (alternate 0).
- * PA15 - PIN15 (input pullup).
- */
-#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \
- PIN_MODE_INPUT(GPIOA_PIN1) | \
- PIN_MODE_INPUT(GPIOA_PIN2) | \
- PIN_MODE_INPUT(GPIOA_PIN3) | \
- PIN_MODE_INPUT(GPIOA_PIN4) | \
- PIN_MODE_INPUT(GPIOA_PIN5) | \
- PIN_MODE_INPUT(GPIOA_PIN6) | \
- PIN_MODE_INPUT(GPIOA_PIN7) | \
- PIN_MODE_INPUT(GPIOA_PIN8) | \
- PIN_MODE_INPUT(GPIOA_PIN9) | \
- PIN_MODE_INPUT(GPIOA_PIN10) | \
- PIN_MODE_INPUT(GPIOA_USB_DM) | \
- PIN_MODE_INPUT(GPIOA_USB_DP) | \
- PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \
- PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \
- PIN_MODE_INPUT(GPIOA_PIN15))
-#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \
- PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \
- PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \
- PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
-#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_BUTTON) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN1) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN2) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN3) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN5) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN6) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN7) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN8) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN9) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOA_USB_DM) | \
- PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | \
- PIN_OSPEED_HIGH(GPIOA_SWDIO) | \
- PIN_OSPEED_HIGH(GPIOA_SWCLK) | \
- PIN_OSPEED_HIGH(GPIOA_PIN15))
-#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN10) | \
- PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \
- PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \
- PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \
- PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN15))
-#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \
- PIN_ODR_HIGH(GPIOA_PIN1) | \
- PIN_ODR_HIGH(GPIOA_PIN2) | \
- PIN_ODR_HIGH(GPIOA_PIN3) | \
- PIN_ODR_HIGH(GPIOA_PIN4) | \
- PIN_ODR_HIGH(GPIOA_PIN5) | \
- PIN_ODR_HIGH(GPIOA_PIN6) | \
- PIN_ODR_HIGH(GPIOA_PIN7) | \
- PIN_ODR_HIGH(GPIOA_PIN8) | \
- PIN_ODR_HIGH(GPIOA_PIN9) | \
- PIN_ODR_HIGH(GPIOA_PIN10) | \
- PIN_ODR_HIGH(GPIOA_USB_DM) | \
- PIN_ODR_HIGH(GPIOA_USB_DP) | \
- PIN_ODR_HIGH(GPIOA_SWDIO) | \
- PIN_ODR_HIGH(GPIOA_SWCLK) | \
- PIN_ODR_HIGH(GPIOA_PIN15))
-#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN7, 0U))
-#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOA_USB_DM, 0U) | \
- PIN_AFIO_AF(GPIOA_USB_DP, 0U) | \
- PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \
- PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN15, 0U))
-
-/*
- * GPIOB setup:
- *
- * PB0 - PIN0 (input pullup).
- * PB1 - PIN1 (input pullup).
- * PB2 - PIN2 (input pullup).
- * PB3 - PIN3 (input pullup).
- * PB4 - PIN4 (input pullup).
- * PB5 - PIN5 (input pullup).
- * PB6 - PIN6 (input pullup).
- * PB7 - PIN7 (input pullup).
- * PB8 - PIN8 (input pullup).
- * PB9 - PIN9 (input pullup).
- * PB10 - PIN10 (input pullup).
- * PB11 - PIN11 (input pullup).
- * PB12 - PIN12 (input pullup).
- * PB13 - SPI2_SCK (alternate 0).
- * PB14 - SPI2_MISO (alternate 0).
- * PB15 - SPI2_MOSI (alternate 0).
- */
-#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \
- PIN_MODE_INPUT(GPIOB_PIN1) | \
- PIN_MODE_INPUT(GPIOB_PIN2) | \
- PIN_MODE_INPUT(GPIOB_PIN3) | \
- PIN_MODE_INPUT(GPIOB_PIN4) | \
- PIN_MODE_INPUT(GPIOB_PIN5) | \
- PIN_MODE_INPUT(GPIOB_PIN6) | \
- PIN_MODE_INPUT(GPIOB_PIN7) | \
- PIN_MODE_INPUT(GPIOB_PIN8) | \
- PIN_MODE_INPUT(GPIOB_PIN9) | \
- PIN_MODE_INPUT(GPIOB_PIN10) | \
- PIN_MODE_INPUT(GPIOB_PIN11) | \
- PIN_MODE_INPUT(GPIOB_PIN12) | \
- PIN_MODE_ALTERNATE(GPIOB_SPI2_SCK) | \
- PIN_MODE_ALTERNATE(GPIOB_SPI2_MISO) | \
- PIN_MODE_ALTERNATE(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SCK) | \
- PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MISO) | \
- PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN1) | \
- PIN_OSPEED_HIGH(GPIOB_PIN2) | \
- PIN_OSPEED_HIGH(GPIOB_PIN3) | \
- PIN_OSPEED_HIGH(GPIOB_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN5) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN6) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN7) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN8) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN9) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN11) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN12) | \
- PIN_OSPEED_VERYLOW(GPIOB_SPI2_SCK) | \
- PIN_OSPEED_VERYLOW(GPIOB_SPI2_MISO) | \
- PIN_OSPEED_VERYLOW(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN12) | \
- PIN_PUPDR_FLOATING(GPIOB_SPI2_SCK) | \
- PIN_PUPDR_FLOATING(GPIOB_SPI2_MISO) | \
- PIN_PUPDR_FLOATING(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \
- PIN_ODR_HIGH(GPIOB_PIN1) | \
- PIN_ODR_HIGH(GPIOB_PIN2) | \
- PIN_ODR_HIGH(GPIOB_PIN3) | \
- PIN_ODR_HIGH(GPIOB_PIN4) | \
- PIN_ODR_HIGH(GPIOB_PIN5) | \
- PIN_ODR_HIGH(GPIOB_PIN6) | \
- PIN_ODR_HIGH(GPIOB_PIN7) | \
- PIN_ODR_HIGH(GPIOB_PIN8) | \
- PIN_ODR_HIGH(GPIOB_PIN9) | \
- PIN_ODR_HIGH(GPIOB_PIN10) | \
- PIN_ODR_HIGH(GPIOB_PIN11) | \
- PIN_ODR_HIGH(GPIOB_PIN12) | \
- PIN_ODR_HIGH(GPIOB_SPI2_SCK) | \
- PIN_ODR_HIGH(GPIOB_SPI2_MISO) | \
- PIN_ODR_HIGH(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN7, 0U))
-#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOB_SPI2_SCK, 0U) | \
- PIN_AFIO_AF(GPIOB_SPI2_MISO, 0U) | \
- PIN_AFIO_AF(GPIOB_SPI2_MOSI, 0U))
-
-/*
- * GPIOC setup:
- *
- * PC0 - MEMS_CS (output pushpull maximum).
- * PC1 - PIN1 (input pullup).
- * PC2 - PIN2 (input pullup).
- * PC3 - PIN3 (input pullup).
- * PC4 - PIN4 (input pullup).
- * PC5 - PIN5 (input pullup).
- * PC6 - LED_RED (output pushpull maximum).
- * PC7 - LED_BLUE (output pushpull maximum).
- * PC8 - LED_ORANGE (output pushpull maximum).
- * PC9 - LED_GREEN (output pushpull maximum).
- * PC10 - PIN10 (input pullup).
- * PC11 - PIN11 (input pullup).
- * PC12 - PIN12 (input pullup).
- * PC13 - PIN13 (input pullup).
- * PC14 - OSC32_IN (input floating).
- * PC15 - OSC32_OUT (input floating).
- */
-#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_MEMS_CS) | \
- PIN_MODE_INPUT(GPIOC_PIN1) | \
- PIN_MODE_INPUT(GPIOC_PIN2) | \
- PIN_MODE_INPUT(GPIOC_PIN3) | \
- PIN_MODE_INPUT(GPIOC_PIN4) | \
- PIN_MODE_INPUT(GPIOC_PIN5) | \
- PIN_MODE_OUTPUT(GPIOC_LED_RED) | \
- PIN_MODE_OUTPUT(GPIOC_LED_BLUE) | \
- PIN_MODE_OUTPUT(GPIOC_LED_ORANGE) | \
- PIN_MODE_OUTPUT(GPIOC_LED_GREEN) | \
- PIN_MODE_INPUT(GPIOC_PIN10) | \
- PIN_MODE_INPUT(GPIOC_PIN11) | \
- PIN_MODE_INPUT(GPIOC_PIN12) | \
- PIN_MODE_INPUT(GPIOC_PIN13) | \
- PIN_MODE_INPUT(GPIOC_OSC32_IN) | \
- PIN_MODE_INPUT(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_MEMS_CS) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOC_LED_RED) | \
- PIN_OTYPE_PUSHPULL(GPIOC_LED_BLUE) | \
- PIN_OTYPE_PUSHPULL(GPIOC_LED_ORANGE) | \
- PIN_OTYPE_PUSHPULL(GPIOC_LED_GREEN) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \
- PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_MEMS_CS) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN1) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN2) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN3) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN5) | \
- PIN_OSPEED_HIGH(GPIOC_LED_RED) | \
- PIN_OSPEED_HIGH(GPIOC_LED_BLUE) | \
- PIN_OSPEED_HIGH(GPIOC_LED_ORANGE) | \
- PIN_OSPEED_HIGH(GPIOC_LED_GREEN) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN11) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN12) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN13) | \
- PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | \
- PIN_OSPEED_HIGH(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_MEMS_CS) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN5) | \
- PIN_PUPDR_FLOATING(GPIOC_LED_RED) | \
- PIN_PUPDR_FLOATING(GPIOC_LED_BLUE) | \
- PIN_PUPDR_FLOATING(GPIOC_LED_ORANGE) | \
- PIN_PUPDR_FLOATING(GPIOC_LED_GREEN) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN13) | \
- PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \
- PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_MEMS_CS) | \
- PIN_ODR_HIGH(GPIOC_PIN1) | \
- PIN_ODR_HIGH(GPIOC_PIN2) | \
- PIN_ODR_HIGH(GPIOC_PIN3) | \
- PIN_ODR_HIGH(GPIOC_PIN4) | \
- PIN_ODR_HIGH(GPIOC_PIN5) | \
- PIN_ODR_LOW(GPIOC_LED_RED) | \
- PIN_ODR_LOW(GPIOC_LED_BLUE) | \
- PIN_ODR_LOW(GPIOC_LED_ORANGE) | \
- PIN_ODR_LOW(GPIOC_LED_GREEN) | \
- PIN_ODR_HIGH(GPIOC_PIN10) | \
- PIN_ODR_HIGH(GPIOC_PIN11) | \
- PIN_ODR_HIGH(GPIOC_PIN12) | \
- PIN_ODR_HIGH(GPIOC_PIN13) | \
- PIN_ODR_HIGH(GPIOC_OSC32_IN) | \
- PIN_ODR_HIGH(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_MEMS_CS, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOC_LED_RED, 0U) | \
- PIN_AFIO_AF(GPIOC_LED_BLUE, 0U))
-#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_LED_ORANGE, 0U) | \
- PIN_AFIO_AF(GPIOC_LED_GREEN, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | \
- PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U))
-
-/*
- * GPIOD setup:
- *
- * PD0 - PIN0 (input pullup).
- * PD1 - PIN1 (input pullup).
- * PD2 - PIN2 (input pullup).
- * PD3 - PIN3 (input pullup).
- * PD4 - PIN4 (input pullup).
- * PD5 - PIN5 (input pullup).
- * PD6 - PIN6 (input pullup).
- * PD7 - PIN7 (input pullup).
- * PD8 - PIN8 (input pullup).
- * PD9 - PIN9 (input pullup).
- * PD10 - PIN10 (input pullup).
- * PD11 - PIN11 (input pullup).
- * PD12 - PIN12 (input pullup).
- * PD13 - PIN13 (input pullup).
- * PD14 - PIN14 (input pullup).
- * PD15 - PIN15 (input pullup).
- */
-#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \
- PIN_MODE_INPUT(GPIOD_PIN1) | \
- PIN_MODE_INPUT(GPIOD_PIN2) | \
- PIN_MODE_INPUT(GPIOD_PIN3) | \
- PIN_MODE_INPUT(GPIOD_PIN4) | \
- PIN_MODE_INPUT(GPIOD_PIN5) | \
- PIN_MODE_INPUT(GPIOD_PIN6) | \
- PIN_MODE_INPUT(GPIOD_PIN7) | \
- PIN_MODE_INPUT(GPIOD_PIN8) | \
- PIN_MODE_INPUT(GPIOD_PIN9) | \
- PIN_MODE_INPUT(GPIOD_PIN10) | \
- PIN_MODE_INPUT(GPIOD_PIN11) | \
- PIN_MODE_INPUT(GPIOD_PIN12) | \
- PIN_MODE_INPUT(GPIOD_PIN13) | \
- PIN_MODE_INPUT(GPIOD_PIN14) | \
- PIN_MODE_INPUT(GPIOD_PIN15))
-#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
-#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN1) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN2) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN3) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN5) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN6) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN7) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN8) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN9) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN11) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN12) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN13) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN14) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN15))
-#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN15))
-#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \
- PIN_ODR_HIGH(GPIOD_PIN1) | \
- PIN_ODR_HIGH(GPIOD_PIN2) | \
- PIN_ODR_HIGH(GPIOD_PIN3) | \
- PIN_ODR_HIGH(GPIOD_PIN4) | \
- PIN_ODR_HIGH(GPIOD_PIN5) | \
- PIN_ODR_HIGH(GPIOD_PIN6) | \
- PIN_ODR_HIGH(GPIOD_PIN7) | \
- PIN_ODR_HIGH(GPIOD_PIN8) | \
- PIN_ODR_HIGH(GPIOD_PIN9) | \
- PIN_ODR_HIGH(GPIOD_PIN10) | \
- PIN_ODR_HIGH(GPIOD_PIN11) | \
- PIN_ODR_HIGH(GPIOD_PIN12) | \
- PIN_ODR_HIGH(GPIOD_PIN13) | \
- PIN_ODR_HIGH(GPIOD_PIN14) | \
- PIN_ODR_HIGH(GPIOD_PIN15))
-#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN7, 0U))
-#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN15, 0U))
-
-/*
- * GPIOE setup:
- *
- * PE0 - PIN0 (input pullup).
- * PE1 - PIN1 (input pullup).
- * PE2 - PIN2 (input pullup).
- * PE3 - PIN3 (input pullup).
- * PE4 - PIN4 (input pullup).
- * PE5 - PIN5 (input pullup).
- * PE6 - PIN6 (input pullup).
- * PE7 - PIN7 (input pullup).
- * PE8 - PIN8 (input pullup).
- * PE9 - PIN9 (input pullup).
- * PE10 - PIN10 (input pullup).
- * PE11 - PIN11 (input pullup).
- * PE12 - PIN12 (input pullup).
- * PE13 - PIN13 (input pullup).
- * PE14 - PIN14 (input pullup).
- * PE15 - PIN15 (input pullup).
- */
-#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \
- PIN_MODE_INPUT(GPIOE_PIN1) | \
- PIN_MODE_INPUT(GPIOE_PIN2) | \
- PIN_MODE_INPUT(GPIOE_PIN3) | \
- PIN_MODE_INPUT(GPIOE_PIN4) | \
- PIN_MODE_INPUT(GPIOE_PIN5) | \
- PIN_MODE_INPUT(GPIOE_PIN6) | \
- PIN_MODE_INPUT(GPIOE_PIN7) | \
- PIN_MODE_INPUT(GPIOE_PIN8) | \
- PIN_MODE_INPUT(GPIOE_PIN9) | \
- PIN_MODE_INPUT(GPIOE_PIN10) | \
- PIN_MODE_INPUT(GPIOE_PIN11) | \
- PIN_MODE_INPUT(GPIOE_PIN12) | \
- PIN_MODE_INPUT(GPIOE_PIN13) | \
- PIN_MODE_INPUT(GPIOE_PIN14) | \
- PIN_MODE_INPUT(GPIOE_PIN15))
-#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
-#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN1) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN2) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN3) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN5) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN6) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN7) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN8) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN9) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN11) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN12) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN13) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN14) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN15))
-#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN15))
-#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \
- PIN_ODR_HIGH(GPIOE_PIN1) | \
- PIN_ODR_HIGH(GPIOE_PIN2) | \
- PIN_ODR_HIGH(GPIOE_PIN3) | \
- PIN_ODR_HIGH(GPIOE_PIN4) | \
- PIN_ODR_HIGH(GPIOE_PIN5) | \
- PIN_ODR_HIGH(GPIOE_PIN6) | \
- PIN_ODR_HIGH(GPIOE_PIN7) | \
- PIN_ODR_HIGH(GPIOE_PIN8) | \
- PIN_ODR_HIGH(GPIOE_PIN9) | \
- PIN_ODR_HIGH(GPIOE_PIN10) | \
- PIN_ODR_HIGH(GPIOE_PIN11) | \
- PIN_ODR_HIGH(GPIOE_PIN12) | \
- PIN_ODR_HIGH(GPIOE_PIN13) | \
- PIN_ODR_HIGH(GPIOE_PIN14) | \
- PIN_ODR_HIGH(GPIOE_PIN15))
-#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN7, 0U))
-#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN15, 0U))
-
-/*
- * GPIOF setup:
- *
- * PF0 - OSC_IN (input floating).
- * PF1 - OSC_OUT (input floating).
- * PF2 - PIN2 (input pullup).
- * PF3 - PIN3 (input pullup).
- * PF4 - PIN4 (input pullup).
- * PF5 - PIN5 (input pullup).
- * PF6 - PIN6 (input pullup).
- * PF7 - PIN7 (input pullup).
- * PF8 - PIN8 (input pullup).
- * PF9 - PIN9 (input pullup).
- * PF10 - PIN10 (input pullup).
- * PF11 - PIN11 (input pullup).
- * PF12 - PIN12 (input pullup).
- * PF13 - PIN13 (input pullup).
- * PF14 - PIN14 (input pullup).
- * PF15 - PIN15 (input pullup).
- */
-#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_OSC_IN) | \
- PIN_MODE_INPUT(GPIOF_OSC_OUT) | \
- PIN_MODE_INPUT(GPIOF_PIN2) | \
- PIN_MODE_INPUT(GPIOF_PIN3) | \
- PIN_MODE_INPUT(GPIOF_PIN4) | \
- PIN_MODE_INPUT(GPIOF_PIN5) | \
- PIN_MODE_INPUT(GPIOF_PIN6) | \
- PIN_MODE_INPUT(GPIOF_PIN7) | \
- PIN_MODE_INPUT(GPIOF_PIN8) | \
- PIN_MODE_INPUT(GPIOF_PIN9) | \
- PIN_MODE_INPUT(GPIOF_PIN10) | \
- PIN_MODE_INPUT(GPIOF_PIN11) | \
- PIN_MODE_INPUT(GPIOF_PIN12) | \
- PIN_MODE_INPUT(GPIOF_PIN13) | \
- PIN_MODE_INPUT(GPIOF_PIN14) | \
- PIN_MODE_INPUT(GPIOF_PIN15))
-#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) | \
- PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
-#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOF_OSC_IN) | \
- PIN_OSPEED_VERYLOW(GPIOF_OSC_OUT) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN2) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN3) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN5) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN7) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN8) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN9) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN12) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN13) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN14) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN15))
-#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) | \
- PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN15))
-#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_OSC_IN) | \
- PIN_ODR_HIGH(GPIOF_OSC_OUT) | \
- PIN_ODR_HIGH(GPIOF_PIN2) | \
- PIN_ODR_HIGH(GPIOF_PIN3) | \
- PIN_ODR_HIGH(GPIOF_PIN4) | \
- PIN_ODR_HIGH(GPIOF_PIN5) | \
- PIN_ODR_HIGH(GPIOF_PIN6) | \
- PIN_ODR_HIGH(GPIOF_PIN7) | \
- PIN_ODR_HIGH(GPIOF_PIN8) | \
- PIN_ODR_HIGH(GPIOF_PIN9) | \
- PIN_ODR_HIGH(GPIOF_PIN10) | \
- PIN_ODR_HIGH(GPIOF_PIN11) | \
- PIN_ODR_HIGH(GPIOF_PIN12) | \
- PIN_ODR_HIGH(GPIOF_PIN13) | \
- PIN_ODR_HIGH(GPIOF_PIN14) | \
- PIN_ODR_HIGH(GPIOF_PIN15))
-#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_OSC_IN, 0U) | \
- PIN_AFIO_AF(GPIOF_OSC_OUT, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN7, 0U))
-#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN15, 0U))
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
- void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* BOARD_H */
diff --git a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.mk b/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.mk
deleted file mode 100644
index b98dcdd26c..0000000000
--- a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/board.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY/board.c
-
-# Required include directories
-BOARDINC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY
diff --git a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg b/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg
deleted file mode 100644
index 9c7cf4fd76..0000000000
--- a/keyboards/at_at/660m/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg
+++ /dev/null
@@ -1,703 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- STM32F0xx board Template -->
-<board
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/boards/stm32f0xx_board.xsd">
- <configuration_settings>
- <templates_path>resources/gencfg/processors/boards/stm32f0xx/templates</templates_path>
- <output_path>..</output_path>
- <hal_version>3.0.x</hal_version>
- </configuration_settings>
- <board_name>ST STM32F072B-Discovery</board_name>
- <board_id>ST_STM32F072B_DISCOVERY</board_id>
- <board_functions></board_functions>
- <subtype>STM32F072xB</subtype>
- <clocks HSEFrequency="0" HSEBypass="true" LSEFrequency="0"
- LSEBypass="false" LSEDrive="3 High Drive (default)" />
- <ports>
- <GPIOA>
- <pin0
- ID="BUTTON"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID="USB_DM"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID="USB_DP"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID="SWDIO"
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullUp"
- Level="High"
- Mode="Alternate"
- Alternate="0" />
- <pin14
- ID="SWCLK"
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullDown"
- Level="High"
- Mode="Alternate"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- </GPIOA>
- <GPIOB>
- <pin0
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID="SPI2_SCK"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Alternate"
- Alternate="0" />
- <pin14
- ID="SPI2_MISO"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Alternate"
- Alternate="0" />
- <pin15
- ID="SPI2_MOSI"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Alternate"
- Alternate="0" />
- </GPIOB>
- <GPIOC>
- <pin0
- ID="MEMS_CS"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="High"
- Mode="Output"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID="LED_RED"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="Low"
- Mode="Output"
- Alternate="0" />
- <pin7
- ID="LED_BLUE"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="Low"
- Mode="Output"
- Alternate="0" />
- <pin8
- ID="LED_ORANGE"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="Low"
- Mode="Output"
- Alternate="0" ></pin8>
- <pin9
- ID="LED_GREEN"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="Low"
- Mode="Output"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID="OSC32_IN"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID="OSC32_OUT"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- </GPIOC>
- <GPIOD>
- <pin0
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- </GPIOD>
- <GPIOE>
- <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- </GPIOE>
- <GPIOF>
- <pin0
- ID="OSC_IN"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID="OSC_OUT"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- </GPIOF>
- </ports>
-</board>
diff --git a/keyboards/at_at/660m/config.h b/keyboards/at_at/660m/config.h
index 93b58b30af..c876e0d1aa 100644
--- a/keyboards/at_at/660m/config.h
+++ b/keyboards/at_at/660m/config.h
@@ -17,6 +17,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
+/* Ensure we jump to bootloader if the RESET keycode was pressed */
+#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+
+/* LSE clock */
+#define STM32_LSECLK 32768
+
/* USB Device descriptor parameter */
#define VENDOR_ID 0xA22A
#define PRODUCT_ID 0x6600
diff --git a/keyboards/at_at/660m/rules.mk b/keyboards/at_at/660m/rules.mk
index 8c69ff7e24..a94604fb09 100644
--- a/keyboards/at_at/660m/rules.mk
+++ b/keyboards/at_at/660m/rules.mk
@@ -1,6 +1,6 @@
# MCU name
MCU = STM32F072
-BOARD = ST_STM32F072B_DISCOVERY
+BOARD = GENERIC_STM32_F072XB
# Build Options
# comment out to disable the options.
diff --git a/keyboards/bm40hsrgb/rules.mk b/keyboards/bm40hsrgb/rules.mk
index e83c0edb7e..426c99c98d 100755
--- a/keyboards/bm40hsrgb/rules.mk
+++ b/keyboards/bm40hsrgb/rules.mk
@@ -19,7 +19,8 @@ NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
LAYOUTS = planck_mit
LAYOUTS_HAS_RGB = yes
diff --git a/keyboards/bm60poker/rules.mk b/keyboards/bm60poker/rules.mk
index 3f4a00ead5..74364ace19 100644
--- a/keyboards/bm60poker/rules.mk
+++ b/keyboards/bm60poker/rules.mk
@@ -20,5 +20,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
LAYOUTS = 60_ansi
diff --git a/keyboards/bm60rgb/rules.mk b/keyboards/bm60rgb/rules.mk
index d888399cfc..9e0e36610b 100644
--- a/keyboards/bm60rgb/rules.mk
+++ b/keyboards/bm60rgb/rules.mk
@@ -30,7 +30,8 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
LTO_ENABLE = yes
# partially generated by KBFirmware JSON to QMK Parser
diff --git a/keyboards/bm60rgb_iso/rules.mk b/keyboards/bm60rgb_iso/rules.mk
index e591553885..8a550e6331 100644
--- a/keyboards/bm60rgb_iso/rules.mk
+++ b/keyboards/bm60rgb_iso/rules.mk
@@ -20,5 +20,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
LTO_ENABLE = yes
diff --git a/keyboards/boston_meetup/2019/rules.mk b/keyboards/boston_meetup/2019/rules.mk
index 73f9008f01..aa35ba7539 100644
--- a/keyboards/boston_meetup/2019/rules.mk
+++ b/keyboards/boston_meetup/2019/rules.mk
@@ -16,7 +16,8 @@ NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = no # Custom matrix file
AUDIO_ENABLE = yes
RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = no #WS2812
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
HAPTIC_ENABLE += DRV2605L
QWIIC_ENABLE += MICRO_OLED
# SERIAL_LINK_ENABLE = yes
diff --git a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.c b/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.c
deleted file mode 100644
index 7c09bd997c..0000000000
--- a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * This file has been automatically generated using ChibiStudio board
- * generator plugin. Do not edit manually.
- */
-
-#include "hal.h"
-#include "stm32_gpio.h"
-
-/*===========================================================================*/
-/* Driver local definitions. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver exported variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver local variables and types. */
-/*===========================================================================*/
-
-/**
- * @brief Type of STM32 GPIO port setup.
- */
-typedef struct {
- uint32_t moder;
- uint32_t otyper;
- uint32_t ospeedr;
- uint32_t pupdr;
- uint32_t odr;
- uint32_t afrl;
- uint32_t afrh;
-} gpio_setup_t;
-
-/**
- * @brief Type of STM32 GPIO initialization data.
- */
-typedef struct {
-#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
- gpio_setup_t PAData;
-#endif
-#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
- gpio_setup_t PBData;
-#endif
-#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
- gpio_setup_t PCData;
-#endif
-#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
- gpio_setup_t PDData;
-#endif
-#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
- gpio_setup_t PEData;
-#endif
-#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
- gpio_setup_t PFData;
-#endif
-#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
- gpio_setup_t PGData;
-#endif
-#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
- gpio_setup_t PHData;
-#endif
-#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
- gpio_setup_t PIData;
-#endif
-#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
- gpio_setup_t PJData;
-#endif
-#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
- gpio_setup_t PKData;
-#endif
-} gpio_config_t;
-
-/**
- * @brief STM32 GPIO static initialization data.
- */
-static const gpio_config_t gpio_default_config = {
-#if STM32_HAS_GPIOA
- {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
- VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
-#endif
-#if STM32_HAS_GPIOB
- {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
- VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
-#endif
-#if STM32_HAS_GPIOC
- {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
- VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
-#endif
-#if STM32_HAS_GPIOD
- {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
- VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
-#endif
-#if STM32_HAS_GPIOE
- {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
- VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
-#endif
-#if STM32_HAS_GPIOF
- {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
- VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
-#endif
-#if STM32_HAS_GPIOG
- {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
- VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
-#endif
-#if STM32_HAS_GPIOH
- {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
- VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
-#endif
-#if STM32_HAS_GPIOI
- {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
- VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
-#endif
-#if STM32_HAS_GPIOJ
- {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR,
- VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
-#endif
-#if STM32_HAS_GPIOK
- {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR,
- VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
-#endif
-};
-
-/*===========================================================================*/
-/* Driver local functions. */
-/*===========================================================================*/
-
-static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
-
- gpiop->OTYPER = config->otyper;
- gpiop->OSPEEDR = config->ospeedr;
- gpiop->PUPDR = config->pupdr;
- gpiop->ODR = config->odr;
- gpiop->AFRL = config->afrl;
- gpiop->AFRH = config->afrh;
- gpiop->MODER = config->moder;
-}
-
-static void stm32_gpio_init(void) {
-
- /* Enabling GPIO-related clocks, the mask comes from the
- registry header file.*/
- rccResetAHB(STM32_GPIO_EN_MASK);
- rccEnableAHB(STM32_GPIO_EN_MASK, true);
-
- /* Initializing all the defined GPIO ports.*/
-#if STM32_HAS_GPIOA
- gpio_init(GPIOA, &gpio_default_config.PAData);
-#endif
-#if STM32_HAS_GPIOB
- gpio_init(GPIOB, &gpio_default_config.PBData);
-#endif
-#if STM32_HAS_GPIOC
- gpio_init(GPIOC, &gpio_default_config.PCData);
-#endif
-#if STM32_HAS_GPIOD
- gpio_init(GPIOD, &gpio_default_config.PDData);
-#endif
-#if STM32_HAS_GPIOE
- gpio_init(GPIOE, &gpio_default_config.PEData);
-#endif
-#if STM32_HAS_GPIOF
- gpio_init(GPIOF, &gpio_default_config.PFData);
-#endif
-#if STM32_HAS_GPIOG
- gpio_init(GPIOG, &gpio_default_config.PGData);
-#endif
-#if STM32_HAS_GPIOH
- gpio_init(GPIOH, &gpio_default_config.PHData);
-#endif
-#if STM32_HAS_GPIOI
- gpio_init(GPIOI, &gpio_default_config.PIData);
-#endif
-#if STM32_HAS_GPIOJ
- gpio_init(GPIOJ, &gpio_default_config.PJData);
-#endif
-#if STM32_HAS_GPIOK
- gpio_init(GPIOK, &gpio_default_config.PKData);
-#endif
-}
-
-/*===========================================================================*/
-/* Driver interrupt handlers. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver exported functions. */
-/*===========================================================================*/
-
-/**
- * @brief Early initialization code.
- * @details GPIO ports and system clocks are initialized before everything
- * else.
- */
-void __early_init(void) {
- extern void enter_bootloader_mode_if_requested(void);
- enter_bootloader_mode_if_requested();
- stm32_gpio_init();
- stm32_clock_init();
-}
-
-#if HAL_USE_SDC || defined(__DOXYGEN__)
-/**
- * @brief SDC card detection.
- */
-bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
-
- (void)sdcp;
- /* TODO: Fill the implementation.*/
- return true;
-}
-
-/**
- * @brief SDC card write protection detection.
- */
-bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
-
- (void)sdcp;
- /* TODO: Fill the implementation.*/
- return false;
-}
-#endif /* HAL_USE_SDC */
-
-#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
-/**
- * @brief MMC_SPI card detection.
- */
-bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
-
- (void)mmcp;
- /* TODO: Fill the implementation.*/
- return true;
-}
-
-/**
- * @brief MMC_SPI card write protection detection.
- */
-bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
-
- (void)mmcp;
- /* TODO: Fill the implementation.*/
- return false;
-}
-#endif
-
-/**
- * @brief Board-specific initialization code.
- * @todo Add your board-specific code, if any.
- */
-void boardInit(void) {
- SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
- SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
-}
diff --git a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.h b/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.h
deleted file mode 100644
index 57636d1f12..0000000000
--- a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.h
+++ /dev/null
@@ -1,940 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * This file has been automatically generated using ChibiStudio board
- * generator plugin. Do not edit manually.
- */
-
-#ifndef BOARD_H
-#define BOARD_H
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-/*
- * Setup for ST STM32F072B-Discovery board.
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_ST_STM32F072B_DISCOVERY
-#define BOARD_NAME "ST STM32F072B-Discovery"
-
-/*
- * Board oscillators-related settings.
- * NOTE: HSE not fitted.
- */
-#if !defined(STM32_LSECLK)
-#define STM32_LSECLK 32768
-#endif
-
-#define STM32_LSEDRV (3U << 3U)
-
-#if !defined(STM32_HSECLK)
-#define STM32_HSECLK 0U
-#endif
-
-#define STM32_HSE_BYPASS
-
-/*
- * MCU type as defined in the ST header.
- */
-#define STM32F072xB
-
-/*
- * IO pins assignments.
- */
-#define GPIOA_BUTTON 0U
-#define GPIOA_PIN1 1U
-#define GPIOA_PIN2 2U
-#define GPIOA_PIN3 3U
-#define GPIOA_PIN4 4U
-#define GPIOA_PIN5 5U
-#define GPIOA_PIN6 6U
-#define GPIOA_PIN7 7U
-#define GPIOA_PIN8 8U
-#define GPIOA_PIN9 9U
-#define GPIOA_PIN10 10U
-#define GPIOA_USB_DM 11U
-#define GPIOA_USB_DP 12U
-#define GPIOA_SWDIO 13U
-#define GPIOA_SWCLK 14U
-#define GPIOA_PIN15 15U
-
-#define GPIOB_PIN0 0U
-#define GPIOB_PIN1 1U
-#define GPIOB_PIN2 2U
-#define GPIOB_PIN3 3U
-#define GPIOB_PIN4 4U
-#define GPIOB_PIN5 5U
-#define GPIOB_PIN6 6U
-#define GPIOB_PIN7 7U
-#define GPIOB_PIN8 8U
-#define GPIOB_PIN9 9U
-#define GPIOB_PIN10 10U
-#define GPIOB_PIN11 11U
-#define GPIOB_PIN12 12U
-#define GPIOB_SPI2_SCK 13U
-#define GPIOB_SPI2_MISO 14U
-#define GPIOB_SPI2_MOSI 15U
-
-#define GPIOC_MEMS_CS 0U
-#define GPIOC_PIN1 1U
-#define GPIOC_PIN2 2U
-#define GPIOC_PIN3 3U
-#define GPIOC_PIN4 4U
-#define GPIOC_PIN5 5U
-#define GPIOC_LED_RED 6U
-#define GPIOC_LED_BLUE 7U
-#define GPIOC_LED_ORANGE 8U
-#define GPIOC_LED_GREEN 9U
-#define GPIOC_PIN10 10U
-#define GPIOC_PIN11 11U
-#define GPIOC_PIN12 12U
-#define GPIOC_PIN13 13U
-#define GPIOC_OSC32_IN 14U
-#define GPIOC_OSC32_OUT 15U
-
-#define GPIOD_PIN0 0U
-#define GPIOD_PIN1 1U
-#define GPIOD_PIN2 2U
-#define GPIOD_PIN3 3U
-#define GPIOD_PIN4 4U
-#define GPIOD_PIN5 5U
-#define GPIOD_PIN6 6U
-#define GPIOD_PIN7 7U
-#define GPIOD_PIN8 8U
-#define GPIOD_PIN9 9U
-#define GPIOD_PIN10 10U
-#define GPIOD_PIN11 11U
-#define GPIOD_PIN12 12U
-#define GPIOD_PIN13 13U
-#define GPIOD_PIN14 14U
-#define GPIOD_PIN15 15U
-
-#define GPIOE_PIN0 0U
-#define GPIOE_PIN1 1U
-#define GPIOE_PIN2 2U
-#define GPIOE_PIN3 3U
-#define GPIOE_PIN4 4U
-#define GPIOE_PIN5 5U
-#define GPIOE_PIN6 6U
-#define GPIOE_PIN7 7U
-#define GPIOE_PIN8 8U
-#define GPIOE_PIN9 9U
-#define GPIOE_PIN10 10U
-#define GPIOE_PIN11 11U
-#define GPIOE_PIN12 12U
-#define GPIOE_PIN13 13U
-#define GPIOE_PIN14 14U
-#define GPIOE_PIN15 15U
-
-#define GPIOF_OSC_IN 0U
-#define GPIOF_OSC_OUT 1U
-#define GPIOF_PIN2 2U
-#define GPIOF_PIN3 3U
-#define GPIOF_PIN4 4U
-#define GPIOF_PIN5 5U
-#define GPIOF_PIN6 6U
-#define GPIOF_PIN7 7U
-#define GPIOF_PIN8 8U
-#define GPIOF_PIN9 9U
-#define GPIOF_PIN10 10U
-#define GPIOF_PIN11 11U
-#define GPIOF_PIN12 12U
-#define GPIOF_PIN13 13U
-#define GPIOF_PIN14 14U
-#define GPIOF_PIN15 15U
-
-/*
- * IO lines assignments.
- */
-#define LINE_BUTTON PAL_LINE(GPIOA, 0U)
-#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
-#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
-#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
-#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
-#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U)
-#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U)
-#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U)
-#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U)
-#define LINE_LED_RED PAL_LINE(GPIOC, 6U)
-#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U)
-#define LINE_LED_ORANGE PAL_LINE(GPIOC, 8U)
-#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U)
-#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U)
-#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U)
-#define LINE_OSC_IN PAL_LINE(GPIOF, 0U)
-#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U)
-
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Derived constants and error checks. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver macros. */
-/*===========================================================================*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- * Please refer to the STM32 Reference Manual for details.
- */
-#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
-#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
-#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
-#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
-#define PIN_ODR_LOW(n) (0U << (n))
-#define PIN_ODR_HIGH(n) (1U << (n))
-#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
-#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
-#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
-#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
-#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
-#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
-#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
-#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
-#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
-#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
-
-/*
- * GPIOA setup:
- *
- * PA0 - BUTTON (input floating).
- * PA1 - PIN1 (input pullup).
- * PA2 - PIN2 (input pullup).
- * PA3 - PIN3 (input pullup).
- * PA4 - PIN4 (input pullup).
- * PA5 - PIN5 (input pullup).
- * PA6 - PIN6 (input pullup).
- * PA7 - PIN7 (input pullup).
- * PA8 - PIN8 (input pullup).
- * PA9 - PIN9 (input pullup).
- * PA10 - PIN10 (input pullup).
- * PA11 - USB_DM (input floating).
- * PA12 - USB_DP (input floating).
- * PA13 - SWDIO (alternate 0).
- * PA14 - SWCLK (alternate 0).
- * PA15 - PIN15 (input pullup).
- */
-#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \
- PIN_MODE_INPUT(GPIOA_PIN1) | \
- PIN_MODE_INPUT(GPIOA_PIN2) | \
- PIN_MODE_INPUT(GPIOA_PIN3) | \
- PIN_MODE_INPUT(GPIOA_PIN4) | \
- PIN_MODE_INPUT(GPIOA_PIN5) | \
- PIN_MODE_INPUT(GPIOA_PIN6) | \
- PIN_MODE_INPUT(GPIOA_PIN7) | \
- PIN_MODE_INPUT(GPIOA_PIN8) | \
- PIN_MODE_INPUT(GPIOA_PIN9) | \
- PIN_MODE_INPUT(GPIOA_PIN10) | \
- PIN_MODE_INPUT(GPIOA_USB_DM) | \
- PIN_MODE_INPUT(GPIOA_USB_DP) | \
- PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \
- PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \
- PIN_MODE_INPUT(GPIOA_PIN15))
-#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \
- PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \
- PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \
- PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \
- PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
-#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_BUTTON) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN1) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN2) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN3) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN5) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN6) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN7) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN8) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN9) | \
- PIN_OSPEED_VERYLOW(GPIOA_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOA_USB_DM) | \
- PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | \
- PIN_OSPEED_HIGH(GPIOA_SWDIO) | \
- PIN_OSPEED_HIGH(GPIOA_SWCLK) | \
- PIN_OSPEED_HIGH(GPIOA_PIN15))
-#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN10) | \
- PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \
- PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \
- PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \
- PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \
- PIN_PUPDR_PULLUP(GPIOA_PIN15))
-#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \
- PIN_ODR_HIGH(GPIOA_PIN1) | \
- PIN_ODR_HIGH(GPIOA_PIN2) | \
- PIN_ODR_HIGH(GPIOA_PIN3) | \
- PIN_ODR_HIGH(GPIOA_PIN4) | \
- PIN_ODR_HIGH(GPIOA_PIN5) | \
- PIN_ODR_HIGH(GPIOA_PIN6) | \
- PIN_ODR_HIGH(GPIOA_PIN7) | \
- PIN_ODR_HIGH(GPIOA_PIN8) | \
- PIN_ODR_HIGH(GPIOA_PIN9) | \
- PIN_ODR_HIGH(GPIOA_PIN10) | \
- PIN_ODR_HIGH(GPIOA_USB_DM) | \
- PIN_ODR_HIGH(GPIOA_USB_DP) | \
- PIN_ODR_HIGH(GPIOA_SWDIO) | \
- PIN_ODR_HIGH(GPIOA_SWCLK) | \
- PIN_ODR_HIGH(GPIOA_PIN15))
-#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN7, 0U))
-#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOA_USB_DM, 0U) | \
- PIN_AFIO_AF(GPIOA_USB_DP, 0U) | \
- PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \
- PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \
- PIN_AFIO_AF(GPIOA_PIN15, 0U))
-
-/*
- * GPIOB setup:
- *
- * PB0 - PIN0 (input pullup).
- * PB1 - PIN1 (input pullup).
- * PB2 - PIN2 (input pullup).
- * PB3 - PIN3 (input pullup).
- * PB4 - PIN4 (input pullup).
- * PB5 - PIN5 (input pullup).
- * PB6 - PIN6 (input pullup).
- * PB7 - PIN7 (input pullup).
- * PB8 - PIN8 (input pullup).
- * PB9 - PIN9 (input pullup).
- * PB10 - PIN10 (input pullup).
- * PB11 - PIN11 (input pullup).
- * PB12 - PIN12 (input pullup).
- * PB13 - SPI2_SCK (alternate 0).
- * PB14 - SPI2_MISO (alternate 0).
- * PB15 - SPI2_MOSI (alternate 0).
- */
-#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \
- PIN_MODE_INPUT(GPIOB_PIN1) | \
- PIN_MODE_INPUT(GPIOB_PIN2) | \
- PIN_MODE_INPUT(GPIOB_PIN3) | \
- PIN_MODE_INPUT(GPIOB_PIN4) | \
- PIN_MODE_INPUT(GPIOB_PIN5) | \
- PIN_MODE_INPUT(GPIOB_PIN6) | \
- PIN_MODE_INPUT(GPIOB_PIN7) | \
- PIN_MODE_INPUT(GPIOB_PIN8) | \
- PIN_MODE_INPUT(GPIOB_PIN9) | \
- PIN_MODE_INPUT(GPIOB_PIN10) | \
- PIN_MODE_INPUT(GPIOB_PIN11) | \
- PIN_MODE_INPUT(GPIOB_PIN12) | \
- PIN_MODE_ALTERNATE(GPIOB_SPI2_SCK) | \
- PIN_MODE_ALTERNATE(GPIOB_SPI2_MISO) | \
- PIN_MODE_ALTERNATE(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SCK) | \
- PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MISO) | \
- PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN1) | \
- PIN_OSPEED_HIGH(GPIOB_PIN2) | \
- PIN_OSPEED_HIGH(GPIOB_PIN3) | \
- PIN_OSPEED_HIGH(GPIOB_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN5) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN6) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN7) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN8) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN9) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN11) | \
- PIN_OSPEED_VERYLOW(GPIOB_PIN12) | \
- PIN_OSPEED_VERYLOW(GPIOB_SPI2_SCK) | \
- PIN_OSPEED_VERYLOW(GPIOB_SPI2_MISO) | \
- PIN_OSPEED_VERYLOW(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOB_PIN12) | \
- PIN_PUPDR_FLOATING(GPIOB_SPI2_SCK) | \
- PIN_PUPDR_FLOATING(GPIOB_SPI2_MISO) | \
- PIN_PUPDR_FLOATING(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \
- PIN_ODR_HIGH(GPIOB_PIN1) | \
- PIN_ODR_HIGH(GPIOB_PIN2) | \
- PIN_ODR_HIGH(GPIOB_PIN3) | \
- PIN_ODR_HIGH(GPIOB_PIN4) | \
- PIN_ODR_HIGH(GPIOB_PIN5) | \
- PIN_ODR_HIGH(GPIOB_PIN6) | \
- PIN_ODR_HIGH(GPIOB_PIN7) | \
- PIN_ODR_HIGH(GPIOB_PIN8) | \
- PIN_ODR_HIGH(GPIOB_PIN9) | \
- PIN_ODR_HIGH(GPIOB_PIN10) | \
- PIN_ODR_HIGH(GPIOB_PIN11) | \
- PIN_ODR_HIGH(GPIOB_PIN12) | \
- PIN_ODR_HIGH(GPIOB_SPI2_SCK) | \
- PIN_ODR_HIGH(GPIOB_SPI2_MISO) | \
- PIN_ODR_HIGH(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN7, 0U))
-#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOB_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOB_SPI2_SCK, 0U) | \
- PIN_AFIO_AF(GPIOB_SPI2_MISO, 0U) | \
- PIN_AFIO_AF(GPIOB_SPI2_MOSI, 0U))
-
-/*
- * GPIOC setup:
- *
- * PC0 - MEMS_CS (output pushpull maximum).
- * PC1 - PIN1 (input pullup).
- * PC2 - PIN2 (input pullup).
- * PC3 - PIN3 (input pullup).
- * PC4 - PIN4 (input pullup).
- * PC5 - PIN5 (input pullup).
- * PC6 - LED_RED (output pushpull maximum).
- * PC7 - LED_BLUE (output pushpull maximum).
- * PC8 - LED_ORANGE (output pushpull maximum).
- * PC9 - LED_GREEN (output pushpull maximum).
- * PC10 - PIN10 (input pullup).
- * PC11 - PIN11 (input pullup).
- * PC12 - PIN12 (input pullup).
- * PC13 - PIN13 (input pullup).
- * PC14 - OSC32_IN (input floating).
- * PC15 - OSC32_OUT (input floating).
- */
-#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_MEMS_CS) | \
- PIN_MODE_INPUT(GPIOC_PIN1) | \
- PIN_MODE_INPUT(GPIOC_PIN2) | \
- PIN_MODE_INPUT(GPIOC_PIN3) | \
- PIN_MODE_INPUT(GPIOC_PIN4) | \
- PIN_MODE_INPUT(GPIOC_PIN5) | \
- PIN_MODE_OUTPUT(GPIOC_LED_RED) | \
- PIN_MODE_OUTPUT(GPIOC_LED_BLUE) | \
- PIN_MODE_OUTPUT(GPIOC_LED_ORANGE) | \
- PIN_MODE_OUTPUT(GPIOC_LED_GREEN) | \
- PIN_MODE_INPUT(GPIOC_PIN10) | \
- PIN_MODE_INPUT(GPIOC_PIN11) | \
- PIN_MODE_INPUT(GPIOC_PIN12) | \
- PIN_MODE_INPUT(GPIOC_PIN13) | \
- PIN_MODE_INPUT(GPIOC_OSC32_IN) | \
- PIN_MODE_INPUT(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_MEMS_CS) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOC_LED_RED) | \
- PIN_OTYPE_PUSHPULL(GPIOC_LED_BLUE) | \
- PIN_OTYPE_PUSHPULL(GPIOC_LED_ORANGE) | \
- PIN_OTYPE_PUSHPULL(GPIOC_LED_GREEN) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \
- PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_MEMS_CS) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN1) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN2) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN3) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN5) | \
- PIN_OSPEED_HIGH(GPIOC_LED_RED) | \
- PIN_OSPEED_HIGH(GPIOC_LED_BLUE) | \
- PIN_OSPEED_HIGH(GPIOC_LED_ORANGE) | \
- PIN_OSPEED_HIGH(GPIOC_LED_GREEN) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN11) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN12) | \
- PIN_OSPEED_VERYLOW(GPIOC_PIN13) | \
- PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | \
- PIN_OSPEED_HIGH(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_MEMS_CS) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN5) | \
- PIN_PUPDR_FLOATING(GPIOC_LED_RED) | \
- PIN_PUPDR_FLOATING(GPIOC_LED_BLUE) | \
- PIN_PUPDR_FLOATING(GPIOC_LED_ORANGE) | \
- PIN_PUPDR_FLOATING(GPIOC_LED_GREEN) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOC_PIN13) | \
- PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \
- PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_MEMS_CS) | \
- PIN_ODR_HIGH(GPIOC_PIN1) | \
- PIN_ODR_HIGH(GPIOC_PIN2) | \
- PIN_ODR_HIGH(GPIOC_PIN3) | \
- PIN_ODR_HIGH(GPIOC_PIN4) | \
- PIN_ODR_HIGH(GPIOC_PIN5) | \
- PIN_ODR_LOW(GPIOC_LED_RED) | \
- PIN_ODR_LOW(GPIOC_LED_BLUE) | \
- PIN_ODR_LOW(GPIOC_LED_ORANGE) | \
- PIN_ODR_LOW(GPIOC_LED_GREEN) | \
- PIN_ODR_HIGH(GPIOC_PIN10) | \
- PIN_ODR_HIGH(GPIOC_PIN11) | \
- PIN_ODR_HIGH(GPIOC_PIN12) | \
- PIN_ODR_HIGH(GPIOC_PIN13) | \
- PIN_ODR_HIGH(GPIOC_OSC32_IN) | \
- PIN_ODR_HIGH(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_MEMS_CS, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOC_LED_RED, 0U) | \
- PIN_AFIO_AF(GPIOC_LED_BLUE, 0U))
-#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_LED_ORANGE, 0U) | \
- PIN_AFIO_AF(GPIOC_LED_GREEN, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOC_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | \
- PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U))
-
-/*
- * GPIOD setup:
- *
- * PD0 - PIN0 (input pullup).
- * PD1 - PIN1 (input pullup).
- * PD2 - PIN2 (input pullup).
- * PD3 - PIN3 (input pullup).
- * PD4 - PIN4 (input pullup).
- * PD5 - PIN5 (input pullup).
- * PD6 - PIN6 (input pullup).
- * PD7 - PIN7 (input pullup).
- * PD8 - PIN8 (input pullup).
- * PD9 - PIN9 (input pullup).
- * PD10 - PIN10 (input pullup).
- * PD11 - PIN11 (input pullup).
- * PD12 - PIN12 (input pullup).
- * PD13 - PIN13 (input pullup).
- * PD14 - PIN14 (input pullup).
- * PD15 - PIN15 (input pullup).
- */
-#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \
- PIN_MODE_INPUT(GPIOD_PIN1) | \
- PIN_MODE_INPUT(GPIOD_PIN2) | \
- PIN_MODE_INPUT(GPIOD_PIN3) | \
- PIN_MODE_INPUT(GPIOD_PIN4) | \
- PIN_MODE_INPUT(GPIOD_PIN5) | \
- PIN_MODE_INPUT(GPIOD_PIN6) | \
- PIN_MODE_INPUT(GPIOD_PIN7) | \
- PIN_MODE_INPUT(GPIOD_PIN8) | \
- PIN_MODE_INPUT(GPIOD_PIN9) | \
- PIN_MODE_INPUT(GPIOD_PIN10) | \
- PIN_MODE_INPUT(GPIOD_PIN11) | \
- PIN_MODE_INPUT(GPIOD_PIN12) | \
- PIN_MODE_INPUT(GPIOD_PIN13) | \
- PIN_MODE_INPUT(GPIOD_PIN14) | \
- PIN_MODE_INPUT(GPIOD_PIN15))
-#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
-#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN1) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN2) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN3) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN5) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN6) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN7) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN8) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN9) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN11) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN12) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN13) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN14) | \
- PIN_OSPEED_VERYLOW(GPIOD_PIN15))
-#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOD_PIN15))
-#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \
- PIN_ODR_HIGH(GPIOD_PIN1) | \
- PIN_ODR_HIGH(GPIOD_PIN2) | \
- PIN_ODR_HIGH(GPIOD_PIN3) | \
- PIN_ODR_HIGH(GPIOD_PIN4) | \
- PIN_ODR_HIGH(GPIOD_PIN5) | \
- PIN_ODR_HIGH(GPIOD_PIN6) | \
- PIN_ODR_HIGH(GPIOD_PIN7) | \
- PIN_ODR_HIGH(GPIOD_PIN8) | \
- PIN_ODR_HIGH(GPIOD_PIN9) | \
- PIN_ODR_HIGH(GPIOD_PIN10) | \
- PIN_ODR_HIGH(GPIOD_PIN11) | \
- PIN_ODR_HIGH(GPIOD_PIN12) | \
- PIN_ODR_HIGH(GPIOD_PIN13) | \
- PIN_ODR_HIGH(GPIOD_PIN14) | \
- PIN_ODR_HIGH(GPIOD_PIN15))
-#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN7, 0U))
-#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOD_PIN15, 0U))
-
-/*
- * GPIOE setup:
- *
- * PE0 - PIN0 (input pullup).
- * PE1 - PIN1 (input pullup).
- * PE2 - PIN2 (input pullup).
- * PE3 - PIN3 (input pullup).
- * PE4 - PIN4 (input pullup).
- * PE5 - PIN5 (input pullup).
- * PE6 - PIN6 (input pullup).
- * PE7 - PIN7 (input pullup).
- * PE8 - PIN8 (input pullup).
- * PE9 - PIN9 (input pullup).
- * PE10 - PIN10 (input pullup).
- * PE11 - PIN11 (input pullup).
- * PE12 - PIN12 (input pullup).
- * PE13 - PIN13 (input pullup).
- * PE14 - PIN14 (input pullup).
- * PE15 - PIN15 (input pullup).
- */
-#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \
- PIN_MODE_INPUT(GPIOE_PIN1) | \
- PIN_MODE_INPUT(GPIOE_PIN2) | \
- PIN_MODE_INPUT(GPIOE_PIN3) | \
- PIN_MODE_INPUT(GPIOE_PIN4) | \
- PIN_MODE_INPUT(GPIOE_PIN5) | \
- PIN_MODE_INPUT(GPIOE_PIN6) | \
- PIN_MODE_INPUT(GPIOE_PIN7) | \
- PIN_MODE_INPUT(GPIOE_PIN8) | \
- PIN_MODE_INPUT(GPIOE_PIN9) | \
- PIN_MODE_INPUT(GPIOE_PIN10) | \
- PIN_MODE_INPUT(GPIOE_PIN11) | \
- PIN_MODE_INPUT(GPIOE_PIN12) | \
- PIN_MODE_INPUT(GPIOE_PIN13) | \
- PIN_MODE_INPUT(GPIOE_PIN14) | \
- PIN_MODE_INPUT(GPIOE_PIN15))
-#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
-#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN1) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN2) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN3) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN5) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN6) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN7) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN8) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN9) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN11) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN12) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN13) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN14) | \
- PIN_OSPEED_VERYLOW(GPIOE_PIN15))
-#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN1) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOE_PIN15))
-#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \
- PIN_ODR_HIGH(GPIOE_PIN1) | \
- PIN_ODR_HIGH(GPIOE_PIN2) | \
- PIN_ODR_HIGH(GPIOE_PIN3) | \
- PIN_ODR_HIGH(GPIOE_PIN4) | \
- PIN_ODR_HIGH(GPIOE_PIN5) | \
- PIN_ODR_HIGH(GPIOE_PIN6) | \
- PIN_ODR_HIGH(GPIOE_PIN7) | \
- PIN_ODR_HIGH(GPIOE_PIN8) | \
- PIN_ODR_HIGH(GPIOE_PIN9) | \
- PIN_ODR_HIGH(GPIOE_PIN10) | \
- PIN_ODR_HIGH(GPIOE_PIN11) | \
- PIN_ODR_HIGH(GPIOE_PIN12) | \
- PIN_ODR_HIGH(GPIOE_PIN13) | \
- PIN_ODR_HIGH(GPIOE_PIN14) | \
- PIN_ODR_HIGH(GPIOE_PIN15))
-#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN1, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN7, 0U))
-#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOE_PIN15, 0U))
-
-/*
- * GPIOF setup:
- *
- * PF0 - OSC_IN (input floating).
- * PF1 - OSC_OUT (input floating).
- * PF2 - PIN2 (input pullup).
- * PF3 - PIN3 (input pullup).
- * PF4 - PIN4 (input pullup).
- * PF5 - PIN5 (input pullup).
- * PF6 - PIN6 (input pullup).
- * PF7 - PIN7 (input pullup).
- * PF8 - PIN8 (input pullup).
- * PF9 - PIN9 (input pullup).
- * PF10 - PIN10 (input pullup).
- * PF11 - PIN11 (input pullup).
- * PF12 - PIN12 (input pullup).
- * PF13 - PIN13 (input pullup).
- * PF14 - PIN14 (input pullup).
- * PF15 - PIN15 (input pullup).
- */
-#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_OSC_IN) | \
- PIN_MODE_INPUT(GPIOF_OSC_OUT) | \
- PIN_MODE_INPUT(GPIOF_PIN2) | \
- PIN_MODE_INPUT(GPIOF_PIN3) | \
- PIN_MODE_INPUT(GPIOF_PIN4) | \
- PIN_MODE_INPUT(GPIOF_PIN5) | \
- PIN_MODE_INPUT(GPIOF_PIN6) | \
- PIN_MODE_INPUT(GPIOF_PIN7) | \
- PIN_MODE_INPUT(GPIOF_PIN8) | \
- PIN_MODE_INPUT(GPIOF_PIN9) | \
- PIN_MODE_INPUT(GPIOF_PIN10) | \
- PIN_MODE_INPUT(GPIOF_PIN11) | \
- PIN_MODE_INPUT(GPIOF_PIN12) | \
- PIN_MODE_INPUT(GPIOF_PIN13) | \
- PIN_MODE_INPUT(GPIOF_PIN14) | \
- PIN_MODE_INPUT(GPIOF_PIN15))
-#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) | \
- PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \
- PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
-#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOF_OSC_IN) | \
- PIN_OSPEED_VERYLOW(GPIOF_OSC_OUT) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN2) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN3) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN4) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN5) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN7) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN8) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN9) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN10) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN12) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN13) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN14) | \
- PIN_OSPEED_VERYLOW(GPIOF_PIN15))
-#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) | \
- PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN2) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN3) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN4) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN5) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN6) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN7) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN8) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN9) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN10) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN11) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN12) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN13) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN14) | \
- PIN_PUPDR_PULLUP(GPIOF_PIN15))
-#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_OSC_IN) | \
- PIN_ODR_HIGH(GPIOF_OSC_OUT) | \
- PIN_ODR_HIGH(GPIOF_PIN2) | \
- PIN_ODR_HIGH(GPIOF_PIN3) | \
- PIN_ODR_HIGH(GPIOF_PIN4) | \
- PIN_ODR_HIGH(GPIOF_PIN5) | \
- PIN_ODR_HIGH(GPIOF_PIN6) | \
- PIN_ODR_HIGH(GPIOF_PIN7) | \
- PIN_ODR_HIGH(GPIOF_PIN8) | \
- PIN_ODR_HIGH(GPIOF_PIN9) | \
- PIN_ODR_HIGH(GPIOF_PIN10) | \
- PIN_ODR_HIGH(GPIOF_PIN11) | \
- PIN_ODR_HIGH(GPIOF_PIN12) | \
- PIN_ODR_HIGH(GPIOF_PIN13) | \
- PIN_ODR_HIGH(GPIOF_PIN14) | \
- PIN_ODR_HIGH(GPIOF_PIN15))
-#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_OSC_IN, 0U) | \
- PIN_AFIO_AF(GPIOF_OSC_OUT, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN2, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN3, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN4, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN5, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN6, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN7, 0U))
-#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN9, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN10, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN11, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN12, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN13, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN14, 0U) | \
- PIN_AFIO_AF(GPIOF_PIN15, 0U))
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#if !defined(_FROM_ASM_)
-#ifdef __cplusplus
-extern "C" {
-#endif
- void boardInit(void);
-#ifdef __cplusplus
-}
-#endif
-#endif /* _FROM_ASM_ */
-
-#endif /* BOARD_H */
diff --git a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.mk b/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.mk
deleted file mode 100644
index b98dcdd26c..0000000000
--- a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/board.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY/board.c
-
-# Required include directories
-BOARDINC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY
diff --git a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg b/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg
deleted file mode 100644
index 9c7cf4fd76..0000000000
--- a/keyboards/cannonkeys/satisfaction75/boards/ST_STM32F072B_DISCOVERY/cfg/board.chcfg
+++ /dev/null
@@ -1,703 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- STM32F0xx board Template -->
-<board
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/boards/stm32f0xx_board.xsd">
- <configuration_settings>
- <templates_path>resources/gencfg/processors/boards/stm32f0xx/templates</templates_path>
- <output_path>..</output_path>
- <hal_version>3.0.x</hal_version>
- </configuration_settings>
- <board_name>ST STM32F072B-Discovery</board_name>
- <board_id>ST_STM32F072B_DISCOVERY</board_id>
- <board_functions></board_functions>
- <subtype>STM32F072xB</subtype>
- <clocks HSEFrequency="0" HSEBypass="true" LSEFrequency="0"
- LSEBypass="false" LSEDrive="3 High Drive (default)" />
- <ports>
- <GPIOA>
- <pin0
- ID="BUTTON"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID="USB_DM"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID="USB_DP"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID="SWDIO"
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullUp"
- Level="High"
- Mode="Alternate"
- Alternate="0" />
- <pin14
- ID="SWCLK"
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullDown"
- Level="High"
- Mode="Alternate"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- </GPIOA>
- <GPIOB>
- <pin0
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Speed="Maximum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID="SPI2_SCK"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Alternate"
- Alternate="0" />
- <pin14
- ID="SPI2_MISO"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Alternate"
- Alternate="0" />
- <pin15
- ID="SPI2_MOSI"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Alternate"
- Alternate="0" />
- </GPIOB>
- <GPIOC>
- <pin0
- ID="MEMS_CS"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="High"
- Mode="Output"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID="LED_RED"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="Low"
- Mode="Output"
- Alternate="0" />
- <pin7
- ID="LED_BLUE"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="Low"
- Mode="Output"
- Alternate="0" />
- <pin8
- ID="LED_ORANGE"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="Low"
- Mode="Output"
- Alternate="0" ></pin8>
- <pin9
- ID="LED_GREEN"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="Low"
- Mode="Output"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID="OSC32_IN"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID="OSC32_OUT"
- Type="PushPull"
- Speed="Maximum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- </GPIOC>
- <GPIOD>
- <pin0
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- </GPIOD>
- <GPIOE>
- <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
- Level="High" Mode="Input" Alternate="0" />
- </GPIOE>
- <GPIOF>
- <pin0
- ID="OSC_IN"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin1
- ID="OSC_OUT"
- Type="PushPull"
- Speed="Minimum"
- Resistor="Floating"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin2
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin3
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin4
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin5
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin6
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin7
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin8
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin9
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin10
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin11
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin12
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin13
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin14
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- <pin15
- ID=""
- Type="PushPull"
- Speed="Minimum"
- Resistor="PullUp"
- Level="High"
- Mode="Input"
- Alternate="0" />
- </GPIOF>
- </ports>
-</board>
diff --git a/keyboards/cannonkeys/satisfaction75/config.h b/keyboards/cannonkeys/satisfaction75/config.h
index ff31e37c4b..6a3598f8ec 100644
--- a/keyboards/cannonkeys/satisfaction75/config.h
+++ b/keyboards/cannonkeys/satisfaction75/config.h
@@ -17,6 +17,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
+/* Ensure we jump to bootloader if the RESET keycode was pressed */
+#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+
+/* LSE clock */
+#define STM32_LSECLK 32768
+
/* USB Device descriptor parameter */
#define VENDOR_ID 0xCA04
#define PRODUCT_ID 0x57F5
diff --git a/keyboards/cannonkeys/satisfaction75/rules.mk b/keyboards/cannonkeys/satisfaction75/rules.mk
index 80f57181a9..a2288a4aab 100644
--- a/keyboards/cannonkeys/satisfaction75/rules.mk
+++ b/keyboards/cannonkeys/satisfaction75/rules.mk
@@ -1,6 +1,6 @@
# MCU name
MCU = STM32F072
-BOARD = ST_STM32F072B_DISCOVERY
+BOARD = GENERIC_STM32_F072XB
# Build Options
# comment out to disable the options.
diff --git a/keyboards/cannonkeys/satisfaction75/satisfaction75.c b/keyboards/cannonkeys/satisfaction75/satisfaction75.c
index f92067c98f..c0ea68669b 100644
--- a/keyboards/cannonkeys/satisfaction75/satisfaction75.c
+++ b/keyboards/cannonkeys/satisfaction75/satisfaction75.c
@@ -54,6 +54,11 @@ backlight_config_t kb_backlight_config = {
.level = BACKLIGHT_LEVELS
};
+void board_init(void) {
+ SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
+ SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
+}
+
#ifdef VIA_ENABLE
void backlight_get_value( uint8_t *data )
diff --git a/keyboards/clueboard/66_hotswap/gen1/rules.mk b/keyboards/clueboard/66_hotswap/gen1/rules.mk
index c013268455..3667d63b76 100644
--- a/keyboards/clueboard/66_hotswap/gen1/rules.mk
+++ b/keyboards/clueboard/66_hotswap/gen1/rules.mk
@@ -2,7 +2,8 @@
MCU = STM32F303
# LED Configuration
-LED_MATRIX_ENABLE = IS31FL3731
+LED_MATRIX_ENABLE = yes
+LED_MATRIX_DRIVER = IS31FL3731
# Build Options
# comment out to disable the options.
diff --git a/keyboards/cozykeys/speedo/readme.md b/keyboards/cozykeys/speedo/readme.md
new file mode 100644
index 0000000000..4a26c1a00a
--- /dev/null
+++ b/keyboards/cozykeys/speedo/readme.md
@@ -0,0 +1,26 @@
+# Speedo
+
+![Speedo](http://assets.cozykeys.xyz/images/keyboards/speedo/speedo-v3.0-angle-led-front_1600x1600.png)
+
+- Keyboard Maintainer: [Paul Ewing](https://github.com/pcewing)
+- Hardware Supported: Elite-C
+- Hardware Availability: [Speedo Repository](https://github.com/cozykeys/speedo)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make speedo:default
+
+Flashing example for this keyboard:
+
+ make speedo:default:flash
+
+See the
+[build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and
+the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for
+more information. Brand new to QMK? Start with our
+[Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Flashing the Firmware
+
+See the QMK docs for handwiring a keyboard; there is a section with
+instructions on how to flash the *.hex* file to the Teensy 2.0 controller.
diff --git a/keyboards/cozykeys/speedo/speedo.c b/keyboards/cozykeys/speedo/speedo.c
new file mode 100644
index 0000000000..852459f8c6
--- /dev/null
+++ b/keyboards/cozykeys/speedo/speedo.c
@@ -0,0 +1,17 @@
+/*
+Copyright 2020 Paul Ewing
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#include "speedo.h"
diff --git a/keyboards/cozykeys/speedo/speedo.h b/keyboards/cozykeys/speedo/speedo.h
new file mode 100644
index 0000000000..3b3c89d932
--- /dev/null
+++ b/keyboards/cozykeys/speedo/speedo.h
@@ -0,0 +1,23 @@
+/*
+Copyright 2020 Paul Ewing
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#ifdef KEYBOARD_cozykeys_speedo_v2
+ #include "speedo_v2.h"
+#elif KEYBOARD_cozykeys_speedo_v3
+ #include "speedo_v3.h"
+#endif
diff --git a/keyboards/cozykeys/speedo/v2/config.h b/keyboards/cozykeys/speedo/v2/config.h
new file mode 100644
index 0000000000..1ab81ed7d1
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v2/config.h
@@ -0,0 +1,44 @@
+/*
+Copyright 2020 Paul Ewing
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#include "config_common.h"
+
+// USB Device descriptor parameter
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x1192
+#define DEVICE_VER 0x0002
+#define MANUFACTURER CozyKeys
+#define PRODUCT Speedo
+
+// Key matrix size
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+// Keyboard Matrix Assignments
+#define MATRIX_ROW_PINS { D1, D2, D3, C6, C7 }
+#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, D0, B7, B3, B2, B1, B0 }
+#define UNUSED_PINS { D5, D4, D6, D7, B4 }
+#define DIODE_DIRECTION COL2ROW
+
+// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed
+#define DEBOUNCE 5
+
+// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
+#define LOCKING_SUPPORT_ENABLE
+// Locking resynchronize hack
+#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/cozykeys/speedo/v2/info.json b/keyboards/cozykeys/speedo/v2/info.json
new file mode 100644
index 0000000000..714de357e3
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v2/info.json
@@ -0,0 +1,79 @@
+{
+ "keyboard_name": "Speedo",
+ "url": "https://github.com/cozykeys/speedo",
+ "maintainer": "pcewing",
+ "width": 14,
+ "height": 5,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ { "label": "k01", "x": 0.693, "y": 0.0, "r": 10 },
+ { "label": "k02", "x": 1.675, "y": 0.173, "r": 10 },
+ { "label": "k03", "x": 2.685, "y": 0.191, "r": 10 },
+ { "label": "k04", "x": 3.712, "y": 0.106, "r": 10 },
+ { "label": "k05", "x": 4.64, "y": 0.589, "r": 10 },
+ { "label": "k06", "x": 5.577, "y": 1.021, "r": 10 },
+ { "label": "k07", "x": 7.571, "y": 1.021, "r": -10 },
+ { "label": "k08", "x": 8.507, "y": 0.589, "r": -10 },
+ { "label": "k09", "x": 9.435, "y": 0.106, "r": -10 },
+ { "label": "k10", "x": 10.463, "y": 0.191, "r": -10 },
+ { "label": "k11", "x": 11.472, "y": 0.173, "r": -10 },
+ { "label": "k12", "x": 12.454, "y": 0.0, "r": -10 },
+ { "label": "k13", "x": 0.52, "y": 0.982, "r": 10 },
+ { "label": "k14", "x": 1.502, "y": 1.155, "r": 10 },
+ { "label": "k15", "x": 2.511, "y": 1.174, "r": 10 },
+ { "label": "k16", "x": 3.539, "y": 1.088, "r": 10 },
+ { "label": "k17", "x": 4.467, "y": 1.572, "r": 10 },
+ { "label": "k18", "x": 5.403, "y": 2.003, "r": 10 },
+ { "label": "k19", "x": 6.574, "y": 2.559, "r": 0 },
+ { "label": "k20", "x": 7.744, "y": 2.003, "r": -10 },
+ { "label": "k21", "x": 8.681, "y": 1.572, "r": -10 },
+ { "label": "k22", "x": 9.608, "y": 1.088, "r": -10 },
+ { "label": "k23", "x": 10.636, "y": 1.174, "r": -10 },
+ { "label": "k24", "x": 11.645, "y": 1.155, "r": -10 },
+ { "label": "k25", "x": 12.628, "y": 0.982, "r": -10 },
+ { "label": "k26", "x": 0.346, "y": 1.964, "r": 10 },
+ { "label": "k27", "x": 1.329, "y": 2.138, "r": 10 },
+ { "label": "k28", "x": 2.338, "y": 2.156, "r": 10 },
+ { "label": "k29", "x": 3.366, "y": 2.07, "r": 10 },
+ { "label": "k30", "x": 4.294, "y": 2.554, "r": 10 },
+ { "label": "k31", "x": 5.23, "y": 2.986, "r": 10 },
+ { "label": "k32", "x": 6.574, "y": 3.557, "r": 0 },
+ { "label": "k33", "x": 7.917, "y": 2.986, "r": -10 },
+ { "label": "k34", "x": 8.854, "y": 2.554, "r": -10 },
+ { "label": "k35", "x": 9.781, "y": 2.07, "r": -10 },
+ { "label": "k36", "x": 10.809, "y": 2.156, "r": -10 },
+ { "label": "k37", "x": 11.819, "y": 2.138, "r": -10 },
+ { "label": "k38", "x": 12.801, "y": 1.964, "r": -10 },
+ { "label": "k39", "x": 0.173, "y": 2.947, "r": 10 },
+ { "label": "k40", "x": 1.155, "y": 3.12, "r": 10 },
+ { "label": "k41", "x": 2.165, "y": 3.138, "r": 10 },
+ { "label": "k42", "x": 3.193, "y": 3.053, "r": 10 },
+ { "label": "k43", "x": 4.12, "y": 3.536, "r": 10 },
+ { "label": "k44", "x": 5.057, "y": 3.968, "r": 10 },
+ { "label": "k45", "x": 6.075, "y": 4.554, "r": 0 },
+ { "label": "k46", "x": 7.072, "y": 4.554, "r": 0 },
+ { "label": "k47", "x": 8.09, "y": 3.968, "r": -10 },
+ { "label": "k48", "x": 9.027, "y": 3.536, "r": -10 },
+ { "label": "k49", "x": 9.954, "y": 3.053, "r": -10 },
+ { "label": "k50", "x": 10.982, "y": 3.138, "r": -10 },
+ { "label": "k51", "x": 11.992, "y": 3.12, "r": -10 },
+ { "label": "k52", "x": 12.974, "y": 2.947, "r": -10 },
+ { "label": "k53", "x": 0.0, "y": 3.929, "r": 10 },
+ { "label": "k54", "x": 0.982, "y": 4.102, "r": 10 },
+ { "label": "k55", "x": 1.992, "y": 4.12, "r": 10 },
+ { "label": "k56", "x": 3.02, "y": 4.035, "r": 10 },
+ { "label": "k57", "x": 3.947, "y": 4.518, "r": 10 },
+ { "label": "k58", "x": 4.994, "y": 5.235, "r": 40 },
+ { "label": "k59", "x": 5.753, "y": 6.064, "r": 55 },
+ { "label": "k60", "x": 7.395, "y": 6.064, "r": -55 },
+ { "label": "k61", "x": 8.154, "y": 5.235, "r": 40 },
+ { "label": "k62", "x": 9.2, "y": 4.518, "r": -10 },
+ { "label": "k63", "x": 10.128, "y": 4.035, "r": -10 },
+ { "label": "k64", "x": 11.155, "y": 4.12, "r": -10 },
+ { "label": "k65", "x": 12.165, "y": 4.102, "r": -10 },
+ { "label": "k66", "x": 13.147, "y": 3.929, "r": -10 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/speedo/keymaps/default/keymap.c b/keyboards/cozykeys/speedo/v2/keymaps/default/keymap.c
index f5365b1223..814aeb60c9 100644
--- a/keyboards/speedo/keymaps/default/keymap.c
+++ b/keyboards/cozykeys/speedo/v2/keymaps/default/keymap.c
@@ -1,35 +1,37 @@
-/* Copyright 2017 Paul Ewing
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
+/*
+Copyright 2020 Paul Ewing
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
#include QMK_KEYBOARD_H
-#define FN MO(_FN)
-#define TORST TO(_RESET)
-#define TODFT TO(_DEFAULT)
-#define TODO KC_NO
+enum {
+ LAYER_DEFAULT,
+ LAYER_FN,
+ LAYER_RESET,
-enum speedo_layers {
- _DEFAULT,
- _FN,
- _RESET
+ __LAYER_COUNT,
};
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+#define FN MO(LAYER_FN)
+#define TORST TO(LAYER_RESET)
+#define TODFT TO(LAYER_DEFAULT)
+#define TODO KC_NO
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_DEFAULT] = LAYOUT(
+[LAYER_DEFAULT] = LAYOUT(
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_DOWN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
@@ -37,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, FN, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, FN, TODO, KC_RALT, KC_RGUI, KC_RCTL \
),
-[_FN] = LAYOUT(
+[LAYER_FN] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TORST, \
_______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, _______, KC_PGUP, KC_HOME, KC_END, _______, _______, _______, \
KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PAUS, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \
@@ -45,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
-[_RESET] = LAYOUT(
+[LAYER_RESET] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TODFT, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
@@ -54,19 +56,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
-
-void matrix_init_user(void) {
-
-}
-
-void matrix_scan_user(void) {
-
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-void led_set_user(uint8_t usb_led) {
-
-}
diff --git a/keyboards/cozykeys/speedo/v2/keymaps/default/readme.md b/keyboards/cozykeys/speedo/v2/keymaps/default/readme.md
new file mode 100644
index 0000000000..46d98fad1c
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v2/keymaps/default/readme.md
@@ -0,0 +1 @@
+# CozyKeys Speedo v2 Default Keymap
diff --git a/keyboards/cozykeys/speedo/v2/rules.mk b/keyboards/cozykeys/speedo/v2/rules.mk
new file mode 100644
index 0000000000..53127aafba
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v2/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = halfkay
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no # Enable Bluetooth
+AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/cozykeys/speedo/v2/speedo_v2.c b/keyboards/cozykeys/speedo/v2/speedo_v2.c
new file mode 100644
index 0000000000..8b5c7ff69d
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v2/speedo_v2.c
@@ -0,0 +1,17 @@
+/*
+Copyright 2020 Paul Ewing
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#include "speedo_v2.h"
diff --git a/keyboards/cozykeys/speedo/v2/speedo_v2.h b/keyboards/cozykeys/speedo/v2/speedo_v2.h
new file mode 100644
index 0000000000..295d6f8faf
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v2/speedo_v2.h
@@ -0,0 +1,36 @@
+/*
+Copyright 2020 Paul Ewing
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#include "quantum.h"
+
+#define ___ KC_NO
+
+#define LAYOUT( \
+ k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, \
+ k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, \
+ k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, \
+ k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, \
+ k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 \
+) \
+{ \
+ { k01, k01, k03, k04, k05, k06, ___, ___, k07, k08, k09, k10, k11, k12 }, \
+ { k13, k15, k15, k16, k17, k18, k19, ___, k20, k21, k22, k23, k24, k25 }, \
+ { k26, k28, k28, k29, k30, k31, ___, k32, k33, k34, k35, k36, k37, k38 }, \
+ { k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52 }, \
+ { k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 } \
+}
diff --git a/keyboards/cozykeys/speedo/v3/config.h b/keyboards/cozykeys/speedo/v3/config.h
new file mode 100644
index 0000000000..9928e91f98
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v3/config.h
@@ -0,0 +1,58 @@
+/*
+Copyright 2020 Paul Ewing
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#include "config_common.h"
+
+// USB Device descriptor parameter
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x1192
+#define DEVICE_VER 0x0003
+#define MANUFACTURER CozyKeys
+#define PRODUCT Speedo
+
+// Key matrix size
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+// Keyboard Matrix Assignments
+#define MATRIX_ROW_PINS { F0, F1, C7, D5, B7 }
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B6, B2, E6, D7, C6, D4, D0, D1 }
+#define UNUSED_PINS { D2, D3, B0, B4 }
+#define DIODE_DIRECTION COL2ROW
+
+#ifdef RGBLIGHT_ENABLE
+#define RGB_DI_PIN B5
+#define RGBLED_NUM 12
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#define RGBLIGHT_LIMIT_VAL 255
+#define RGBLIGHT_SLEEP
+#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_BREATHE_TABLE_SIZE 256
+#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85
+#define RGBLIGHT_EFFECT_BREATHE_MAX 255
+#endif
+
+// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed
+#define DEBOUNCE 5
+
+// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
+#define LOCKING_SUPPORT_ENABLE
+// Locking resynchronize hack
+#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/cozykeys/speedo/v3/info.json b/keyboards/cozykeys/speedo/v3/info.json
new file mode 100644
index 0000000000..079f5de46f
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v3/info.json
@@ -0,0 +1,79 @@
+{
+ "keyboard_name": "Speedo",
+ "url": "https://github.com/cozykeys/speedo",
+ "maintainer": "pcewing",
+ "width": 14,
+ "height": 5,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ { "label": "k01", "x": 0.695, "y": 0, "r": 10 },
+ { "label": "k02", "x": 1.679, "y": 0.174, "r": 10 },
+ { "label": "k03", "x": 2.692, "y": 0.192, "r": 10 },
+ { "label": "k04", "x": 3.722, "y": 0.107, "r": 10 },
+ { "label": "k05", "x": 4.652, "y": 0.591, "r": 10 },
+ { "label": "k06", "x": 5.591, "y": 1.023, "r": 10 },
+ { "label": "k07", "x": 9.457, "y": 1.023, "r": -10 },
+ { "label": "k08", "x": 10.396, "y": 0.591, "r": -10 },
+ { "label": "k09", "x": 11.326, "y": 0.107, "r": -10 },
+ { "label": "k10", "x": 12.356, "y": 0.192, "r": -10 },
+ { "label": "k11", "x": 13.369, "y": 0.174, "r": -10 },
+ { "label": "k12", "x": 14.353, "y": 0, "r": -10 },
+ { "label": "k13", "x": 0.521, "y": 0.985, "r": 10 },
+ { "label": "k14", "x": 1.506, "y": 1.158, "r": 10 },
+ { "label": "k15", "x": 2.518, "y": 1.177, "r": 10 },
+ { "label": "k16", "x": 3.548, "y": 1.092, "r": 10 },
+ { "label": "k17", "x": 4.478, "y": 1.576, "r": 10 },
+ { "label": "k18", "x": 5.418, "y": 2.008, "r": 10 },
+ { "label": "k19", "x": 7.524, "y": 3.305, "r": 0 },
+ { "label": "k20", "x": 9.63, "y": 2.008, "r": -10 },
+ { "label": "k21", "x": 10.57, "y": 1.576, "r": -10 },
+ { "label": "k22", "x": 11.5, "y": 1.092, "r": -10 },
+ { "label": "k23", "x": 12.53, "y": 1.177, "r": -10 },
+ { "label": "k24", "x": 13.542, "y": 1.158, "r": -10 },
+ { "label": "k25", "x": 14.527, "y": 0.985, "r": -10 },
+ { "label": "k26", "x": 0.347, "y": 1.97, "r": 10 },
+ { "label": "k27", "x": 1.332, "y": 2.143, "r": 10 },
+ { "label": "k28", "x": 2.344, "y": 2.162, "r": 10 },
+ { "label": "k29", "x": 3.375, "y": 2.077, "r": 10 },
+ { "label": "k30", "x": 4.305, "y": 2.561, "r": 10 },
+ { "label": "k31", "x": 5.244, "y": 2.993, "r": 10 },
+ { "label": "k32", "x": 6.524, "y": 3.805, "r": 0 },
+ { "label": "k33", "x": 8.524, "y": 3.805, "r": 0 },
+ { "label": "k34", "x": 9.804, "y": 2.993, "r": -10 },
+ { "label": "k35", "x": 10.743, "y": 2.561, "r": -10 },
+ { "label": "k36", "x": 11.673, "y": 2.077, "r": -10 },
+ { "label": "k37", "x": 12.704, "y": 2.162, "r": -10 },
+ { "label": "k38", "x": 13.716, "y": 2.143, "r": -10 },
+ { "label": "k39", "x": 14.701, "y": 1.97, "r": -10 },
+ { "label": "k40", "x": 0.174, "y": 2.954, "r": 10 },
+ { "label": "k41", "x": 1.158, "y": 3.128, "r": 10 },
+ { "label": "k42", "x": 2.171, "y": 3.147, "r": 10 },
+ { "label": "k43", "x": 3.201, "y": 3.062, "r": 10 },
+ { "label": "k44", "x": 4.131, "y": 3.546, "r": 10 },
+ { "label": "k45", "x": 5.07, "y": 3.978, "r": 10 },
+ { "label": "k46", "x": 7.524, "y": 4.305, "r": 0 },
+ { "label": "k47", "x": 9.978, "y": 3.978, "r": -10 },
+ { "label": "k48", "x": 10.917, "y": 3.546, "r": -10 },
+ { "label": "k49", "x": 11.847, "y": 3.062, "r": -10 },
+ { "label": "k50", "x": 12.877, "y": 3.147, "r": -10 },
+ { "label": "k51", "x": 13.89, "y": 3.128, "r": -10 },
+ { "label": "k52", "x": 14.874, "y": 2.954, "r": -10 },
+ { "label": "k53", "x": 0, "y": 3.939, "r": 10 },
+ { "label": "k54", "x": 0.985, "y": 4.113, "r": 10 },
+ { "label": "k55", "x": 1.997, "y": 4.131, "r": 10 },
+ { "label": "k56", "x": 3.027, "y": 4.047, "r": 10 },
+ { "label": "k57", "x": 3.957, "y": 4.53, "r": 10 },
+ { "label": "k58", "x": 4.897, "y": 4.963, "r": 10 },
+ { "label": "k59", "x": 5.881, "y": 5.136, "r": 10 },
+ { "label": "k60", "x": 9.166, "y": 5.136, "r": -10 },
+ { "label": "k61", "x": 10.151, "y": 4.963, "r": -10 },
+ { "label": "k62", "x": 11.09, "y": 4.53, "r": -10 },
+ { "label": "k63", "x": 12.021, "y": 4.047, "r": -10 },
+ { "label": "k64", "x": 13.051, "y": 4.131, "r": -10 },
+ { "label": "k65", "x": 14.063, "y": 4.113, "r": -10 },
+ { "label": "k66", "x": 15.048, "y": 3.939, "r": -10 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/cozykeys/speedo/v3/keymaps/default/keymap.c b/keyboards/cozykeys/speedo/v3/keymaps/default/keymap.c
new file mode 100644
index 0000000000..4319bd18be
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v3/keymaps/default/keymap.c
@@ -0,0 +1,49 @@
+/*
+Copyright 2020 Paul Ewing
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#include QMK_KEYBOARD_H
+
+enum {
+ LAYER_DEFAULT,
+ LAYER_FN,
+
+ __LAYER_COUNT,
+};
+
+#define FN MO(LAYER_FN)
+
+#define RGB_N RGB_MOD // Rotate to next RGB mode
+#define RGB_P RGB_RMOD // Rotate to next RGB mode
+
+const uint16_t PROGMEM keymaps[__LAYER_COUNT][MATRIX_ROWS][MATRIX_COLS] = {
+
+[LAYER_DEFAULT] = LAYOUT(
+ KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LEFT, KC_RGHT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_DOWN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, FN, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_LBRC, KC_RBRC, KC_RALT, KC_RGUI, KC_RCTL
+),
+
+[LAYER_FN] = LAYOUT(
+ RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, RESET,
+ _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, RGB_TOG, _______, KC_GRV, KC_LBRC, KC_RBRC, _______, _______,
+ KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_INS, RGB_N, RGB_P, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_PAUS, RGB_M_P, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+};
diff --git a/keyboards/cozykeys/speedo/v3/keymaps/default/readme.md b/keyboards/cozykeys/speedo/v3/keymaps/default/readme.md
new file mode 100644
index 0000000000..a69d6f3894
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v3/keymaps/default/readme.md
@@ -0,0 +1,10 @@
+# CozyKeys Speedo v3 Default Keymap
+
+## Default Layer
+
+![Default Layer](https://raw.githubusercontent.com/cozykeys/speedo/master/layout/speedo_layer_default.svg)
+
+## Function Layer
+
+![Function Layer](https://raw.githubusercontent.com/cozykeys/speedo/master/layout/speedo_layer_fn.svg)
+
diff --git a/keyboards/cozykeys/speedo/v3/rules.mk b/keyboards/cozykeys/speedo/v3/rules.mk
new file mode 100644
index 0000000000..15eb4da919
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v3/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no # Enable Bluetooth
+AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/cozykeys/speedo/v3/speedo_v3.c b/keyboards/cozykeys/speedo/v3/speedo_v3.c
new file mode 100644
index 0000000000..759052c271
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v3/speedo_v3.c
@@ -0,0 +1,17 @@
+/*
+Copyright 2020 Paul Ewing
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#include "speedo_v3.h"
diff --git a/keyboards/cozykeys/speedo/v3/speedo_v3.h b/keyboards/cozykeys/speedo/v3/speedo_v3.h
new file mode 100644
index 0000000000..a8623c0f95
--- /dev/null
+++ b/keyboards/cozykeys/speedo/v3/speedo_v3.h
@@ -0,0 +1,36 @@
+/*
+Copyright 2020 Paul Ewing
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#include "quantum.h"
+
+#define ___ KC_NO
+
+#define LAYOUT( \
+ k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, \
+ k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, \
+ k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, \
+ k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 \
+) \
+{ \
+ { k01, k02, k03, k04, k05, k06, ___, ___, k07, k08, k09, k10, k11, k12 }, \
+ { k13, k14, k15, k16, k17, k18, ___, ___, k20, k21, k22, k23, k24, k25 }, \
+ { k26, k27, k28, k29, k30, k31, k32, k19, k34, k35, k36, k37, k38, k39 }, \
+ { k40, k41, k42, k43, k44, k45, k46, k33, k47, k48, k49, k50, k51, k52 }, \
+ { k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 } \
+}
diff --git a/keyboards/crkbd/keymaps/curry/rules.mk b/keyboards/crkbd/keymaps/curry/rules.mk
index 7d35d5f0f9..a75335782d 100644
--- a/keyboards/crkbd/keymaps/curry/rules.mk
+++ b/keyboards/crkbd/keymaps/curry/rules.mk
@@ -8,7 +8,7 @@ CONSOLE_ENABLE = no
COMMAND_ENABLE = no
RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
OLED_DRIVER_ENABLE = yes
diff --git a/keyboards/crkbd/keymaps/dsanchezseco/rules.mk b/keyboards/crkbd/keymaps/dsanchezseco/rules.mk
index 93a21f7bf3..0de8069718 100644
--- a/keyboards/crkbd/keymaps/dsanchezseco/rules.mk
+++ b/keyboards/crkbd/keymaps/dsanchezseco/rules.mk
@@ -9,7 +9,7 @@ OLED_DRIVER_ENABLE = no
EXTRAKEY_ENABLE = yes
# enable LEDs
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
# using elite-c controllers
BOOTLOADER = qmk-dfu
diff --git a/keyboards/crkbd/keymaps/kidbrazil/rules.mk b/keyboards/crkbd/keymaps/kidbrazil/rules.mk
index 244712cd03..a6057a7316 100644
--- a/keyboards/crkbd/keymaps/kidbrazil/rules.mk
+++ b/keyboards/crkbd/keymaps/kidbrazil/rules.mk
@@ -4,7 +4,7 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
MOUSEKEY_ENABLE = no
RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
OLED_DRIVER_ENABLE = yes
# If you want to change the display of OLED, you need to change here
diff --git a/keyboards/crkbd/keymaps/ninjonas/rules.mk b/keyboards/crkbd/keymaps/ninjonas/rules.mk
index 0c7fb3afcb..3c3bf923e6 100644
--- a/keyboards/crkbd/keymaps/ninjonas/rules.mk
+++ b/keyboards/crkbd/keymaps/ninjonas/rules.mk
@@ -1,4 +1,4 @@
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
MOUSEKEY_ENABLE = no
OLED_DRIVER_ENABLE = yes
LTO_ENABLE = yes
diff --git a/keyboards/crkbd/keymaps/rpbaptist/rules.mk b/keyboards/crkbd/keymaps/rpbaptist/rules.mk
index dedd5753e5..623de8c941 100644
--- a/keyboards/crkbd/keymaps/rpbaptist/rules.mk
+++ b/keyboards/crkbd/keymaps/rpbaptist/rules.mk
@@ -21,7 +21,7 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
SWAP_HANDS_ENABLE = no # Enable one-hand typing
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
#Do not enable SLEEP_LED_ENABLE.it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/crkbd/keymaps/soundmonster/rules.mk b/keyboards/crkbd/keymaps/soundmonster/rules.mk
index bf7a84eb1f..a73e6fe027 100644
--- a/keyboards/crkbd/keymaps/soundmonster/rules.mk
+++ b/keyboards/crkbd/keymaps/soundmonster/rules.mk
@@ -1,5 +1,5 @@
RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
MOUSEKEY_ENABLE = no
NKRO_ENABLE = yes
OLED_DRIVER_ENABLE = yes
diff --git a/keyboards/crkbd/readme.md b/keyboards/crkbd/readme.md
index 5de3e3ae00..1e5bfb39ab 100644
--- a/keyboards/crkbd/readme.md
+++ b/keyboards/crkbd/readme.md
@@ -27,7 +27,7 @@ In your keymap's `rules.mk` file, add the following:
```make
RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
```
And in your `config.h` file, add the following:
diff --git a/keyboards/crkbd/rules.mk b/keyboards/crkbd/rules.mk
index 30de5b388d..adbbf016ed 100644
--- a/keyboards/crkbd/rules.mk
+++ b/keyboards/crkbd/rules.mk
@@ -27,6 +27,8 @@ AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/dekunukem/duckypad/rules.mk b/keyboards/dekunukem/duckypad/rules.mk
index 8251ab3646..2deef1eeea 100644
--- a/keyboards/dekunukem/duckypad/rules.mk
+++ b/keyboards/dekunukem/duckypad/rules.mk
@@ -19,6 +19,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
WS2812_DRIVER = bitbang
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
OLED_DRIVER_ENABLE = yes
diff --git a/keyboards/doro67/rgb/rules.mk b/keyboards/doro67/rgb/rules.mk
index 5a1462c138..958fee52ea 100644
--- a/keyboards/doro67/rgb/rules.mk
+++ b/keyboards/doro67/rgb/rules.mk
@@ -30,6 +30,7 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/dp60/rules.mk b/keyboards/dp60/rules.mk
index bcd6fb4c94..02068d86eb 100644
--- a/keyboards/dp60/rules.mk
+++ b/keyboards/dp60/rules.mk
@@ -30,7 +30,8 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
RGBLIGHT_ENABLE = no # Use RGB underglow light
-RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = IS31FL3731 # Use RGB matrix
LAYOUTS = 60_ansi 60_hhkb 60_iso 60_ansi_split_bs_rshift
diff --git a/keyboards/dztech/dz60rgb/v1/rules.mk b/keyboards/dztech/dz60rgb/v1/rules.mk
index 9465b57eeb..d71fb4c531 100644
--- a/keyboards/dztech/dz60rgb/v1/rules.mk
+++ b/keyboards/dztech/dz60rgb/v1/rules.mk
@@ -19,5 +19,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3733
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
diff --git a/keyboards/dztech/dz60rgb/v2/rules.mk b/keyboards/dztech/dz60rgb/v2/rules.mk
index 8763c8ac75..ed83bd9ac0 100644
--- a/keyboards/dztech/dz60rgb/v2/rules.mk
+++ b/keyboards/dztech/dz60rgb/v2/rules.mk
@@ -29,5 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3733
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
diff --git a/keyboards/dztech/dz60rgb_ansi/v1/rules.mk b/keyboards/dztech/dz60rgb_ansi/v1/rules.mk
index 9465b57eeb..d71fb4c531 100644
--- a/keyboards/dztech/dz60rgb_ansi/v1/rules.mk
+++ b/keyboards/dztech/dz60rgb_ansi/v1/rules.mk
@@ -19,5 +19,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3733
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
diff --git a/keyboards/dztech/dz60rgb_ansi/v2/rules.mk b/keyboards/dztech/dz60rgb_ansi/v2/rules.mk
index 8763c8ac75..ed83bd9ac0 100644
--- a/keyboards/dztech/dz60rgb_ansi/v2/rules.mk
+++ b/keyboards/dztech/dz60rgb_ansi/v2/rules.mk
@@ -29,5 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3733
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
diff --git a/keyboards/dztech/dz60rgb_wkl/v1/rules.mk b/keyboards/dztech/dz60rgb_wkl/v1/rules.mk
index 1daa4ed54a..9dfe170032 100644
--- a/keyboards/dztech/dz60rgb_wkl/v1/rules.mk
+++ b/keyboards/dztech/dz60rgb_wkl/v1/rules.mk
@@ -19,7 +19,8 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3733
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
LAYOUTS = 60_tsangan_hhkb
diff --git a/keyboards/dztech/dz60rgb_wkl/v2/rules.mk b/keyboards/dztech/dz60rgb_wkl/v2/rules.mk
index 862024c449..89b742415c 100644
--- a/keyboards/dztech/dz60rgb_wkl/v2/rules.mk
+++ b/keyboards/dztech/dz60rgb_wkl/v2/rules.mk
@@ -29,7 +29,8 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3733
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
LAYOUTS = 60_tsangan_hhkb
diff --git a/keyboards/dztech/dz65rgb/v1/rules.mk b/keyboards/dztech/dz65rgb/v1/rules.mk
index 280d70aa2d..4570dc3bd3 100644
--- a/keyboards/dztech/dz65rgb/v1/rules.mk
+++ b/keyboards/dztech/dz65rgb/v1/rules.mk
@@ -19,6 +19,7 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = IS31FL3731 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3731
LAYOUTS = 65_ansi
diff --git a/keyboards/dztech/dz65rgb/v2/rules.mk b/keyboards/dztech/dz65rgb/v2/rules.mk
index 9b871f7347..5ecaae70b6 100644
--- a/keyboards/dztech/dz65rgb/v2/rules.mk
+++ b/keyboards/dztech/dz65rgb/v2/rules.mk
@@ -29,6 +29,7 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = IS31FL3731 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3731
LAYOUTS = 65_ansi
diff --git a/keyboards/e88/config.h b/keyboards/e88/config.h
index a077370c79..11b040c92d 100644
--- a/keyboards/e88/config.h
+++ b/keyboards/e88/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/e88/e88.c b/keyboards/e88/e88.c
index 970b04ce4f..336660a0d3 100644
--- a/keyboards/e88/e88.c
+++ b/keyboards/e88/e88.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/e88/e88.h b/keyboards/e88/e88.h
index 2fc0428e04..bb8c6e59fc 100644
--- a/keyboards/e88/e88.h
+++ b/keyboards/e88/e88.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/e88/keymaps/default/keymap.c b/keyboards/e88/keymaps/default/keymap.c
index e58ffd12dc..feb4ecaca9 100644
--- a/keyboards/e88/keymaps/default/keymap.c
+++ b/keyboards/e88/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk
index b6311aca3e..b94990a96f 100644
--- a/keyboards/ergodox_ez/rules.mk
+++ b/keyboards/ergodox_ez/rules.mk
@@ -31,7 +31,8 @@ SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard
SLEEP_LED_ENABLE = no
API_SYSEX_ENABLE = no
-RGB_MATRIX_ENABLE = no # enable later
+RGB_MATRIX_ENABLE = no # enable later
+RGB_MATRIX_DRIVER = IS31FL3731
DEBOUNCE_TYPE = eager_pr
# project specific files
diff --git a/keyboards/maartenwut/atom47/keymaps/LEdiodes/keymap.c b/keyboards/evyd13/atom47/keymaps/LEdiodes/keymap.c
index 87e1244214..87e1244214 100644
--- a/keyboards/maartenwut/atom47/keymaps/LEdiodes/keymap.c
+++ b/keyboards/evyd13/atom47/keymaps/LEdiodes/keymap.c
diff --git a/keyboards/maartenwut/atom47/keymaps/LEdiodes/rules.mk b/keyboards/evyd13/atom47/keymaps/LEdiodes/rules.mk
index 9334aaf28f..9334aaf28f 100644
--- a/keyboards/maartenwut/atom47/keymaps/LEdiodes/rules.mk
+++ b/keyboards/evyd13/atom47/keymaps/LEdiodes/rules.mk
diff --git a/keyboards/maartenwut/atom47/keymaps/default/keymap.c b/keyboards/evyd13/atom47/keymaps/default/keymap.c
index dc87b5a52b..dc87b5a52b 100644
--- a/keyboards/maartenwut/atom47/keymaps/default/keymap.c
+++ b/keyboards/evyd13/atom47/keymaps/default/keymap.c
diff --git a/keyboards/maartenwut/atom47/keymaps/default/readme.md b/keyboards/evyd13/atom47/keymaps/default/readme.md
index 6795953857..6795953857 100644
--- a/keyboards/maartenwut/atom47/keymaps/default/readme.md
+++ b/keyboards/evyd13/atom47/keymaps/default/readme.md
diff --git a/keyboards/maartenwut/atom47/keymaps/maartenwut/keymap.c b/keyboards/evyd13/atom47/keymaps/evyd13/keymap.c
index c01ace92a9..c01ace92a9 100644
--- a/keyboards/maartenwut/atom47/keymaps/maartenwut/keymap.c
+++ b/keyboards/evyd13/atom47/keymaps/evyd13/keymap.c
diff --git a/keyboards/maartenwut/atom47/keymaps/maartenwut/readme.md b/keyboards/evyd13/atom47/keymaps/evyd13/readme.md
index 6795953857..6795953857 100644
--- a/keyboards/maartenwut/atom47/keymaps/maartenwut/readme.md
+++ b/keyboards/evyd13/atom47/keymaps/evyd13/readme.md
diff --git a/keyboards/maartenwut/atom47/keymaps/junonum_a47/keymap.c b/keyboards/evyd13/atom47/keymaps/junonum_a47/keymap.c
index ebd52ffd03..ebd52ffd03 100644
--- a/keyboards/maartenwut/atom47/keymaps/junonum_a47/keymap.c
+++ b/keyboards/evyd13/atom47/keymaps/junonum_a47/keymap.c
diff --git a/keyboards/maartenwut/atom47/keymaps/junonum_a47/readme.md b/keyboards/evyd13/atom47/keymaps/junonum_a47/readme.md
index 42d8370231..42d8370231 100644
--- a/keyboards/maartenwut/atom47/keymaps/junonum_a47/readme.md
+++ b/keyboards/evyd13/atom47/keymaps/junonum_a47/readme.md
diff --git a/keyboards/maartenwut/atom47/readme.md b/keyboards/evyd13/atom47/readme.md
index c3cffcea74..70171c04d1 100644
--- a/keyboards/maartenwut/atom47/readme.md
+++ b/keyboards/evyd13/atom47/readme.md
@@ -3,7 +3,7 @@
![Atom47](https://i.imgur.com/Wwflqvt.png)
## Support
-Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
Hardware Supported: Atom47 rev2/rev3
Hardware Availability: [GeekHack.com Group Buy](https://geekhack.org/index.php?topic=93447.msg2545221)
diff --git a/keyboards/maartenwut/atom47/rev2/config.h b/keyboards/evyd13/atom47/rev2/config.h
index c38cd450ed..74061726c4 100644
--- a/keyboards/maartenwut/atom47/rev2/config.h
+++ b/keyboards/evyd13/atom47/rev2/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2012 Maarten Dekkers <atomkeeb@gmail.com
+Copyright 2012 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/atom47/rev3/info.json b/keyboards/evyd13/atom47/rev2/info.json
index 3c45ca8d45..aa15e76064 100644
--- a/keyboards/maartenwut/atom47/rev3/info.json
+++ b/keyboards/evyd13/atom47/rev2/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "Atom47",
- "url": "https://atomkb.eu/atom47",
- "maintainer": "Maarten Dekkers",
+ "url": "",
+ "maintainer": "evyd13",
"width": 13,
"height": 4,
"layouts": {
diff --git a/keyboards/maartenwut/atom47/rev2/readme.md b/keyboards/evyd13/atom47/rev2/readme.md
index b63e1bb44c..b63e1bb44c 100644
--- a/keyboards/maartenwut/atom47/rev2/readme.md
+++ b/keyboards/evyd13/atom47/rev2/readme.md
diff --git a/keyboards/maartenwut/atom47/rev2/rev2.c b/keyboards/evyd13/atom47/rev2/rev2.c
index 06fce06dad..06fce06dad 100644
--- a/keyboards/maartenwut/atom47/rev2/rev2.c
+++ b/keyboards/evyd13/atom47/rev2/rev2.c
diff --git a/keyboards/maartenwut/atom47/rev2/rev2.h b/keyboards/evyd13/atom47/rev2/rev2.h
index bfea34e062..bfea34e062 100644
--- a/keyboards/maartenwut/atom47/rev2/rev2.h
+++ b/keyboards/evyd13/atom47/rev2/rev2.h
diff --git a/keyboards/maartenwut/atom47/rev2/rules.mk b/keyboards/evyd13/atom47/rev2/rules.mk
index 0b6b879986..0b6b879986 100644
--- a/keyboards/maartenwut/atom47/rev2/rules.mk
+++ b/keyboards/evyd13/atom47/rev2/rules.mk
diff --git a/keyboards/maartenwut/atom47/rev3/config.h b/keyboards/evyd13/atom47/rev3/config.h
index 5a302abff4..f255ee5a7b 100644
--- a/keyboards/maartenwut/atom47/rev3/config.h
+++ b/keyboards/evyd13/atom47/rev3/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2012 Maarten Dekkers <atomkeeb@gmail.com
+Copyright 2012 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/atom47/rev2/info.json b/keyboards/evyd13/atom47/rev3/info.json
index 3c45ca8d45..aa15e76064 100644
--- a/keyboards/maartenwut/atom47/rev2/info.json
+++ b/keyboards/evyd13/atom47/rev3/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "Atom47",
- "url": "https://atomkb.eu/atom47",
- "maintainer": "Maarten Dekkers",
+ "url": "",
+ "maintainer": "evyd13",
"width": 13,
"height": 4,
"layouts": {
diff --git a/keyboards/maartenwut/atom47/rev3/rev3.c b/keyboards/evyd13/atom47/rev3/rev3.c
index c541ed559c..c541ed559c 100644
--- a/keyboards/maartenwut/atom47/rev3/rev3.c
+++ b/keyboards/evyd13/atom47/rev3/rev3.c
diff --git a/keyboards/maartenwut/atom47/rev3/rev3.h b/keyboards/evyd13/atom47/rev3/rev3.h
index ad875bb404..ad875bb404 100644
--- a/keyboards/maartenwut/atom47/rev3/rev3.h
+++ b/keyboards/evyd13/atom47/rev3/rev3.h
diff --git a/keyboards/maartenwut/atom47/rev3/rules.mk b/keyboards/evyd13/atom47/rev3/rules.mk
index 2df225e389..2df225e389 100644
--- a/keyboards/maartenwut/atom47/rev3/rules.mk
+++ b/keyboards/evyd13/atom47/rev3/rules.mk
diff --git a/keyboards/maartenwut/atom47/rules.mk b/keyboards/evyd13/atom47/rules.mk
index 7fdd5ad48f..72c0b219b9 100644
--- a/keyboards/maartenwut/atom47/rules.mk
+++ b/keyboards/evyd13/atom47/rules.mk
@@ -25,4 +25,4 @@ AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-DEFAULT_FOLDER = maartenwut/atom47/rev3
+DEFAULT_FOLDER = evyd13/atom47/rev3
diff --git a/keyboards/evyd13/eon40/config.h b/keyboards/evyd13/eon40/config.h
new file mode 100644
index 0000000000..0e16c57046
--- /dev/null
+++ b/keyboards/evyd13/eon40/config.h
@@ -0,0 +1,226 @@
+/* Copyright 2019 Evy Dekkers
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4705
+#define PRODUCT_ID 0x0140
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Evyd13
+#define PRODUCT Eon40
+#define DESCRIPTION A 40% ortholinear PCB
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 12
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS {B7,D5,F5,F6}
+#define MATRIX_COL_PINS {F0,F1,F4,D3,D4,D6,D7,B4,B5,B6,C6,C7}
+#define UNUSED_PINS {B1,B2,B3}
+
+#define ENCODERS_PAD_A { E6, B0, D1 }
+#define ENCODERS_PAD_B { F7, D0, D2 }
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+// #define RGB_DI_PIN E2
+// #ifdef RGB_DI_PIN
+// #define RGBLED_NUM 16
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+// #endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
+
+#define QMK_ESC_OUTPUT F0 // usually COL
+#define QMK_ESC_INPUT B7 // usually ROW
diff --git a/keyboards/maartenwut/eon40/eon40.c b/keyboards/evyd13/eon40/eon40.c
index 5a6fe4b204..014fca9d40 100644
--- a/keyboards/maartenwut/eon40/eon40.c
+++ b/keyboards/evyd13/eon40/eon40.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon40/eon40.h b/keyboards/evyd13/eon40/eon40.h
index 194e470327..03e680d8bd 100644
--- a/keyboards/maartenwut/eon40/eon40.h
+++ b/keyboards/evyd13/eon40/eon40.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon40/info.json b/keyboards/evyd13/eon40/info.json
index 056be65d0d..056be65d0d 100644
--- a/keyboards/maartenwut/eon40/info.json
+++ b/keyboards/evyd13/eon40/info.json
diff --git a/keyboards/maartenwut/eon40/keymaps/default/keymap.c b/keyboards/evyd13/eon40/keymaps/default/keymap.c
index e9b3642307..2cfb5744cd 100644
--- a/keyboards/maartenwut/eon40/keymaps/default/keymap.c
+++ b/keyboards/evyd13/eon40/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon40/keymaps/default/readme.md b/keyboards/evyd13/eon40/keymaps/default/readme.md
index 7185afb0e0..7185afb0e0 100644
--- a/keyboards/maartenwut/eon40/keymaps/default/readme.md
+++ b/keyboards/evyd13/eon40/keymaps/default/readme.md
diff --git a/keyboards/maartenwut/eon40/keymaps/via/keymap.c b/keyboards/evyd13/eon40/keymaps/via/keymap.c
index fdd74fc5c1..3af6d609a0 100644
--- a/keyboards/maartenwut/eon40/keymaps/via/keymap.c
+++ b/keyboards/evyd13/eon40/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon40/keymaps/via/rules.mk b/keyboards/evyd13/eon40/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/eon40/keymaps/via/rules.mk
+++ b/keyboards/evyd13/eon40/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/eon40/readme.md b/keyboards/evyd13/eon40/readme.md
index 05dffd7afa..5a4e8e3f2d 100644
--- a/keyboards/maartenwut/eon40/readme.md
+++ b/keyboards/evyd13/eon40/readme.md
@@ -1,7 +1,7 @@
# Eon40
## Support
-* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: Eon40
* Hardware Availability: [maartenwut.com](https://maartenwut.com)
@@ -16,6 +16,6 @@
## Build
Make example for this keyboard (after setting up your build environment):
- make maartenwut/eon40:default
+ make evyd13/eon40:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/eon40/rules.mk b/keyboards/evyd13/eon40/rules.mk
index 5161f8d071..a1a2f76d4f 100644
--- a/keyboards/maartenwut/eon40/rules.mk
+++ b/keyboards/evyd13/eon40/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes
LAYOUTS = ortho_4x12 planck_mit
diff --git a/keyboards/maartenwut/eon65/config.h b/keyboards/evyd13/eon65/config.h
index bfb23569b4..875ccb26b8 100644
--- a/keyboards/maartenwut/eon65/config.h
+++ b/keyboards/evyd13/eon65/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0xAEB4
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT Eon65
#define DESCRIPTION A 65% PCB
diff --git a/keyboards/maartenwut/eon65/eon65.c b/keyboards/evyd13/eon65/eon65.c
index 3571509dc9..cdbe987ebb 100644
--- a/keyboards/maartenwut/eon65/eon65.c
+++ b/keyboards/evyd13/eon65/eon65.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon65/eon65.h b/keyboards/evyd13/eon65/eon65.h
index 0593df27f7..21cfd06647 100644
--- a/keyboards/maartenwut/eon65/eon65.h
+++ b/keyboards/evyd13/eon65/eon65.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon65/info.json b/keyboards/evyd13/eon65/info.json
index 1a9f749576..1a9f749576 100644
--- a/keyboards/maartenwut/eon65/info.json
+++ b/keyboards/evyd13/eon65/info.json
diff --git a/keyboards/maartenwut/eon65/keymaps/default/keymap.c b/keyboards/evyd13/eon65/keymaps/default/keymap.c
index e5ef976e82..d7fc26de07 100644
--- a/keyboards/maartenwut/eon65/keymaps/default/keymap.c
+++ b/keyboards/evyd13/eon65/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon65/keymaps/mrsendyyk/keymap.c b/keyboards/evyd13/eon65/keymaps/mrsendyyk/keymap.c
index f9c7178f6a..f9c7178f6a 100644
--- a/keyboards/maartenwut/eon65/keymaps/mrsendyyk/keymap.c
+++ b/keyboards/evyd13/eon65/keymaps/mrsendyyk/keymap.c
diff --git a/keyboards/maartenwut/eon65/keymaps/mrsendyyk/readme.md b/keyboards/evyd13/eon65/keymaps/mrsendyyk/readme.md
index f9c661ccfd..333577030a 100644
--- a/keyboards/maartenwut/eon65/keymaps/mrsendyyk/readme.md
+++ b/keyboards/evyd13/eon65/keymaps/mrsendyyk/readme.md
@@ -34,5 +34,5 @@
## Build The Firmware
You will need to build the firmware. To do so go to your terminal window and run the compile command:
- qmk compile -kb maartenwut/eon65 -km mrsendyyk
+ qmk compile -kb evyd13/eon65 -km mrsendyyk
See [The Complete Newbs Guide To QMK](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/maartenwut/eon65/keymaps/via/keymap.c b/keyboards/evyd13/eon65/keymaps/via/keymap.c
index 52a1f94203..d341f10406 100644
--- a/keyboards/maartenwut/eon65/keymaps/via/keymap.c
+++ b/keyboards/evyd13/eon65/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon65/keymaps/via/rules.mk b/keyboards/evyd13/eon65/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/eon65/keymaps/via/rules.mk
+++ b/keyboards/evyd13/eon65/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/eon65/readme.md b/keyboards/evyd13/eon65/readme.md
index e77ad68264..e7487e4c86 100644
--- a/keyboards/maartenwut/eon65/readme.md
+++ b/keyboards/evyd13/eon65/readme.md
@@ -1,13 +1,13 @@
# Eon65
## Support
-* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: Eon65
* Hardware Availability: None
## Build
Make example for this keyboard (after setting up your build environment):
- make maartenwut/eon65:default
+ make evyd13/eon65:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/eon65/rules.mk b/keyboards/evyd13/eon65/rules.mk
index e34ef7475a..e34ef7475a 100644
--- a/keyboards/maartenwut/eon65/rules.mk
+++ b/keyboards/evyd13/eon65/rules.mk
diff --git a/keyboards/maartenwut/eon75/config.h b/keyboards/evyd13/eon75/config.h
index 41be76245b..504ed1182b 100644
--- a/keyboards/maartenwut/eon75/config.h
+++ b/keyboards/evyd13/eon75/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0x5C62
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT Eon75
#define DESCRIPTION A 75% PCB
diff --git a/keyboards/maartenwut/eon75/eon75.c b/keyboards/evyd13/eon75/eon75.c
index 86b462dd9e..67e9fe66a2 100644
--- a/keyboards/maartenwut/eon75/eon75.c
+++ b/keyboards/evyd13/eon75/eon75.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon75/eon75.h b/keyboards/evyd13/eon75/eon75.h
index 5ce932a646..ee4a91f7f8 100644
--- a/keyboards/maartenwut/eon75/eon75.h
+++ b/keyboards/evyd13/eon75/eon75.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon75/info.json b/keyboards/evyd13/eon75/info.json
index 9066542a1f..9066542a1f 100644
--- a/keyboards/maartenwut/eon75/info.json
+++ b/keyboards/evyd13/eon75/info.json
diff --git a/keyboards/maartenwut/eon75/keymaps/default/keymap.c b/keyboards/evyd13/eon75/keymaps/default/keymap.c
index fcfba4c866..535393cd90 100644
--- a/keyboards/maartenwut/eon75/keymaps/default/keymap.c
+++ b/keyboards/evyd13/eon75/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon75/keymaps/via/keymap.c b/keyboards/evyd13/eon75/keymaps/via/keymap.c
index 070d38b09f..106ee970d9 100644
--- a/keyboards/maartenwut/eon75/keymaps/via/keymap.c
+++ b/keyboards/evyd13/eon75/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon75/keymaps/via/rules.mk b/keyboards/evyd13/eon75/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/eon75/keymaps/via/rules.mk
+++ b/keyboards/evyd13/eon75/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/eon75/readme.md b/keyboards/evyd13/eon75/readme.md
index 8c697c1c68..7b3ee43f1b 100644
--- a/keyboards/maartenwut/eon75/readme.md
+++ b/keyboards/evyd13/eon75/readme.md
@@ -1,13 +1,13 @@
# Eon75
## Support
-* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: Eon75
* Hardware Availability: None
## Build
Make example for this keyboard (after setting up your build environment):
- make maartenwut/eon75:default
+ make evyd13/eon75:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/eon75/rules.mk b/keyboards/evyd13/eon75/rules.mk
index 264e0ea67d..264e0ea67d 100644
--- a/keyboards/maartenwut/eon75/rules.mk
+++ b/keyboards/evyd13/eon75/rules.mk
diff --git a/keyboards/maartenwut/eon87/config.h b/keyboards/evyd13/eon87/config.h
index 14fec2e584..2a03ec6c25 100644
--- a/keyboards/maartenwut/eon87/config.h
+++ b/keyboards/evyd13/eon87/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0xAA6B
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT Eon87
#define DESCRIPTION A TKL PCB
diff --git a/keyboards/maartenwut/eon87/eon87.c b/keyboards/evyd13/eon87/eon87.c
index 4f6b403762..83a005225d 100644
--- a/keyboards/maartenwut/eon87/eon87.c
+++ b/keyboards/evyd13/eon87/eon87.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon87/eon87.h b/keyboards/evyd13/eon87/eon87.h
index 08aa3d55b0..9e850625eb 100644
--- a/keyboards/maartenwut/eon87/eon87.h
+++ b/keyboards/evyd13/eon87/eon87.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon87/info.json b/keyboards/evyd13/eon87/info.json
index b0ed86a7ea..b0ed86a7ea 100644
--- a/keyboards/maartenwut/eon87/info.json
+++ b/keyboards/evyd13/eon87/info.json
diff --git a/keyboards/maartenwut/eon87/keymaps/default/keymap.c b/keyboards/evyd13/eon87/keymaps/default/keymap.c
index 4eaff0f4a5..c4ba5a86bb 100644
--- a/keyboards/maartenwut/eon87/keymaps/default/keymap.c
+++ b/keyboards/evyd13/eon87/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon87/keymaps/default/readme.md b/keyboards/evyd13/eon87/keymaps/default/readme.md
index a70270cfac..a70270cfac 100644
--- a/keyboards/maartenwut/eon87/keymaps/default/readme.md
+++ b/keyboards/evyd13/eon87/keymaps/default/readme.md
diff --git a/keyboards/maartenwut/eon87/keymaps/via/keymap.c b/keyboards/evyd13/eon87/keymaps/via/keymap.c
index 67543b54cc..1a6839fb98 100644
--- a/keyboards/maartenwut/eon87/keymaps/via/keymap.c
+++ b/keyboards/evyd13/eon87/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon87/keymaps/via/rules.mk b/keyboards/evyd13/eon87/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/eon87/keymaps/via/rules.mk
+++ b/keyboards/evyd13/eon87/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/eon87/readme.md b/keyboards/evyd13/eon87/readme.md
index bfd5afd1a9..6eea6c20ec 100644
--- a/keyboards/maartenwut/eon87/readme.md
+++ b/keyboards/evyd13/eon87/readme.md
@@ -1,13 +1,13 @@
# Eon87
## Support
-* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: Eon87
* Hardware Availability: [maartenwut.com](https://maartenwut.com)
## Build
Make example for this keyboard (after setting up your build environment):
- make maartenwut/eon87:default
+ make evyd13/eon87:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/eon87/rules.mk b/keyboards/evyd13/eon87/rules.mk
index 65cfca7d4b..65cfca7d4b 100644
--- a/keyboards/maartenwut/eon87/rules.mk
+++ b/keyboards/evyd13/eon87/rules.mk
diff --git a/keyboards/maartenwut/eon95/config.h b/keyboards/evyd13/eon95/config.h
index d012d47c91..1fabdd5169 100644
--- a/keyboards/maartenwut/eon95/config.h
+++ b/keyboards/evyd13/eon95/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0x8A18
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT Eon95
#define DESCRIPTION A 95% PCB
diff --git a/keyboards/maartenwut/eon95/eon95.c b/keyboards/evyd13/eon95/eon95.c
index b57cb30000..5eec86cc11 100644
--- a/keyboards/maartenwut/eon95/eon95.c
+++ b/keyboards/evyd13/eon95/eon95.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon95/eon95.h b/keyboards/evyd13/eon95/eon95.h
index 7f7c843569..bf2713184c 100644
--- a/keyboards/maartenwut/eon95/eon95.h
+++ b/keyboards/evyd13/eon95/eon95.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon95/info.json b/keyboards/evyd13/eon95/info.json
index 6580ef66ee..6580ef66ee 100644
--- a/keyboards/maartenwut/eon95/info.json
+++ b/keyboards/evyd13/eon95/info.json
diff --git a/keyboards/maartenwut/eon95/keymaps/default/keymap.c b/keyboards/evyd13/eon95/keymaps/default/keymap.c
index 0976b53c1e..1d61ca55ef 100644
--- a/keyboards/maartenwut/eon95/keymaps/default/keymap.c
+++ b/keyboards/evyd13/eon95/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon95/keymaps/via/keymap.c b/keyboards/evyd13/eon95/keymaps/via/keymap.c
index 12c6e2eedf..5ada354fae 100644
--- a/keyboards/maartenwut/eon95/keymaps/via/keymap.c
+++ b/keyboards/evyd13/eon95/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/eon95/keymaps/via/rules.mk b/keyboards/evyd13/eon95/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/eon95/keymaps/via/rules.mk
+++ b/keyboards/evyd13/eon95/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/eon95/readme.md b/keyboards/evyd13/eon95/readme.md
index db6bac843a..0bb43f6513 100644
--- a/keyboards/maartenwut/eon95/readme.md
+++ b/keyboards/evyd13/eon95/readme.md
@@ -1,13 +1,13 @@
# Eon95
## Support
-* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: Eon95
* Hardware Availability: None
## Build
Make example for this keyboard (after setting up your build environment):
- make maartenwut/eon95:default
+ make evyd13/eon95:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/eon95/rules.mk b/keyboards/evyd13/eon95/rules.mk
index 264e0ea67d..264e0ea67d 100644
--- a/keyboards/maartenwut/eon95/rules.mk
+++ b/keyboards/evyd13/eon95/rules.mk
diff --git a/keyboards/maartenwut/gh80_1800/config.h b/keyboards/evyd13/gh80_1800/config.h
index 31ab3a4496..c230aa9af8 100644
--- a/keyboards/maartenwut/gh80_1800/config.h
+++ b/keyboards/evyd13/gh80_1800/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0x8B23
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT GH80 1800
/* key matrix size */
diff --git a/keyboards/maartenwut/gh80_1800/gh80_1800.c b/keyboards/evyd13/gh80_1800/gh80_1800.c
index 58cd87db02..770c6f78bf 100644
--- a/keyboards/maartenwut/gh80_1800/gh80_1800.c
+++ b/keyboards/evyd13/gh80_1800/gh80_1800.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_1800/gh80_1800.h b/keyboards/evyd13/gh80_1800/gh80_1800.h
index fe700fa0a5..920aaf3738 100644
--- a/keyboards/maartenwut/gh80_1800/gh80_1800.h
+++ b/keyboards/evyd13/gh80_1800/gh80_1800.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_1800/info.json b/keyboards/evyd13/gh80_1800/info.json
index e7ed48b954..b468320d8c 100644
--- a/keyboards/maartenwut/gh80_1800/info.json
+++ b/keyboards/evyd13/gh80_1800/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "GH80-1800",
- "url": "https://github.com/Maartenwut/gh80-series/tree/master/GH80-1800",
- "maintainer": "Maartenwut",
+ "url": "https://github.com/evyd13/gh80-series/tree/master/GH80-1800",
+ "maintainer": "evyd13",
"width": 19.5,
"height": 7.25,
"layouts": {
diff --git a/keyboards/maartenwut/gh80_1800/keymaps/default/keymap.c b/keyboards/evyd13/gh80_1800/keymaps/default/keymap.c
index 84b7005f86..bbd8784137 100644
--- a/keyboards/maartenwut/gh80_1800/keymaps/default/keymap.c
+++ b/keyboards/evyd13/gh80_1800/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_1800/keymaps/default/readme.md b/keyboards/evyd13/gh80_1800/keymaps/default/readme.md
index c90376fe84..c90376fe84 100644
--- a/keyboards/maartenwut/gh80_1800/keymaps/default/readme.md
+++ b/keyboards/evyd13/gh80_1800/keymaps/default/readme.md
diff --git a/keyboards/maartenwut/gh80_1800/keymaps/via/keymap.c b/keyboards/evyd13/gh80_1800/keymaps/via/keymap.c
index 415596d0c2..41795e1e05 100644
--- a/keyboards/maartenwut/gh80_1800/keymaps/via/keymap.c
+++ b/keyboards/evyd13/gh80_1800/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_1800/keymaps/via/rules.mk b/keyboards/evyd13/gh80_1800/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/gh80_1800/keymaps/via/rules.mk
+++ b/keyboards/evyd13/gh80_1800/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/gh80_1800/readme.md b/keyboards/evyd13/gh80_1800/readme.md
index a19d343ae6..fd392988cf 100644
--- a/keyboards/maartenwut/gh80_1800/readme.md
+++ b/keyboards/evyd13/gh80_1800/readme.md
@@ -1,13 +1,13 @@
# GH80-1800
## Support
-* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: GH80-1800
-* Hardware Availability: [Open source on GitHub](https://github.com/Maartenwut/gh80-series/tree/master/GH80-1800)
+* Hardware Availability: [Open source on GitHub](https://github.com/evyd13/gh80-series/tree/master/GH80-1800)
## Build
Make example for this keyboard (after setting up your build environment):
- make maartenwut/gh80_1800:default
+ make evyd13/gh80_1800:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/gh80_1800/rules.mk b/keyboards/evyd13/gh80_1800/rules.mk
index eaca844339..eaca844339 100644
--- a/keyboards/maartenwut/gh80_1800/rules.mk
+++ b/keyboards/evyd13/gh80_1800/rules.mk
diff --git a/keyboards/maartenwut/gh80_3700/config.h b/keyboards/evyd13/gh80_3700/config.h
index 6e0b24547a..200f179cf7 100644
--- a/keyboards/maartenwut/gh80_3700/config.h
+++ b/keyboards/evyd13/gh80_3700/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0x633A
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT GH80 3700
/* key matrix size */
diff --git a/keyboards/maartenwut/gh80_3700/gh80_3700.c b/keyboards/evyd13/gh80_3700/gh80_3700.c
index 2c3595e49e..f607a440e9 100644
--- a/keyboards/maartenwut/gh80_3700/gh80_3700.c
+++ b/keyboards/evyd13/gh80_3700/gh80_3700.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_3700/gh80_3700.h b/keyboards/evyd13/gh80_3700/gh80_3700.h
index 053885ae32..4a350a9554 100644
--- a/keyboards/maartenwut/gh80_3700/gh80_3700.h
+++ b/keyboards/evyd13/gh80_3700/gh80_3700.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_3700/info.json b/keyboards/evyd13/gh80_3700/info.json
index 128f44ee8d..9f3ff6e5ed 100644
--- a/keyboards/maartenwut/gh80_3700/info.json
+++ b/keyboards/evyd13/gh80_3700/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "GH80-3700",
- "url": "https://github.com/Maartenwut/gh80-series/tree/master/GH80-3700",
- "maintainer": "Maartenwut",
+ "url": "https://github.com/evyd13/gh80-series/tree/master/GH80-3700",
+ "maintainer": "evyd13",
"width": 4,
"height": 7,
"layouts": {
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/rgb/keymap.c b/keyboards/evyd13/gh80_3700/keymaps/default/keymap.c
index 555036de72..52dc482157 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/rgb/keymap.c
+++ b/keyboards/evyd13/gh80_3700/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/default/readme.md b/keyboards/evyd13/gh80_3700/keymaps/default/readme.md
index 8e1232190b..8e1232190b 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/default/readme.md
+++ b/keyboards/evyd13/gh80_3700/keymaps/default/readme.md
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/ps2/config.h b/keyboards/evyd13/gh80_3700/keymaps/ps2/config.h
index 0d9508060a..44ac7dcd03 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/ps2/config.h
+++ b/keyboards/evyd13/gh80_3700/keymaps/ps2/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/default/keymap.c b/keyboards/evyd13/gh80_3700/keymaps/ps2/keymap.c
index 555036de72..52dc482157 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/default/keymap.c
+++ b/keyboards/evyd13/gh80_3700/keymaps/ps2/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/ps2/readme.md b/keyboards/evyd13/gh80_3700/keymaps/ps2/readme.md
index d434753b17..d434753b17 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/ps2/readme.md
+++ b/keyboards/evyd13/gh80_3700/keymaps/ps2/readme.md
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/ps2/rules.mk b/keyboards/evyd13/gh80_3700/keymaps/ps2/rules.mk
index c58a93b73a..c58a93b73a 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/ps2/rules.mk
+++ b/keyboards/evyd13/gh80_3700/keymaps/ps2/rules.mk
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/rgb/config.h b/keyboards/evyd13/gh80_3700/keymaps/rgb/config.h
index 1bc51758c0..1def6cc3f3 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/rgb/config.h
+++ b/keyboards/evyd13/gh80_3700/keymaps/rgb/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/ps2/keymap.c b/keyboards/evyd13/gh80_3700/keymaps/rgb/keymap.c
index 555036de72..52dc482157 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/ps2/keymap.c
+++ b/keyboards/evyd13/gh80_3700/keymaps/rgb/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/rgb/readme.md b/keyboards/evyd13/gh80_3700/keymaps/rgb/readme.md
index cac017f429..cac017f429 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/rgb/readme.md
+++ b/keyboards/evyd13/gh80_3700/keymaps/rgb/readme.md
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/rgb/rules.mk b/keyboards/evyd13/gh80_3700/keymaps/rgb/rules.mk
index 06d70d5811..06d70d5811 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/rgb/rules.mk
+++ b/keyboards/evyd13/gh80_3700/keymaps/rgb/rules.mk
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/via/keymap.c b/keyboards/evyd13/gh80_3700/keymaps/via/keymap.c
index 58d6ee754a..aaf461e794 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/via/keymap.c
+++ b/keyboards/evyd13/gh80_3700/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/gh80_3700/keymaps/via/rules.mk b/keyboards/evyd13/gh80_3700/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/gh80_3700/keymaps/via/rules.mk
+++ b/keyboards/evyd13/gh80_3700/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/gh80_3700/readme.md b/keyboards/evyd13/gh80_3700/readme.md
index 44f753334f..11366f9a14 100644
--- a/keyboards/maartenwut/gh80_3700/readme.md
+++ b/keyboards/evyd13/gh80_3700/readme.md
@@ -3,13 +3,13 @@
![GH80-3700](https://i.imgur.com/xMCzb8vl.jpg)
## Support
-* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: GH80-3700 PCB
* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/gh80-3700-numpad-pcb/)
## Build
Make example for this keyboard (after setting up your build environment):
- make maartenwut/gh80_3700:default
+ make evyd13/gh80_3700:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/gh80_3700/rules.mk b/keyboards/evyd13/gh80_3700/rules.mk
index 01ea4754f4..01ea4754f4 100644
--- a/keyboards/maartenwut/gh80_3700/rules.mk
+++ b/keyboards/evyd13/gh80_3700/rules.mk
diff --git a/keyboards/evyd13/minitomic/config.h b/keyboards/evyd13/minitomic/config.h
new file mode 100644
index 0000000000..e6b9c80c5b
--- /dev/null
+++ b/keyboards/evyd13/minitomic/config.h
@@ -0,0 +1,224 @@
+/* Copyright 2019 Evy Dekkers
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4705
+#define PRODUCT_ID 0x0145
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Evyd13
+#define PRODUCT Minitomic
+#define DESCRIPTION A 45% staggered keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 4
+#define MATRIX_COLS 13
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS {B1,B3,D4,D6}
+#define MATRIX_COL_PINS {C6,B6,B5,B4,D7,F0,F1,F4,F5,F6,F7,B7,E6}
+#define UNUSED_PINS {B2,D0,D1,D2,D3,D5}
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+// #define RGB_DI_PIN E2
+// #ifdef RGB_DI_PIN
+// #define RGBLED_NUM 16
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+// #endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
+
+#define QMK_ESC_OUTPUT C6 // usually COL
+#define QMK_ESC_INPUT B1 // usually ROW
+#define QMK_LED C7
diff --git a/keyboards/maartenwut/minitomic/info.json b/keyboards/evyd13/minitomic/info.json
index 4af72b36e1..4af72b36e1 100644
--- a/keyboards/maartenwut/minitomic/info.json
+++ b/keyboards/evyd13/minitomic/info.json
diff --git a/keyboards/maartenwut/minitomic/keymaps/default/keymap.c b/keyboards/evyd13/minitomic/keymaps/default/keymap.c
index 4d9a69fec4..74c1e50230 100644
--- a/keyboards/maartenwut/minitomic/keymaps/default/keymap.c
+++ b/keyboards/evyd13/minitomic/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/minitomic/keymaps/default/readme.md b/keyboards/evyd13/minitomic/keymaps/default/readme.md
index 0ec508ffa3..0ec508ffa3 100644
--- a/keyboards/maartenwut/minitomic/keymaps/default/readme.md
+++ b/keyboards/evyd13/minitomic/keymaps/default/readme.md
diff --git a/keyboards/maartenwut/minitomic/minitomic.c b/keyboards/evyd13/minitomic/minitomic.c
index 71447b1966..8d5f11a50d 100644
--- a/keyboards/maartenwut/minitomic/minitomic.c
+++ b/keyboards/evyd13/minitomic/minitomic.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/minitomic/minitomic.h b/keyboards/evyd13/minitomic/minitomic.h
index ad2e8330b8..da98ebcf12 100644
--- a/keyboards/maartenwut/minitomic/minitomic.h
+++ b/keyboards/evyd13/minitomic/minitomic.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/minitomic/readme.md b/keyboards/evyd13/minitomic/readme.md
index df0a611f89..f4330d4d54 100644
--- a/keyboards/maartenwut/minitomic/readme.md
+++ b/keyboards/evyd13/minitomic/readme.md
@@ -3,7 +3,7 @@
![Minitomic](https://i.imgur.com/wGtNokW.jpg)
## Support
-* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: Minitomic
* Hardware Availability: [maartenwut.com](https://maartenwut.com)
@@ -18,6 +18,6 @@
## Build
Make example for this keyboard (after setting up your build environment):
- make maartenwut/minitomic:default
+ make evyd13/minitomic:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/minitomic/rules.mk b/keyboards/evyd13/minitomic/rules.mk
index 7af2b18703..aac492de06 100644
--- a/keyboards/maartenwut/minitomic/rules.mk
+++ b/keyboards/evyd13/minitomic/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs \ No newline at end of file
diff --git a/keyboards/evyd13/mx5160/config.h b/keyboards/evyd13/mx5160/config.h
new file mode 100644
index 0000000000..0b403e3a4a
--- /dev/null
+++ b/keyboards/evyd13/mx5160/config.h
@@ -0,0 +1,224 @@
+/* Copyright 2019 Evy Dekkers
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x4705
+#define PRODUCT_ID 0x5160
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Evyd13
+#define PRODUCT MX-5160
+#define DESCRIPTION Replacement PCB for the Chicony 5160c
+
+/* key matrix size */
+#define MATRIX_ROWS 10
+#define MATRIX_COLS 10
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS {C6,C7,B5,B6,D7,B4,D4,D6,D5,D3}
+#define MATRIX_COL_PINS {D0,D1,D2,F7,F6,F5,F4,F1,F0,E6}
+#define UNUSED_PINS {B7,B0}
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+// For QMK DFU
+#define QMK_ESC_OUTPUT C6
+#define QMK_ESC_INPUT D1
+#define QMK_LED B1
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+// #define BACKLIGHT_PIN B7
+// #define BACKLIGHT_BREATHING
+// #define BACKLIGHT_LEVELS 3
+
+// #define RGB_DI_PIN E2
+// #ifdef RGB_DI_PIN
+// #define RGBLED_NUM 16
+// #define RGBLIGHT_HUE_STEP 8
+// #define RGBLIGHT_SAT_STEP 8
+// #define RGBLIGHT_VAL_STEP 8
+// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+// /*== all animations enable ==*/
+// #define RGBLIGHT_ANIMATIONS
+// /*== or choose animations ==*/
+// #define RGBLIGHT_EFFECT_BREATHING
+// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// #define RGBLIGHT_EFFECT_SNAKE
+// #define RGBLIGHT_EFFECT_KNIGHT
+// #define RGBLIGHT_EFFECT_CHRISTMAS
+// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+// #define RGBLIGHT_EFFECT_RGB_TEST
+// #define RGBLIGHT_EFFECT_ALTERNATING
+// /*== customize breathing effect ==*/
+// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+// /*==== use exp() and sin() ====*/
+// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+// #endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Magic Key Options
+ *
+ * Magic keys are hotkey commands that allow control over firmware functions of
+ * the keyboard. They are best used in combination with the HID Listen program,
+ * found here: https://www.pjrc.com/teensy/hid_listen.html
+ *
+ * The options below allow the magic key functionality to be changed. This is
+ * useful if your keyboard/keypad is missing keys and you want magic key support.
+ *
+ */
+
+/* key combination for magic key command */
+/* defined by default; to change, uncomment and set to the combination you want */
+// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
+
+/* control how magic key switches layers */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
+
+/* override magic key keymap */
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
+//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
+//#define MAGIC_KEY_HELP H
+//#define MAGIC_KEY_HELP_ALT SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER0_ALT GRAVE
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER B
+//#define MAGIC_KEY_BOOTLOADER_ALT ESC
+//#define MAGIC_KEY_LOCK CAPS
+//#define MAGIC_KEY_EEPROM E
+//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
+//#define MAGIC_KEY_NKRO N
+//#define MAGIC_KEY_SLEEP_LED Z
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+ - MIDI notes can be sent when in Music mode is on
+*/
+//#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+ - MIDI notes can be added to the keymap
+ - Octave shift and transpose
+ - Virtual sustain, portamento, and modulation wheel
+ - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 1
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/maartenwut/mx5160/info.json b/keyboards/evyd13/mx5160/info.json
index 8962522ba4..af35cd70d6 100644
--- a/keyboards/maartenwut/mx5160/info.json
+++ b/keyboards/evyd13/mx5160/info.json
@@ -1,6 +1,6 @@
{
"keyboard_name": "mx5160",
- "url": "https://github.com/Maartenwut/mx-5160",
+ "url": "https://github.com/evyd13/mx-5160",
"maintainer": "qmk",
"width": 22,
"height": 5,
diff --git a/keyboards/maartenwut/mx5160/keymaps/default/keymap.c b/keyboards/evyd13/mx5160/keymaps/default/keymap.c
index be6cc89f68..ad198fe29e 100644
--- a/keyboards/maartenwut/mx5160/keymaps/default/keymap.c
+++ b/keyboards/evyd13/mx5160/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/mx5160/keymaps/default/readme.md b/keyboards/evyd13/mx5160/keymaps/default/readme.md
index c938677352..c938677352 100644
--- a/keyboards/maartenwut/mx5160/keymaps/default/readme.md
+++ b/keyboards/evyd13/mx5160/keymaps/default/readme.md
diff --git a/keyboards/maartenwut/mx5160/mx5160.c b/keyboards/evyd13/mx5160/mx5160.c
index 96859693c2..c9e412da24 100644
--- a/keyboards/maartenwut/mx5160/mx5160.c
+++ b/keyboards/evyd13/mx5160/mx5160.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/mx5160/mx5160.h b/keyboards/evyd13/mx5160/mx5160.h
index 89179a7f82..7486e62667 100644
--- a/keyboards/maartenwut/mx5160/mx5160.h
+++ b/keyboards/evyd13/mx5160/mx5160.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/mx5160/readme.md b/keyboards/evyd13/mx5160/readme.md
index 3b0e15d7e5..677b16072d 100644
--- a/keyboards/maartenwut/mx5160/readme.md
+++ b/keyboards/evyd13/mx5160/readme.md
@@ -3,13 +3,13 @@
![mx5160](https://i.imgur.com/XZ9xUeq.jpg)
## Support
-* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: mx-5160 (Chicony 5160c case)
-* Hardware Availability: [GitHub](https://github.com/Maartenwut/mx-5160)
+* Hardware Availability: [GitHub](https://github.com/evyd13/mx-5160)
## Build
Make example for this keyboard (after setting up your build environment):
- make maartenwut/mx5160:default
+ make evyd13/mx5160:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/mx5160/rules.mk b/keyboards/evyd13/mx5160/rules.mk
index eb1e55955b..400781b07f 100644
--- a/keyboards/maartenwut/mx5160/rules.mk
+++ b/keyboards/evyd13/mx5160/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/maartenwut/nt660/config.h b/keyboards/evyd13/nt660/config.h
index 84e93b4f04..b29d0d532f 100644
--- a/keyboards/maartenwut/nt660/config.h
+++ b/keyboards/evyd13/nt660/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2020 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0x1F02
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT nt660
#define DESCRIPTION Replacement PCB for Leopold FC660M
@@ -219,34 +219,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/maartenwut/nt660/info.json b/keyboards/evyd13/nt660/info.json
index 4b2b619698..371fd9a05e 100644
--- a/keyboards/maartenwut/nt660/info.json
+++ b/keyboards/evyd13/nt660/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "nt660",
"url": "",
- "maintainer": "maartenwut",
+ "maintainer": "evyd13",
"width": 16.5,
"height": 5,
"layouts": {
diff --git a/keyboards/maartenwut/nt660/keymaps/default/keymap.c b/keyboards/evyd13/nt660/keymaps/default/keymap.c
index 305cc8c873..5c9e1b22f0 100644
--- a/keyboards/maartenwut/nt660/keymaps/default/keymap.c
+++ b/keyboards/evyd13/nt660/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/nt660/keymaps/maartenwut/config.h b/keyboards/evyd13/nt660/keymaps/evyd13/config.h
index 9b18f58269..9b18f58269 100644
--- a/keyboards/maartenwut/nt660/keymaps/maartenwut/config.h
+++ b/keyboards/evyd13/nt660/keymaps/evyd13/config.h
diff --git a/keyboards/maartenwut/nt660/keymaps/maartenwut/keymap.c b/keyboards/evyd13/nt660/keymaps/evyd13/keymap.c
index 3232f8e551..b7eaa5d6c1 100644
--- a/keyboards/maartenwut/nt660/keymaps/maartenwut/keymap.c
+++ b/keyboards/evyd13/nt660/keymaps/evyd13/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/nt660/keymaps/via/keymap.c b/keyboards/evyd13/nt660/keymaps/via/keymap.c
index 5b8c2e342f..39d37390f5 100644
--- a/keyboards/maartenwut/nt660/keymaps/via/keymap.c
+++ b/keyboards/evyd13/nt660/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/nt660/keymaps/via/rules.mk b/keyboards/evyd13/nt660/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/nt660/keymaps/via/rules.mk
+++ b/keyboards/evyd13/nt660/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/nt660/nt660.c b/keyboards/evyd13/nt660/nt660.c
index 8ecc58ec17..2a8ebfb46c 100644
--- a/keyboards/maartenwut/nt660/nt660.c
+++ b/keyboards/evyd13/nt660/nt660.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/nt660/nt660.h b/keyboards/evyd13/nt660/nt660.h
index ce3d4fa624..ce9f98f54a 100644
--- a/keyboards/maartenwut/nt660/nt660.h
+++ b/keyboards/evyd13/nt660/nt660.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/nt660/readme.md b/keyboards/evyd13/nt660/readme.md
index cb7b19ca59..ddd2cc713f 100644
--- a/keyboards/maartenwut/nt660/readme.md
+++ b/keyboards/evyd13/nt660/readme.md
@@ -2,7 +2,7 @@
A drop-in replacement PCB for the Leopold FC660M.
-* Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: nt660 PCB
* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/nt-660/)
@@ -14,6 +14,6 @@ In place of the DIP switches on the original PCB there is a small button. Press
Make example for this keyboard (after setting up your build environment):
- make maartenwut/nt660:default
+ make evyd13/nt660:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/maartenwut/nt660/rules.mk b/keyboards/evyd13/nt660/rules.mk
index b633c90f0a..9f8f0cd896 100644
--- a/keyboards/maartenwut/nt660/rules.mk
+++ b/keyboards/evyd13/nt660/rules.mk
@@ -29,6 +29,5 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 66_ansi 66_iso
diff --git a/keyboards/maartenwut/omrontkl/config.h b/keyboards/evyd13/omrontkl/config.h
index a07500edfb..a72a6ce5c7 100644
--- a/keyboards/maartenwut/omrontkl/config.h
+++ b/keyboards/evyd13/omrontkl/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0xEA78
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT OmronTKL
#define DESCRIPTION A TKL PCB for Omron switches
diff --git a/keyboards/maartenwut/omrontkl/info.json b/keyboards/evyd13/omrontkl/info.json
index faf9569644..faf9569644 100644
--- a/keyboards/maartenwut/omrontkl/info.json
+++ b/keyboards/evyd13/omrontkl/info.json
diff --git a/keyboards/maartenwut/omrontkl/keymaps/default/keymap.c b/keyboards/evyd13/omrontkl/keymaps/default/keymap.c
index 7d8304ed74..c532d60ae6 100644
--- a/keyboards/maartenwut/omrontkl/keymaps/default/keymap.c
+++ b/keyboards/evyd13/omrontkl/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/omrontkl/omrontkl.c b/keyboards/evyd13/omrontkl/omrontkl.c
index e8748ea612..26d0344d33 100644
--- a/keyboards/maartenwut/omrontkl/omrontkl.c
+++ b/keyboards/evyd13/omrontkl/omrontkl.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/omrontkl/omrontkl.h b/keyboards/evyd13/omrontkl/omrontkl.h
index c8292def40..207eedfb47 100644
--- a/keyboards/maartenwut/omrontkl/omrontkl.h
+++ b/keyboards/evyd13/omrontkl/omrontkl.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/omrontkl/readme.md b/keyboards/evyd13/omrontkl/readme.md
index 2141fbc8e2..e45117c27c 100644
--- a/keyboards/maartenwut/omrontkl/readme.md
+++ b/keyboards/evyd13/omrontkl/readme.md
@@ -1,13 +1,13 @@
# OmronTKL
## Support
-* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: OmronTKL
* Hardware Availability: none
## Build
Make example for this keyboard (after setting up your build environment):
- make maartenwut/omrontkl:default
+ make evyd13/omrontkl:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/omrontkl/rules.mk b/keyboards/evyd13/omrontkl/rules.mk
index 8fc9b9c73d..8fc9b9c73d 100644
--- a/keyboards/maartenwut/omrontkl/rules.mk
+++ b/keyboards/evyd13/omrontkl/rules.mk
diff --git a/keyboards/maartenwut/plain60/config.h b/keyboards/evyd13/plain60/config.h
index af4fb62311..9eb5d6307b 100644
--- a/keyboards/maartenwut/plain60/config.h
+++ b/keyboards/evyd13/plain60/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2019 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0x0160
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT Plain60
#define DESCRIPTION A plain 60% PCB
diff --git a/keyboards/maartenwut/plain60/info.json b/keyboards/evyd13/plain60/info.json
index 140858986a..48aad441fb 100644
--- a/keyboards/maartenwut/plain60/info.json
+++ b/keyboards/evyd13/plain60/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "Plain60",
"url": "",
- "maintainer": "maartenwut",
+ "maintainer": "evyd13",
"width": 15,
"height": 5,
"layouts": {
diff --git a/keyboards/maartenwut/plain60/keymaps/audio/config.h b/keyboards/evyd13/plain60/keymaps/audio/config.h
index 9a43b7fbe3..9a43b7fbe3 100644
--- a/keyboards/maartenwut/plain60/keymaps/audio/config.h
+++ b/keyboards/evyd13/plain60/keymaps/audio/config.h
diff --git a/keyboards/maartenwut/plain60/keymaps/audio/keymap.c b/keyboards/evyd13/plain60/keymaps/audio/keymap.c
index 91ac37501c..91ac37501c 100644
--- a/keyboards/maartenwut/plain60/keymaps/audio/keymap.c
+++ b/keyboards/evyd13/plain60/keymaps/audio/keymap.c
diff --git a/keyboards/maartenwut/plain60/keymaps/audio/rules.mk b/keyboards/evyd13/plain60/keymaps/audio/rules.mk
index 600978d17e..600978d17e 100644
--- a/keyboards/maartenwut/plain60/keymaps/audio/rules.mk
+++ b/keyboards/evyd13/plain60/keymaps/audio/rules.mk
diff --git a/keyboards/maartenwut/plain60/keymaps/default/keymap.c b/keyboards/evyd13/plain60/keymaps/default/keymap.c
index 2e23dece01..2e23dece01 100644
--- a/keyboards/maartenwut/plain60/keymaps/default/keymap.c
+++ b/keyboards/evyd13/plain60/keymaps/default/keymap.c
diff --git a/keyboards/maartenwut/plain60/keymaps/kwerdenker/config.h b/keyboards/evyd13/plain60/keymaps/kwerdenker/config.h
index 5fadcf821a..5fadcf821a 100644
--- a/keyboards/maartenwut/plain60/keymaps/kwerdenker/config.h
+++ b/keyboards/evyd13/plain60/keymaps/kwerdenker/config.h
diff --git a/keyboards/maartenwut/plain60/keymaps/kwerdenker/keymap.c b/keyboards/evyd13/plain60/keymaps/kwerdenker/keymap.c
index 25370823df..25370823df 100644
--- a/keyboards/maartenwut/plain60/keymaps/kwerdenker/keymap.c
+++ b/keyboards/evyd13/plain60/keymaps/kwerdenker/keymap.c
diff --git a/keyboards/maartenwut/plain60/keymaps/kwerdenker/rules.mk b/keyboards/evyd13/plain60/keymaps/kwerdenker/rules.mk
index facc9dc7e6..facc9dc7e6 100644
--- a/keyboards/maartenwut/plain60/keymaps/kwerdenker/rules.mk
+++ b/keyboards/evyd13/plain60/keymaps/kwerdenker/rules.mk
diff --git a/keyboards/maartenwut/plain60/keymaps/rgb/config.h b/keyboards/evyd13/plain60/keymaps/rgb/config.h
index 8426938120..8426938120 100644
--- a/keyboards/maartenwut/plain60/keymaps/rgb/config.h
+++ b/keyboards/evyd13/plain60/keymaps/rgb/config.h
diff --git a/keyboards/maartenwut/plain60/keymaps/rgb/keymap.c b/keyboards/evyd13/plain60/keymaps/rgb/keymap.c
index abfb5f6b15..abfb5f6b15 100644
--- a/keyboards/maartenwut/plain60/keymaps/rgb/keymap.c
+++ b/keyboards/evyd13/plain60/keymaps/rgb/keymap.c
diff --git a/keyboards/maartenwut/plain60/keymaps/rgb/rules.mk b/keyboards/evyd13/plain60/keymaps/rgb/rules.mk
index b6cd87b7d4..b6cd87b7d4 100644
--- a/keyboards/maartenwut/plain60/keymaps/rgb/rules.mk
+++ b/keyboards/evyd13/plain60/keymaps/rgb/rules.mk
diff --git a/keyboards/maartenwut/plain60/keymaps/via/keymap.c b/keyboards/evyd13/plain60/keymaps/via/keymap.c
index a500f23896..a500f23896 100644
--- a/keyboards/maartenwut/plain60/keymaps/via/keymap.c
+++ b/keyboards/evyd13/plain60/keymaps/via/keymap.c
diff --git a/keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk b/keyboards/evyd13/plain60/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/aeboards/ext65/rev2/keymaps/via/rules.mk
+++ b/keyboards/evyd13/plain60/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/plain60/plain60.c b/keyboards/evyd13/plain60/plain60.c
index d816064104..d816064104 100644
--- a/keyboards/maartenwut/plain60/plain60.c
+++ b/keyboards/evyd13/plain60/plain60.c
diff --git a/keyboards/maartenwut/plain60/plain60.h b/keyboards/evyd13/plain60/plain60.h
index 87688e9ede..87688e9ede 100644
--- a/keyboards/maartenwut/plain60/plain60.h
+++ b/keyboards/evyd13/plain60/plain60.h
diff --git a/keyboards/maartenwut/plain60/readme.md b/keyboards/evyd13/plain60/readme.md
index 5e8b17a965..5ed19f0e7e 100644
--- a/keyboards/maartenwut/plain60/readme.md
+++ b/keyboards/evyd13/plain60/readme.md
@@ -3,9 +3,9 @@ Plain60-C and Plain60-B
A plain 60% PCB with USB-C.
-Keyboard Maintainer: Maartenwut
+Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
Hardware Supported: Plain60-C and Plain60-B
-Hardware Availability: https://github.com/Maartenwut/plain60-c
+Hardware Availability: https://github.com/evyd13/plain60-c
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/maartenwut/plain60/rules.mk b/keyboards/evyd13/plain60/rules.mk
index 398b59227d..398b59227d 100644
--- a/keyboards/maartenwut/plain60/rules.mk
+++ b/keyboards/evyd13/plain60/rules.mk
diff --git a/keyboards/maartenwut/pockettype/config.h b/keyboards/evyd13/pockettype/config.h
index 650572114d..fd2e0a8d07 100644
--- a/keyboards/maartenwut/pockettype/config.h
+++ b/keyboards/evyd13/pockettype/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0xFA7D
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT PocketType
#define DESCRIPTION A small 4x12 ortholinear keyboard
diff --git a/keyboards/maartenwut/pockettype/info.json b/keyboards/evyd13/pockettype/info.json
index 7f9df4cc6a..d1999273f6 100644
--- a/keyboards/maartenwut/pockettype/info.json
+++ b/keyboards/evyd13/pockettype/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "PocketType",
"url": "https://mechboards.co.uk/shop/kits/pockettype/",
- "maintainer": "maartenwut",
+ "maintainer": "evyd13",
"width": 12,
"height": 4,
"layouts": {
diff --git a/keyboards/maartenwut/pockettype/keymaps/default/keymap.c b/keyboards/evyd13/pockettype/keymaps/default/keymap.c
index 812ced4d91..5ca7326c00 100644
--- a/keyboards/maartenwut/pockettype/keymaps/default/keymap.c
+++ b/keyboards/evyd13/pockettype/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/pockettype/keymaps/default/readme.md b/keyboards/evyd13/pockettype/keymaps/default/readme.md
index 281fa6485d..281fa6485d 100644
--- a/keyboards/maartenwut/pockettype/keymaps/default/readme.md
+++ b/keyboards/evyd13/pockettype/keymaps/default/readme.md
diff --git a/keyboards/maartenwut/pockettype/pockettype.c b/keyboards/evyd13/pockettype/pockettype.c
index efbd60cad2..7404ac82b8 100644
--- a/keyboards/maartenwut/pockettype/pockettype.c
+++ b/keyboards/evyd13/pockettype/pockettype.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/pockettype/pockettype.h b/keyboards/evyd13/pockettype/pockettype.h
index 583338aae9..8c103dcc8f 100644
--- a/keyboards/maartenwut/pockettype/pockettype.h
+++ b/keyboards/evyd13/pockettype/pockettype.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/pockettype/readme.md b/keyboards/evyd13/pockettype/readme.md
index 5529c2d759..c32568a800 100644
--- a/keyboards/maartenwut/pockettype/readme.md
+++ b/keyboards/evyd13/pockettype/readme.md
@@ -1,13 +1,13 @@
# PocketType
## Support
-* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: PocketType
* Hardware Availability: [mechboards.co.uk](https://mechboards.co.uk/shop/kits/pockettype/)
## Build
Make example for this keyboard (after setting up your build environment):
- make maartenwut/pockettype:default
+ make evyd13/pockettype:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/maartenwut/pockettype/rules.mk b/keyboards/evyd13/pockettype/rules.mk
index 164bf9cef5..164bf9cef5 100644
--- a/keyboards/maartenwut/pockettype/rules.mk
+++ b/keyboards/evyd13/pockettype/rules.mk
diff --git a/keyboards/maartenwut/quackfire/config.h b/keyboards/evyd13/quackfire/config.h
index 6f974c3bf0..22083e8118 100644
--- a/keyboards/maartenwut/quackfire/config.h
+++ b/keyboards/evyd13/quackfire/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2020 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0x87C9
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT Quackfire
/* key matrix size */
diff --git a/keyboards/maartenwut/quackfire/info.json b/keyboards/evyd13/quackfire/info.json
index e307826a66..de7c9384cf 100644
--- a/keyboards/maartenwut/quackfire/info.json
+++ b/keyboards/evyd13/quackfire/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "Quackfire",
- "url": "https://github.com/Maartenwut/quackfire-controller",
- "maintainer": "Maartenwut",
+ "url": "https://github.com/evyd13/quackfire-controller",
+ "maintainer": "evyd13",
"width": 18.5,
"height": 6.5,
"layouts": {
diff --git a/keyboards/maartenwut/quackfire/keymaps/default/keymap.c b/keyboards/evyd13/quackfire/keymaps/default/keymap.c
index db3e169088..79b0a7ebd6 100644
--- a/keyboards/maartenwut/quackfire/keymaps/default/keymap.c
+++ b/keyboards/evyd13/quackfire/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/quackfire/keymaps/via/keymap.c b/keyboards/evyd13/quackfire/keymaps/via/keymap.c
index 391882af83..623e8fdc2d 100644
--- a/keyboards/maartenwut/quackfire/keymaps/via/keymap.c
+++ b/keyboards/evyd13/quackfire/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/quackfire/keymaps/via/rules.mk b/keyboards/evyd13/quackfire/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/quackfire/keymaps/via/rules.mk
+++ b/keyboards/evyd13/quackfire/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/quackfire/quackfire.c b/keyboards/evyd13/quackfire/quackfire.c
index cf76c5eb50..ab233bd6d4 100644
--- a/keyboards/maartenwut/quackfire/quackfire.c
+++ b/keyboards/evyd13/quackfire/quackfire.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/quackfire/quackfire.h b/keyboards/evyd13/quackfire/quackfire.h
index 81c0e279bc..8746f356fd 100644
--- a/keyboards/maartenwut/quackfire/quackfire.h
+++ b/keyboards/evyd13/quackfire/quackfire.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/quackfire/readme.md b/keyboards/evyd13/quackfire/readme.md
index 44f1d7feaf..3844169628 100644
--- a/keyboards/maartenwut/quackfire/readme.md
+++ b/keyboards/evyd13/quackfire/readme.md
@@ -2,9 +2,9 @@
A drop-in replacement controller for the CM Quickfire Rapid. Not for the Quickfire Rapid-I!
-* Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: Quackfire controller
-* Hardware Availability: [Open source on GitHub](https://github.com/Maartenwut/quackfire-controller)
+* Hardware Availability: [Open source on GitHub](https://github.com/evyd13/quackfire-controller)
## Flashing
@@ -14,6 +14,6 @@ To get to the bootloader, hold Fn while plugging in the keyboard. You can also p
Make example for this keyboard (after setting up your build environment):
- make maartenwut/quackfire:default
+ make evyd13/quackfire:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/maartenwut/quackfire/rules.mk b/keyboards/evyd13/quackfire/rules.mk
index f29136f744..f29136f744 100644
--- a/keyboards/maartenwut/quackfire/rules.mk
+++ b/keyboards/evyd13/quackfire/rules.mk
diff --git a/keyboards/maartenwut/solheim68/config.h b/keyboards/evyd13/solheim68/config.h
index cb2070e872..d61e095f1d 100644
--- a/keyboards/maartenwut/solheim68/config.h
+++ b/keyboards/evyd13/solheim68/config.h
@@ -22,7 +22,7 @@
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0x7BFF
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT Solheim68
/* key matrix size */
diff --git a/keyboards/maartenwut/solheim68/info.json b/keyboards/evyd13/solheim68/info.json
index 14a4a36f5a..dbafbc0d4d 100644
--- a/keyboards/maartenwut/solheim68/info.json
+++ b/keyboards/evyd13/solheim68/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "Solheim68",
- "url": "https://github.com/Maartenwut/solheim68",
- "maintainer": "maartenwut",
+ "url": "https://github.com/evyd13/solheim68",
+ "maintainer": "evyd13",
"width": 17.25,
"height": 5,
"layouts": {
diff --git a/keyboards/maartenwut/solheim68/keymaps/default/keymap.c b/keyboards/evyd13/solheim68/keymaps/default/keymap.c
index 728e8019a2..728e8019a2 100644
--- a/keyboards/maartenwut/solheim68/keymaps/default/keymap.c
+++ b/keyboards/evyd13/solheim68/keymaps/default/keymap.c
diff --git a/keyboards/maartenwut/solheim68/keymaps/default/readme.md b/keyboards/evyd13/solheim68/keymaps/default/readme.md
index 6e9745403b..6e9745403b 100644
--- a/keyboards/maartenwut/solheim68/keymaps/default/readme.md
+++ b/keyboards/evyd13/solheim68/keymaps/default/readme.md
diff --git a/keyboards/maartenwut/solheim68/readme.md b/keyboards/evyd13/solheim68/readme.md
index 1cf0ee9463..5d1d84c80d 100644
--- a/keyboards/maartenwut/solheim68/readme.md
+++ b/keyboards/evyd13/solheim68/readme.md
@@ -2,16 +2,16 @@
A replacement PCB for the VA68M (v2) with Mini-USB.
-* Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: Solheim68 PCB
-* Hardware Availability: [Open source on GitHub](https://github.com/Maartenwut/solheim68)
+* Hardware Availability: [Open source on GitHub](https://github.com/evyd13/solheim68)
Make example for this keyboard (after setting up your build environment):
- make maartenwut/solheim68:default
+ make evyd13/solheim68:default
Flashing example for this keyboard:
- make maartenwut/solheim68:default:flash
+ make evyd13/solheim68:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/maartenwut/solheim68/rules.mk b/keyboards/evyd13/solheim68/rules.mk
index a90eef1fc6..a90eef1fc6 100644
--- a/keyboards/maartenwut/solheim68/rules.mk
+++ b/keyboards/evyd13/solheim68/rules.mk
diff --git a/keyboards/maartenwut/solheim68/solheim68.c b/keyboards/evyd13/solheim68/solheim68.c
index 27f90f4e87..27f90f4e87 100644
--- a/keyboards/maartenwut/solheim68/solheim68.c
+++ b/keyboards/evyd13/solheim68/solheim68.c
diff --git a/keyboards/maartenwut/solheim68/solheim68.h b/keyboards/evyd13/solheim68/solheim68.h
index 2f6339bd10..2f6339bd10 100644
--- a/keyboards/maartenwut/solheim68/solheim68.h
+++ b/keyboards/evyd13/solheim68/solheim68.h
diff --git a/keyboards/maartenwut/ta65/config.h b/keyboards/evyd13/ta65/config.h
index 729f21a2e2..b73505c016 100644
--- a/keyboards/maartenwut/ta65/config.h
+++ b/keyboards/evyd13/ta65/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2019 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0x7465
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT ta-65
#define DESCRIPTION A universal 65% PCB with underglow.
diff --git a/keyboards/maartenwut/ta65/info.json b/keyboards/evyd13/ta65/info.json
index e509521d4d..e509521d4d 100644
--- a/keyboards/maartenwut/ta65/info.json
+++ b/keyboards/evyd13/ta65/info.json
diff --git a/keyboards/maartenwut/ta65/keymaps/default/keymap.c b/keyboards/evyd13/ta65/keymaps/default/keymap.c
index 8bb8a14ba0..8bb8a14ba0 100644
--- a/keyboards/maartenwut/ta65/keymaps/default/keymap.c
+++ b/keyboards/evyd13/ta65/keymaps/default/keymap.c
diff --git a/keyboards/maartenwut/ta65/keymaps/default_ansi/keymap.c b/keyboards/evyd13/ta65/keymaps/default_ansi/keymap.c
index 9319d5bbac..9319d5bbac 100644
--- a/keyboards/maartenwut/ta65/keymaps/default_ansi/keymap.c
+++ b/keyboards/evyd13/ta65/keymaps/default_ansi/keymap.c
diff --git a/keyboards/maartenwut/ta65/keymaps/default_ansi_tsangan/keymap.c b/keyboards/evyd13/ta65/keymaps/default_ansi_tsangan/keymap.c
index 5e0cd0b553..5e0cd0b553 100644
--- a/keyboards/maartenwut/ta65/keymaps/default_ansi_tsangan/keymap.c
+++ b/keyboards/evyd13/ta65/keymaps/default_ansi_tsangan/keymap.c
diff --git a/keyboards/maartenwut/ta65/keymaps/default_iso/keymap.c b/keyboards/evyd13/ta65/keymaps/default_iso/keymap.c
index 1d11ff9584..1d11ff9584 100644
--- a/keyboards/maartenwut/ta65/keymaps/default_iso/keymap.c
+++ b/keyboards/evyd13/ta65/keymaps/default_iso/keymap.c
diff --git a/keyboards/maartenwut/ta65/keymaps/default_iso_tsangan/keymap.c b/keyboards/evyd13/ta65/keymaps/default_iso_tsangan/keymap.c
index 8505d73afd..8505d73afd 100644
--- a/keyboards/maartenwut/ta65/keymaps/default_iso_tsangan/keymap.c
+++ b/keyboards/evyd13/ta65/keymaps/default_iso_tsangan/keymap.c
diff --git a/keyboards/maartenwut/ta65/keymaps/maartenwut/config.h b/keyboards/evyd13/ta65/keymaps/evyd13/config.h
index 9b18f58269..9b18f58269 100644
--- a/keyboards/maartenwut/ta65/keymaps/maartenwut/config.h
+++ b/keyboards/evyd13/ta65/keymaps/evyd13/config.h
diff --git a/keyboards/maartenwut/ta65/keymaps/maartenwut/keymap.c b/keyboards/evyd13/ta65/keymaps/evyd13/keymap.c
index a8ce0f180e..a8ce0f180e 100644
--- a/keyboards/maartenwut/ta65/keymaps/maartenwut/keymap.c
+++ b/keyboards/evyd13/ta65/keymaps/evyd13/keymap.c
diff --git a/keyboards/maartenwut/ta65/keymaps/via/keymap.c b/keyboards/evyd13/ta65/keymaps/via/keymap.c
index e2d96eb9c0..e2d96eb9c0 100644
--- a/keyboards/maartenwut/ta65/keymaps/via/keymap.c
+++ b/keyboards/evyd13/ta65/keymaps/via/keymap.c
diff --git a/keyboards/maartenwut/plain60/keymaps/via/rules.mk b/keyboards/evyd13/ta65/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/maartenwut/plain60/keymaps/via/rules.mk
+++ b/keyboards/evyd13/ta65/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/ta65/readme.md b/keyboards/evyd13/ta65/readme.md
index 48ba9ee0fe..ea98161bb3 100644
--- a/keyboards/maartenwut/ta65/readme.md
+++ b/keyboards/evyd13/ta65/readme.md
@@ -1,7 +1,7 @@
TA-65
=====
-A 65% PCB designed to fit the TADA68, Kayak and others by [maartenwut](https://maartenwut.com).
+A 65% PCB designed to fit the TADA68, Kayak and others by [Evyd13](https://github.com/evyd13).
![kle](https://maartenwut.com/wp-content/uploads/2019/02/ta-65-layouts-768x420.png)
diff --git a/keyboards/maartenwut/ta65/rules.mk b/keyboards/evyd13/ta65/rules.mk
index 86efb933bb..9984f27679 100644
--- a/keyboards/maartenwut/ta65/rules.mk
+++ b/keyboards/evyd13/ta65/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes
LAYOUTS = 65_ansi 65_iso
diff --git a/keyboards/maartenwut/ta65/ta65.c b/keyboards/evyd13/ta65/ta65.c
index 4f67a0203d..4f67a0203d 100644
--- a/keyboards/maartenwut/ta65/ta65.c
+++ b/keyboards/evyd13/ta65/ta65.c
diff --git a/keyboards/maartenwut/ta65/ta65.h b/keyboards/evyd13/ta65/ta65.h
index 40a763b993..40a763b993 100644
--- a/keyboards/maartenwut/ta65/ta65.h
+++ b/keyboards/evyd13/ta65/ta65.h
diff --git a/keyboards/maartenwut/wasdat/config.h b/keyboards/evyd13/wasdat/config.h
index d30263bfcf..534ae71a51 100644
--- a/keyboards/maartenwut/wasdat/config.h
+++ b/keyboards/evyd13/wasdat/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2019 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0xC474
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT Wasdat
#define DESCRIPTION Custom controller for the WASD v2 TKL and 104
@@ -223,34 +223,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 5
diff --git a/keyboards/maartenwut/wasdat/info.json b/keyboards/evyd13/wasdat/info.json
index 6154bd5555..83c413eda2 100644
--- a/keyboards/maartenwut/wasdat/info.json
+++ b/keyboards/evyd13/wasdat/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "Wasdat",
"url": "https://maartenwut.com/product/wasdat/",
- "maintainer": "Maartenwut",
+ "maintainer": "evyd13",
"width": 22.5,
"height": 6.5,
"layouts": {
diff --git a/keyboards/maartenwut/wasdat/keymaps/default/keymap.c b/keyboards/evyd13/wasdat/keymaps/default/keymap.c
index 715bbd3133..89de85c497 100644
--- a/keyboards/maartenwut/wasdat/keymaps/default/keymap.c
+++ b/keyboards/evyd13/wasdat/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/wasdat/keymaps/default/readme.md b/keyboards/evyd13/wasdat/keymaps/default/readme.md
index 66cf593892..66cf593892 100644
--- a/keyboards/maartenwut/wasdat/keymaps/default/readme.md
+++ b/keyboards/evyd13/wasdat/keymaps/default/readme.md
diff --git a/keyboards/maartenwut/wasdat_code/keymaps/default_iso/keymap.c b/keyboards/evyd13/wasdat/keymaps/default_iso/keymap.c
index 8bdad48312..fdc61cea4b 100644
--- a/keyboards/maartenwut/wasdat_code/keymaps/default_iso/keymap.c
+++ b/keyboards/evyd13/wasdat/keymaps/default_iso/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/wasdat/keymaps/default_iso/readme.md b/keyboards/evyd13/wasdat/keymaps/default_iso/readme.md
index e36d764201..e36d764201 100644
--- a/keyboards/maartenwut/wasdat/keymaps/default_iso/readme.md
+++ b/keyboards/evyd13/wasdat/keymaps/default_iso/readme.md
diff --git a/keyboards/maartenwut/wasdat/keymaps/konstantin/config.h b/keyboards/evyd13/wasdat/keymaps/konstantin/config.h
index 1d12c7db37..1d12c7db37 100644
--- a/keyboards/maartenwut/wasdat/keymaps/konstantin/config.h
+++ b/keyboards/evyd13/wasdat/keymaps/konstantin/config.h
diff --git a/keyboards/maartenwut/wasdat/keymaps/konstantin/keymap.c b/keyboards/evyd13/wasdat/keymaps/konstantin/keymap.c
index 481c5fd1fa..481c5fd1fa 100644
--- a/keyboards/maartenwut/wasdat/keymaps/konstantin/keymap.c
+++ b/keyboards/evyd13/wasdat/keymaps/konstantin/keymap.c
diff --git a/keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk b/keyboards/evyd13/wasdat/keymaps/konstantin/rules.mk
index f70005d3f6..f70005d3f6 100644
--- a/keyboards/maartenwut/wasdat/keymaps/konstantin/rules.mk
+++ b/keyboards/evyd13/wasdat/keymaps/konstantin/rules.mk
diff --git a/keyboards/maartenwut/wasdat/keymaps/via/keymap.c b/keyboards/evyd13/wasdat/keymaps/via/keymap.c
index 9ad78d60d9..9ad78d60d9 100644
--- a/keyboards/maartenwut/wasdat/keymaps/via/keymap.c
+++ b/keyboards/evyd13/wasdat/keymaps/via/keymap.c
diff --git a/keyboards/maartenwut/wasdat/keymaps/via/rules.mk b/keyboards/evyd13/wasdat/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/wasdat/keymaps/via/rules.mk
+++ b/keyboards/evyd13/wasdat/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/wasdat/matrix.c b/keyboards/evyd13/wasdat/matrix.c
index 6dd79b5330..6dd79b5330 100644
--- a/keyboards/maartenwut/wasdat/matrix.c
+++ b/keyboards/evyd13/wasdat/matrix.c
diff --git a/keyboards/maartenwut/wasdat/readme.md b/keyboards/evyd13/wasdat/readme.md
index 65ae6231e8..40a06b5930 100644
--- a/keyboards/maartenwut/wasdat/readme.md
+++ b/keyboards/evyd13/wasdat/readme.md
@@ -4,7 +4,7 @@
A drop-in replacement controller for the WASD v2 TKL and fullsize models.
-* Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: WASD v2 TKL/Fullsize ANSI & ISO with Wasdat controller
* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/wasdat/)
@@ -16,6 +16,6 @@ The WASD has no reset button, but it does have a bank of DIP switches on the bot
Make example for this keyboard (after setting up your build environment):
- make maartenwut/wasdat:default
+ make evyd13/wasdat:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/maartenwut/wasdat/rules.mk b/keyboards/evyd13/wasdat/rules.mk
index 822baf5ed8..575e63f5bc 100644
--- a/keyboards/maartenwut/wasdat/rules.mk
+++ b/keyboards/evyd13/wasdat/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = lite
SRC += matrix.c
diff --git a/keyboards/maartenwut/wasdat/wasdat.c b/keyboards/evyd13/wasdat/wasdat.c
index a2ec320f78..2d0e999c4e 100644
--- a/keyboards/maartenwut/wasdat/wasdat.c
+++ b/keyboards/evyd13/wasdat/wasdat.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/wasdat/wasdat.h b/keyboards/evyd13/wasdat/wasdat.h
index a25646b628..be0472f398 100644
--- a/keyboards/maartenwut/wasdat/wasdat.h
+++ b/keyboards/evyd13/wasdat/wasdat.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/wasdat_code/config.h b/keyboards/evyd13/wasdat_code/config.h
index 16d5acd9c4..f4b15ced3e 100644
--- a/keyboards/maartenwut/wasdat_code/config.h
+++ b/keyboards/evyd13/wasdat_code/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2019 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0xB00E
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT Wasdat Code
#define DESCRIPTION Custom controller for the WASD CODE TKL and 104-key keyboards
@@ -223,34 +223,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 2
#define BOOTMAGIC_LITE_COLUMN 3
diff --git a/keyboards/maartenwut/wasdat_code/info.json b/keyboards/evyd13/wasdat_code/info.json
index 526883f8d5..4e6ed630ca 100644
--- a/keyboards/maartenwut/wasdat_code/info.json
+++ b/keyboards/evyd13/wasdat_code/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "Wasdat Code",
"url": "https://maartenwut.com/product/wasdat-code/",
- "maintainer": "Maartenwut",
+ "maintainer": "evyd13",
"width": 22.5,
"height": 6.5,
"layouts": {
diff --git a/keyboards/maartenwut/wasdat_code/keymaps/default/keymap.c b/keyboards/evyd13/wasdat_code/keymaps/default/keymap.c
index beee150b60..c73a2ececb 100644
--- a/keyboards/maartenwut/wasdat_code/keymaps/default/keymap.c
+++ b/keyboards/evyd13/wasdat_code/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/wasdat_code/keymaps/default/readme.md b/keyboards/evyd13/wasdat_code/keymaps/default/readme.md
index 66cf593892..66cf593892 100644
--- a/keyboards/maartenwut/wasdat_code/keymaps/default/readme.md
+++ b/keyboards/evyd13/wasdat_code/keymaps/default/readme.md
diff --git a/keyboards/maartenwut/wasdat/keymaps/default_iso/keymap.c b/keyboards/evyd13/wasdat_code/keymaps/default_iso/keymap.c
index 8bdad48312..fdc61cea4b 100644
--- a/keyboards/maartenwut/wasdat/keymaps/default_iso/keymap.c
+++ b/keyboards/evyd13/wasdat_code/keymaps/default_iso/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/wasdat_code/keymaps/default_iso/readme.md b/keyboards/evyd13/wasdat_code/keymaps/default_iso/readme.md
index e36d764201..e36d764201 100644
--- a/keyboards/maartenwut/wasdat_code/keymaps/default_iso/readme.md
+++ b/keyboards/evyd13/wasdat_code/keymaps/default_iso/readme.md
diff --git a/keyboards/maartenwut/wasdat_code/keymaps/via/keymap.c b/keyboards/evyd13/wasdat_code/keymaps/via/keymap.c
index c3155c1e72..35445812bd 100644
--- a/keyboards/maartenwut/wasdat_code/keymaps/via/keymap.c
+++ b/keyboards/evyd13/wasdat_code/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/wasdat_code/keymaps/via/rules.mk b/keyboards/evyd13/wasdat_code/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/wasdat_code/keymaps/via/rules.mk
+++ b/keyboards/evyd13/wasdat_code/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/wasdat_code/matrix.c b/keyboards/evyd13/wasdat_code/matrix.c
index 7844db7ab7..7844db7ab7 100644
--- a/keyboards/maartenwut/wasdat_code/matrix.c
+++ b/keyboards/evyd13/wasdat_code/matrix.c
diff --git a/keyboards/maartenwut/wasdat_code/readme.md b/keyboards/evyd13/wasdat_code/readme.md
index 403fabc684..0467069fcc 100644
--- a/keyboards/maartenwut/wasdat_code/readme.md
+++ b/keyboards/evyd13/wasdat_code/readme.md
@@ -2,7 +2,7 @@
A drop-in replacement controller for the WASD CODE TKL and fullsize models.
-* Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: WASD CODE TKL/Fullsize ANSI & ISO with Wasdat Code controller
* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/wasdat-code/)
@@ -14,6 +14,6 @@ The WASD has no reset button, so to put the controller in flashing mode, simply
Make example for this keyboard (after setting up your build environment):
- make maartenwut/wasdat_code:default
+ make evyd13/wasdat_code:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/maartenwut/wasdat_code/rules.mk b/keyboards/evyd13/wasdat_code/rules.mk
index 642f8dc514..1ff76bab21 100644
--- a/keyboards/maartenwut/wasdat_code/rules.mk
+++ b/keyboards/evyd13/wasdat_code/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = lite
SRC += matrix.c
diff --git a/keyboards/maartenwut/wasdat_code/wasdat_code.c b/keyboards/evyd13/wasdat_code/wasdat_code.c
index 044439fb51..33551c2d0c 100644
--- a/keyboards/maartenwut/wasdat_code/wasdat_code.c
+++ b/keyboards/evyd13/wasdat_code/wasdat_code.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/wasdat_code/wasdat_code.h b/keyboards/evyd13/wasdat_code/wasdat_code.h
index 5b3ed20913..b586f4aade 100644
--- a/keyboards/maartenwut/wasdat_code/wasdat_code.h
+++ b/keyboards/evyd13/wasdat_code/wasdat_code.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/maartenwut/wonderland/config.h b/keyboards/evyd13/wonderland/config.h
index a61d78c42b..a75394b01a 100755..100644
--- a/keyboards/maartenwut/wonderland/config.h
+++ b/keyboards/evyd13/wonderland/config.h
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0xA71C
#define DEVICE_VER 0x0003
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT Wonderland
#define DESCRIPTION "QMK Firmware for the Wonderland"
diff --git a/keyboards/maartenwut/wonderland/info.json b/keyboards/evyd13/wonderland/info.json
index d4f7196d86..678b081428 100644
--- a/keyboards/maartenwut/wonderland/info.json
+++ b/keyboards/evyd13/wonderland/info.json
@@ -1,7 +1,7 @@
{
- "keyboard_name": "Maartenwut Wonderland",
+ "keyboard_name": "Wonderland",
"url": "",
- "maintainer": "Maartenwut",
+ "maintainer": "evyd13",
"width": 18.25,
"height": 5,
"layouts": {
diff --git a/keyboards/maartenwut/wonderland/keymaps/brandonschlack/config.h b/keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h
index 38383cffc2..38383cffc2 100644
--- a/keyboards/maartenwut/wonderland/keymaps/brandonschlack/config.h
+++ b/keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h
diff --git a/keyboards/maartenwut/wonderland/keymaps/brandonschlack/keymap.c b/keyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c
index ca7bd773c5..ca7bd773c5 100755
--- a/keyboards/maartenwut/wonderland/keymaps/brandonschlack/keymap.c
+++ b/keyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c
diff --git a/keyboards/maartenwut/wonderland/keymaps/brandonschlack/rules.mk b/keyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk
index 80361c34fd..80361c34fd 100755
--- a/keyboards/maartenwut/wonderland/keymaps/brandonschlack/rules.mk
+++ b/keyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk
diff --git a/keyboards/maartenwut/wonderland/keymaps/default/keymap.c b/keyboards/evyd13/wonderland/keymaps/default/keymap.c
index da03d7615e..da03d7615e 100755..100644
--- a/keyboards/maartenwut/wonderland/keymaps/default/keymap.c
+++ b/keyboards/evyd13/wonderland/keymaps/default/keymap.c
diff --git a/keyboards/maartenwut/wonderland/keymaps/keebs/keymap.c b/keyboards/evyd13/wonderland/keymaps/keebs/keymap.c
index ceb9856061..ceb9856061 100755..100644
--- a/keyboards/maartenwut/wonderland/keymaps/keebs/keymap.c
+++ b/keyboards/evyd13/wonderland/keymaps/keebs/keymap.c
diff --git a/keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/keymap.c b/keyboards/evyd13/wonderland/keymaps/rafael-azevedo/keymap.c
index 5c59d53a7d..5c59d53a7d 100755..100644
--- a/keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/keymap.c
+++ b/keyboards/evyd13/wonderland/keymaps/rafael-azevedo/keymap.c
diff --git a/keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/readme.md b/keyboards/evyd13/wonderland/keymaps/rafael-azevedo/readme.md
index a5381fff32..a5381fff32 100644
--- a/keyboards/maartenwut/wonderland/keymaps/rafael-azevedo/readme.md
+++ b/keyboards/evyd13/wonderland/keymaps/rafael-azevedo/readme.md
diff --git a/keyboards/maartenwut/wonderland/keymaps/rys/keymap.c b/keyboards/evyd13/wonderland/keymaps/rys/keymap.c
index 7669df535e..7669df535e 100755..100644
--- a/keyboards/maartenwut/wonderland/keymaps/rys/keymap.c
+++ b/keyboards/evyd13/wonderland/keymaps/rys/keymap.c
diff --git a/keyboards/maartenwut/wonderland/keymaps/via/keymap.c b/keyboards/evyd13/wonderland/keymaps/via/keymap.c
index 85fde41a25..85fde41a25 100644
--- a/keyboards/maartenwut/wonderland/keymaps/via/keymap.c
+++ b/keyboards/evyd13/wonderland/keymaps/via/keymap.c
diff --git a/keyboards/maartenwut/wonderland/keymaps/via/rules.mk b/keyboards/evyd13/wonderland/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/maartenwut/wonderland/keymaps/via/rules.mk
+++ b/keyboards/evyd13/wonderland/keymaps/via/rules.mk
diff --git a/keyboards/maartenwut/wonderland/readme.md b/keyboards/evyd13/wonderland/readme.md
index 36b3022caa..8520908db3 100644
--- a/keyboards/maartenwut/wonderland/readme.md
+++ b/keyboards/evyd13/wonderland/readme.md
@@ -3,12 +3,12 @@ Wonderland USB-c and USB-mini
Only the USB-mini part is compatible with the original Alice case. The USB-c version was created for the Lubrigante, a case designed by Zambumon and a GB run by homerowco.
-Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut)<br>
+Keyboard Maintainer: [Evyd13](https://github.com/evyd13)<br>
Hardware Supported: Wonderland-C and Wonderland-Mini<br>
Hardware Availability: https://maartenwut.com/product/wonderland-mini-usb-only/<br>
Make example for this keyboard (after setting up your build environment):
- make maartenwut/wonderland:default
+ make evyd13/wonderland:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/maartenwut/wonderland/rules.mk b/keyboards/evyd13/wonderland/rules.mk
index 3a7e92f4db..3a7e92f4db 100755..100644
--- a/keyboards/maartenwut/wonderland/rules.mk
+++ b/keyboards/evyd13/wonderland/rules.mk
diff --git a/keyboards/maartenwut/wonderland/wonderland.c b/keyboards/evyd13/wonderland/wonderland.c
index 4415443816..4415443816 100755..100644
--- a/keyboards/maartenwut/wonderland/wonderland.c
+++ b/keyboards/evyd13/wonderland/wonderland.c
diff --git a/keyboards/maartenwut/wonderland/wonderland.h b/keyboards/evyd13/wonderland/wonderland.h
index 075e3f64b4..075e3f64b4 100755..100644
--- a/keyboards/maartenwut/wonderland/wonderland.h
+++ b/keyboards/evyd13/wonderland/wonderland.h
diff --git a/keyboards/exclusive/e6_rgb/keymaps/allleds/rules.mk b/keyboards/exclusive/e6_rgb/keymaps/allleds/rules.mk
index f8610f7e28..c2a46039d6 100644
--- a/keyboards/exclusive/e6_rgb/keymaps/allleds/rules.mk
+++ b/keyboards/exclusive/e6_rgb/keymaps/allleds/rules.mk
@@ -1 +1 @@
-RGB_MATRIX_ENABLE = IS31FL3733# Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
diff --git a/keyboards/exclusive/e6_rgb/rules.mk b/keyboards/exclusive/e6_rgb/rules.mk
index 4d8e1c6e5f..8e3dce6be6 100644
--- a/keyboards/exclusive/e6_rgb/rules.mk
+++ b/keyboards/exclusive/e6_rgb/rules.mk
@@ -31,4 +31,5 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
RGBLIGHT_ENABLE = yes # Use RGB underglow light
RGB_MATRIX_ENABLE = no # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3733
LAYOUTS = 60_ansi 60_hhkb
diff --git a/keyboards/gami_studio/lex60/config.h b/keyboards/gami_studio/lex60/config.h
index 8a038ccce7..7b6edb36f4 100644
--- a/keyboards/gami_studio/lex60/config.h
+++ b/keyboards/gami_studio/lex60/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2019 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0x7353
#define PRODUCT_ID 0x0160
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT Lex60
#define DESCRIPTION A 60% PCB
diff --git a/keyboards/geekboards/tester/rules.mk b/keyboards/geekboards/tester/rules.mk
index 03b4e83992..396cfdf20c 100644
--- a/keyboards/geekboards/tester/rules.mk
+++ b/keyboards/geekboards/tester/rules.mk
@@ -30,3 +30,4 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3731
diff --git a/keyboards/gh60/revc/keymaps/maartenwut/keymap.c b/keyboards/gh60/revc/keymaps/maartenwut/keymap.c
deleted file mode 100755
index d5e101e7f6..0000000000
--- a/keyboards/gh60/revc/keymaps/maartenwut/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define _MA 0
-#define _GA 1
-#define _FL 2
-#define _AR 3
-
-#define TRNS KC_TRNS
-#define trigger_time 400
-
-#define LSHIFT OSM(MOD_LSFT)
-#define SPACE LT(_AR, KC_SPC)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// Main Layer
-[_MA] = LAYOUT_60_ansi_split_bs_rshift(
- KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL,
- KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_NO, KC_RALT, MO(_FL), KC_RCTRL),
-
-//Function Layer
-[_FL] = LAYOUT_60_ansi_split_bs_rshift(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET, KC_NO,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PSCR,
- TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_MPLY,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
-
-//Arrow keys layer (space bar)
-[_AR] = LAYOUT_60_ansi_split_bs_rshift(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, KC_NO,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PGUP, KC_UP, KC_PGDN, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_RGHT, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
-
-//Game layer (fn + g)
-[_GA] = LAYOUT_60_ansi_split_bs_rshift(
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_NO,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, KC_SPC, TRNS, TRNS, MO(_FL), TRNS),
-
-};
diff --git a/keyboards/hadron/ver3/rules.mk b/keyboards/hadron/ver3/rules.mk
index 8ce0d77b78..6c13bd2bc1 100644
--- a/keyboards/hadron/ver3/rules.mk
+++ b/keyboards/hadron/ver3/rules.mk
@@ -16,7 +16,8 @@ NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = no # Custom matrix file
AUDIO_ENABLE = yes
RGBLIGHT_ENABLE = yes
-RGB_MATRIX_ENABLE = no #WS2812 once arm_rgb is implemented
+RGB_MATRIX_ENABLE = no # once arm_rgb is implemented
+RGB_MATRIX_DRIVER = WS2812
HAPTIC_ENABLE += DRV2605L
QWIIC_ENABLE += MICRO_OLED
ENCODER_ENABLER = yes
diff --git a/keyboards/handwired/6macro/rules.mk b/keyboards/handwired/6macro/rules.mk
index 9add0e5a50..6649eb3ad1 100644
--- a/keyboards/handwired/6macro/rules.mk
+++ b/keyboards/handwired/6macro/rules.mk
@@ -23,7 +23,8 @@ COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
-#RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
+RGB_MATRIX_ENABLE = yes # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
+RGB_MATRIX_DRIVER = WS2812
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
diff --git a/keyboards/handwired/colorlice/rules.mk b/keyboards/handwired/colorlice/rules.mk
index f41304b2aa..9e043adf4b 100644
--- a/keyboards/handwired/colorlice/rules.mk
+++ b/keyboards/handwired/colorlice/rules.mk
@@ -30,5 +30,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LTO_ENABLE = no # Use link time optimization
-RGB_MATRIX_ENABLE = WS2812 # Enable keyboard RGB backlight functionality with ws2812 driver
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
diff --git a/keyboards/handwired/hnah108/rules.mk b/keyboards/handwired/hnah108/rules.mk
index e91ef88d40..f0a39faebe 100644
--- a/keyboards/handwired/hnah108/rules.mk
+++ b/keyboards/handwired/hnah108/rules.mk
@@ -21,4 +21,5 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
diff --git a/keyboards/handwired/hnah40rgb/rules.mk b/keyboards/handwired/hnah40rgb/rules.mk
index 658a74d14e..d4586014ae 100644
--- a/keyboards/handwired/hnah40rgb/rules.mk
+++ b/keyboards/handwired/hnah40rgb/rules.mk
@@ -29,4 +29,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = WS2812 \ No newline at end of file
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812 \ No newline at end of file
diff --git a/keyboards/handwired/maartenwut/config.h b/keyboards/handwired/maartenwut/config.h
deleted file mode 100755
index d059c6e4ab..0000000000
--- a/keyboards/handwired/maartenwut/config.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef CONFIG_H
-#define CONFIG_H
-
-#include "config_common.h"
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xBB80
-#define PRODUCT_ID 0x050D
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
-#define PRODUCT Ortho
-#define DESCRIPTION Handwired ortholinear keyboard
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-#define MATRIX_ROW_PINS { D4, D0, D1, D2, D3 }
-#define MATRIX_COL_PINS { C6, D7, E6, B4, B5, B6, B7, D6, F0, F1, F4, F5, F6, F7 }
-#define UNUSED_PINS
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION COL2ROW
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
-
-#define QMK_ESC_OUTPUT C6 // usually COL
-#define QMK_ESC_INPUT D0 // usually ROW
-
-#endif \ No newline at end of file
diff --git a/keyboards/handwired/maartenwut/info.json b/keyboards/handwired/maartenwut/info.json
deleted file mode 100644
index 98720d24f1..0000000000
--- a/keyboards/handwired/maartenwut/info.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "keyboard_name": "Maartenwut Ortho",
- "url": "",
- "maintainer": "maartenwut",
- "width": 14,
- "height": 5,
- "layouts": {
- "LAYOUT": {
- "layout": [
- {"label":"`", "x":0, "y":0},
- {"label":"1", "x":1, "y":0},
- {"label":"2", "x":2, "y":0},
- {"label":"3", "x":3, "y":0},
- {"label":"4", "x":4, "y":0},
- {"label":"5", "x":5, "y":0},
- {"label":"6", "x":6, "y":0},
- {"label":"7", "x":7, "y":0},
- {"label":"8", "x":8, "y":0},
- {"label":"9", "x":9, "y":0},
- {"label":"0", "x":10, "y":0},
- {"label":"-", "x":11, "y":0},
- {"label":"=", "x":12, "y":0},
- {"label":"Backspace", "x":13, "y":0},
- {"label":"Esc", "x":0, "y":1},
- {"label":"Q", "x":1, "y":1},
- {"label":"W", "x":2, "y":1},
- {"label":"E", "x":3, "y":1},
- {"label":"R", "x":4, "y":1},
- {"label":"T", "x":5, "y":1},
- {"label":"Y", "x":6, "y":1},
- {"label":"U", "x":7, "y":1},
- {"label":"I", "x":8, "y":1},
- {"label":"O", "x":9, "y":1},
- {"label":"P", "x":10, "y":1},
- {"label":"[", "x":11, "y":1},
- {"label":"]", "x":12, "y":1},
- {"label":"\\", "x":13, "y":1},
- {"label":"Tab", "x":0, "y":2},
- {"label":"A", "x":1, "y":2},
- {"label":"S", "x":2, "y":2},
- {"label":"D", "x":3, "y":2},
- {"label":"F", "x":4, "y":2},
- {"label":"G", "x":5, "y":2},
- {"label":"H", "x":6, "y":2},
- {"label":"J", "x":7, "y":2},
- {"label":"K", "x":8, "y":2},
- {"label":"L", "x":9, "y":2},
- {"label":";", "x":10, "y":2},
- {"label":"'", "x":11, "y":2},
- {"label":"Delete", "x":12, "y":2},
- {"label":"Enter", "x":13, "y":2},
- {"label":"Shift", "x":0, "y":3},
- {"label":"Z", "x":1, "y":3},
- {"label":"X", "x":2, "y":3},
- {"label":"C", "x":3, "y":3},
- {"label":"V", "x":4, "y":3},
- {"label":"B", "x":5, "y":3},
- {"label":"N", "x":6, "y":3},
- {"label":"M", "x":7, "y":3},
- {"label":",", "x":8, "y":3},
- {"label":".", "x":9, "y":3},
- {"label":"/", "x":10, "y":3},
- {"label":"Shift", "x":11, "y":3},
- {"label":"Up", "x":12, "y":3},
- {"label":"Print Screen", "x":13, "y":3},
- {"label":"Ctrl", "x":0, "y":4},
- {"label":"GUI", "x":1, "y":4},
- {"label":"Alt", "x":2, "y":4},
- {"label":"Fn", "x":3, "y":4},
- {"label":"Fn3 / Space", "x":4, "y":4, "w":2.25},
- {"label":"Space", "x":6.25, "y":4, "w":2.75},
- {"label":"Fn2", "x":9, "y":4},
- {"label":"Alt", "x":10, "y":4},
- {"label":"Left", "x":11, "y":4},
- {"label":"Down", "x":12, "y":4},
- {"label":"Right", "x":13, "y":4}
- ]
- }
- }
-}
diff --git a/keyboards/handwired/maartenwut/keymaps/default/keymap.c b/keyboards/handwired/maartenwut/keymaps/default/keymap.c
deleted file mode 100755
index 54276d4b20..0000000000
--- a/keyboards/handwired/maartenwut/keymaps/default/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define _MA 0
-#define _NU 1
-#define _FL 2
-#define _GA 3
-#define _AR 4
-
-#define LSHIFT OSM(MOD_LSFT)
-#define SPACE LT(_AR, KC_SPC)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_MA] = LAYOUT(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DEL, KC_ENT,
- LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PSCR,
- KC_LCTL, KC_LGUI, KC_LALT, MO(_NU), SPACE, KC_SPC, MO(_FL), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
-[_NU] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_CAPS, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_0, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-[_FL] = LAYOUT(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPLY,
- RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, TG(_GA), _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-[_GA] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______, _______),
-[_AR] = LAYOUT(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
-};
diff --git a/keyboards/handwired/maartenwut/maartenwut.c b/keyboards/handwired/maartenwut/maartenwut.c
deleted file mode 100755
index 6a7c5cee62..0000000000
--- a/keyboards/handwired/maartenwut/maartenwut.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "maartenwut.h"
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- matrix_init_user();
-}
-void matrix_scan_kb(void) {
- // put your looping keyboard code here
- // runs every cycle (a lot)
- matrix_scan_user();
-}; \ No newline at end of file
diff --git a/keyboards/handwired/maartenwut/maartenwut.h b/keyboards/handwired/maartenwut/maartenwut.h
deleted file mode 100755
index cc237f3c00..0000000000
--- a/keyboards/handwired/maartenwut/maartenwut.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef MAARTENWUT_H
-#define MAARTENWUT_H
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-#define LAYOUT( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
- k40, k41, k42, k43, k45, k47, k49, k4a, k4b, k4c, k4d \
-) \
-{ \
- {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
- {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
- {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
- {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
- {k40, k41, k42, k43, XXX, k45, XXX, k47, XXX, k49, k4a, k4b, k4c, k4d} \
-}
-
-#endif \ No newline at end of file
diff --git a/keyboards/handwired/maartenwut/readme.md b/keyboards/handwired/maartenwut/readme.md
deleted file mode 100644
index 0ae7382711..0000000000
--- a/keyboards/handwired/maartenwut/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# maartenwut handwired
-
-Custom handwired keyboard for maartenwut.
-
-Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
-Hardware Supported: Custom handwired
-Hardware Availability:
-
-Make example for this keyboard (after setting up your build environment):
-
- make handwired/maartenwut:default
-
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/handwired/maartenwut/rules.mk b/keyboards/handwired/maartenwut/rules.mk
deleted file mode 100755
index 5f50d6b52a..0000000000
--- a/keyboards/handwired/maartenwut/rules.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-# Teensy halfkay
-# Pro Micro caterina
-# Atmel DFU atmel-dfu
-# LUFA DFU lufa-dfu
-# QMK DFU qmk-dfu
-# ATmega32A bootloadHID
-# ATmega328P USBasp
-BOOTLOADER = atmel-dfu
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE = no # USB Nkey Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI controls
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/handwired/p65rgb/rules.mk b/keyboards/handwired/p65rgb/rules.mk
index 5eeaf976c3..f70d945ca4 100644
--- a/keyboards/handwired/p65rgb/rules.mk
+++ b/keyboards/handwired/p65rgb/rules.mk
@@ -25,7 +25,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-RGB_MATRIX_ENABLE = WS2812 # Enable keyboard RGB backlight functionality with ws2812 driver
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/helix/pico/keymaps/default/readme.md b/keyboards/helix/pico/keymaps/default/readme.md
index 3c097247e5..789097021b 100644
--- a/keyboards/helix/pico/keymaps/default/readme.md
+++ b/keyboards/helix/pico/keymaps/default/readme.md
@@ -116,15 +116,13 @@ build
```
$ make helix/pico:default
$ make helix/pico/back:default # with backlight
-$ make HELIX=no_ani helix/pico/back:default # with backlight without animation
+$ make HELIX=no-ani helix/pico/back:default # with backlight without animation
$ make helix/pico/under:default # with underglow
```
-build (experimental use of split_common)
+build (experimental use of split_common with backlight)
```
$ make helix/pico/sc:default
-$ make helix/pico/sc/back:default
-$ make helix/pico/sc/under:default
```
flash to keyboard
diff --git a/keyboards/helix/pico/local_features.mk b/keyboards/helix/pico/local_features.mk
index a984446868..25dcb8b6d3 100644
--- a/keyboards/helix/pico/local_features.mk
+++ b/keyboards/helix/pico/local_features.mk
@@ -5,6 +5,8 @@
# combinations of standard options) into QMK standard options.
#
+KEYBOARD_LOCAL_FEATURES_MK :=
+
define HELIX_CUSTOMISE_MSG
$(info Helix Spacific Build Options)
$(info - OLED_ENABLE = $(OLED_ENABLE))
@@ -15,42 +17,61 @@ define HELIX_CUSTOMISE_MSG
$(info )
endef
+define HELIX_HELP_MSG
+ $(info Helix keyboard convenient command line option)
+ $(info - make HELIX=<options> helix/pico:<keymap>)
+ $(info - option= oled | back | under | na | no-ani)
+ $(info - ios | sc | split-common | scan | verbose)
+ $(info - ex.)
+ $(info - make HELIX=oled helix/pico:<keymap>)
+ $(info - make HELIX=back helix/pico:<keymap>)
+ $(info - make HELIX=under helix/pico:<keymap>)
+ $(info - make HELIX=back,na helix/pico:<keymap>)
+ $(info - make HELIX=back,ios helix/pico:<keymap>)
+ $(info )
+endef
+
ifneq ($(strip $(HELIX)),)
- ### Helix keyboard keymap: convenient command line option
- ## make HELIX=<options> helix/pico:<keymap>
- ## option= oled | back | under | no_ani | na | ios | verbose
- ## ex.
- ## make HELIX=oled helix/pico:<keymap>
- ## make HELIX=oled,back helix/pico:<keymap>
- ## make HELIX=oled,under helix/pico:<keymap>
- ## make HELIX=oled,back,na helix/pico:<keymap>
- ## make HELIX=oled,back,ios helix/pico:<keymap>
- ##
- ifeq ($(findstring oled,$(HELIX)), oled)
+ COMMA=,
+ helix_option := $(subst $(COMMA), , $(HELIX))
+ ifneq ($(filter help,$(helix_option)),)
+ $(eval $(call HELIX_HELP_MSG))
+ $(error )
+ endif
+ ifneq ($(filter oled,$(helix_option)),)
OLED_ENABLE = yes
endif
- ifeq ($(findstring back,$(HELIX)), back)
+ ifneq ($(filter back,$(helix_option)),)
LED_BACK_ENABLE = yes
- else ifeq ($(findstring under,$(HELIX)), under)
+ else ifneq ($(filter under,$(helix_option)),)
LED_UNDERGLOW_ENABLE = yes
endif
- ifeq ($(findstring na,$(HELIX)), na)
+ ifneq ($(filter na,$(helix_option)),)
LED_ANIMATIONS = no
endif
- ifeq ($(findstring no_ani,$(HELIX)), no_ani)
+ ifneq ($(filter no_ani,$(helix_option)),)
LED_ANIMATIONS = no
endif
- ifeq ($(findstring ios,$(HELIX)), ios)
+ ifneq ($(filter no-ani,$(helix_option)),)
+ LED_ANIMATIONS = no
+ endif
+ ifneq ($(filter ios,$(helix_option)),)
IOS_DEVICE_ENABLE = yes
endif
- ifeq ($(findstring scan,$(HELIX)), scan)
+ ifneq ($(filter sc,$(helix_option)),)
+ SPLIT_KEYBOARD = yes
+ endif
+ ifneq ($(filter split-common,$(helix_option)),)
+ SPLIT_KEYBOARD = yes
+ endif
+ ifneq ($(filter scan,$(helix_option)),)
# use DEBUG_MATRIX_SCAN_RATE
# see docs/newbs_testing_debugging.md
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
CONSOLE_ENABLE = yes
SHOW_VERBOSE_INFO = yes
endif
- ifeq ($(findstring verbose,$(HELIX)), verbose)
+ ifneq ($(filter verbose,$(helix_option)),)
SHOW_VERBOSE_INFO = yes
endif
SHOW_HELIX_OPTIONS = yes
@@ -120,7 +141,8 @@ ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
$(info -- OLED_DRIVER_ENABLE = $(OLED_DRIVER_ENABLE))
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
$(info -- OPT_DEFS = $(OPT_DEFS))
- $(info -- LTO_ENABLE = $(LTO_ENABLE))
+ $(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
+ $(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info )
endif
endif
diff --git a/keyboards/helix/pico/qmk_conf/config.h b/keyboards/helix/pico/qmk_conf/config.h
new file mode 100644
index 0000000000..7653185198
--- /dev/null
+++ b/keyboards/helix/pico/qmk_conf/config.h
@@ -0,0 +1,43 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+// place overrides here
+
+#ifdef AUDIO_ENABLE
+ #define STARTUP_SONG SONG(STARTUP_SOUND)
+ #define AUDIO_CLICKY
+#endif
+
+// If you need more program area, try select and reduce rgblight modes to use.
+
+// Selection of RGBLIGHT MODE to use.
+#if defined(LED_ANIMATIONS)
+ #define RGBLIGHT_EFFECT_BREATHING
+ #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+ #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ #define RGBLIGHT_EFFECT_SNAKE
+ #define RGBLIGHT_EFFECT_KNIGHT
+ #define RGBLIGHT_EFFECT_CHRISTMAS
+ #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+ //#define RGBLIGHT_EFFECT_RGB_TEST
+ //#define RGBLIGHT_EFFECT_ALTERNATING
+#endif
diff --git a/keyboards/helix/pico/qmk_conf/rules.mk b/keyboards/helix/pico/qmk_conf/rules.mk
new file mode 100644
index 0000000000..966e64d618
--- /dev/null
+++ b/keyboards/helix/pico/qmk_conf/rules.mk
@@ -0,0 +1,4 @@
+EXTRAKEY_ENABLE = yes # Audio control and System control
+AUDIO_ENABLE = yes # Audio output on port B5
+
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
diff --git a/keyboards/helix/pico/sc/back/rules.mk b/keyboards/helix/pico/sc/back/rules.mk
deleted file mode 100644
index 066fffb74a..0000000000
--- a/keyboards/helix/pico/sc/back/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-LED_BACK_ENABLE = yes
diff --git a/keyboards/helix/pico/sc/rules.mk b/keyboards/helix/pico/sc/rules.mk
index d38a618090..4ed0672a70 100644
--- a/keyboards/helix/pico/sc/rules.mk
+++ b/keyboards/helix/pico/sc/rules.mk
@@ -1 +1,2 @@
SPLIT_KEYBOARD = yes
+LED_BACK_ENABLE = yes
diff --git a/keyboards/helix/pico/sc/under/rules.mk b/keyboards/helix/pico/sc/under/rules.mk
deleted file mode 100644
index a37aa6fab3..0000000000
--- a/keyboards/helix/pico/sc/under/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-LED_UNDERGLOW_ENABLE = yes
diff --git a/keyboards/helix/rev2/back/oled/rules.mk b/keyboards/helix/rev2/back/oled/rules.mk
deleted file mode 100644
index dd68e9d3b0..0000000000
--- a/keyboards/helix/rev2/back/oled/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-OLED_ENABLE = yes
diff --git a/keyboards/helix/rev2/keymaps/default/readme.md b/keyboards/helix/rev2/keymaps/default/readme.md
index 1237e5d5b6..8614fce53d 100644
--- a/keyboards/helix/rev2/keymaps/default/readme.md
+++ b/keyboards/helix/rev2/keymaps/default/readme.md
@@ -112,7 +112,7 @@ see `qmk_firmware/keyboards/helix/rev2/keymaps/default/rules.mk`
# you can uncomment and edit follows 7 Variables
# jp: 以下ã®7ã¤ã®å¤‰æ•°ã‚’å¿…è¦ã«å¿œã˜ã¦ç·¨é›†ã—ã€ã‚³ãƒ¡ãƒ³ãƒˆã‚¢ã‚¦ãƒˆã‚’ã¯ãšã—ã¾ã™ã€‚
# HELIX_ROWS = 5 # Helix Rows is 4 or 5
-# OLED_ENABLE = no # OLED_ENABLE
+# OLED_ENABLE = yes # OLED_ENABLE
# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
@@ -128,35 +128,25 @@ $ cd qmk_firmware
build
```
-$ make helix:default
-$ make helix/rev2/back:default # with backlight
-$ make HELIX=no_ani helix/rev2/back:default # with backlight without animation
-$ make helix/rev2/under:default # with underglow
-$ make helix/rev2/oled:default # with oled
-$ make helix/rev2/oled/back:default # with oled and backlight
-$ make helix/rev2/oled/under:default # with oled and underglow
+$ make helix:default # with oled
+$ make helix/rev2/back:default # with oled and backlight
+$ make HELIX=no-ani helix/rev2/back:default # with oled and backlight without animation
+$ make helix/rev2/under:default # with oled and underglow
+$ make HELIX=no-oled helix:default # without oled
```
-build (experimental use of split_common)
+build (experimental use of split_common with backlight and oled)
```
$ make helix/rev2/sc:default
-$ make helix/rev2/sc/back:default
-$ make helix/rev2/sc/under:default
-$ make helix/rev2/sc/oled:default
-$ make helix/rev2/sc/oledback:default
-$ make helix/rev2/sc/oledunder:default
```
flash to keyboard
```
-$ make helix:default:flash
-$ make helix/rev2/back:default:flash # with backlight
-$ make HELIX=no_ani helix/rev2/back:default:flash # with backlight without animation
-$ make helix/rev2/under:default:flash # with underglow
-$ make helix/rev2/oled:default:flash # with oled
-$ make helix/rev2/oled/back:default:flash # with oled and backlight
-$ make helix/rev2/oled/under:default:flash # with oled and underglow
-
+$ make helix:default:flash # with oled
+$ make helix/rev2/back:default:flash # with oled and backlight
+$ make HELIX=no-ani helix/rev2/back:default:flash # with oled and backlight without animation
+$ make helix/rev2/under:default:flash # with oled and underglow
+$ make HELIX=no-oled helix:default:flash # without oled
```
## Link
diff --git a/keyboards/helix/rev2/keymaps/default/readme_jp.md b/keyboards/helix/rev2/keymaps/default/readme_jp.md
index 2dfab351b0..5f0295f8f3 100644
--- a/keyboards/helix/rev2/keymaps/default/readme_jp.md
+++ b/keyboards/helix/rev2/keymaps/default/readme_jp.md
@@ -30,7 +30,7 @@ RGB ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆã¾ãŸã¯ã€RGB Underglow ã‚’ã¤ã‘ãŸå ´åˆã¯ã€
# you can uncomment and edit follows 7 Variables
# jp: 以下ã®7ã¤ã®å¤‰æ•°ã‚’å¿…è¦ã«å¿œã˜ã¦ç·¨é›†ã—ã€ã‚³ãƒ¡ãƒ³ãƒˆã‚¢ã‚¦ãƒˆã‚’ã¯ãšã—ã¾ã™ã€‚
# HELIX_ROWS = 5 # Helix Rows is 4 or 5
-# OLED_ENABLE = no # OLED_ENABLE
+# OLED_ENABLE = yes # OLED_ENABLE
# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
@@ -61,11 +61,12 @@ rules.mk ã®ä¸‹è¨˜ã®éƒ¨åˆ†ã‚’編集ã—㦠no ã‚’ yes ã«å¤‰æ›´ã—ã¦ãã ã•ã
LED_UNDERGLOW_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.)
```
-## OLEDを有効ã«ã™ã‚‹
+## OLEDを無効ã«ã™ã‚‹
-rules.mk ã®ä¸‹è¨˜ã®éƒ¨åˆ†ã‚’編集ã—㦠no ã‚’ yes ã«å¤‰æ›´ã—ã¦ãã ã•ã„。
+OLED ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§æœ‰åŠ¹ã«ãªã£ã¦ã„ã¾ã™ã€‚
+無効ã«ã—ãŸã„ã¨ã㯠rules.mk ã®ä¸‹è¨˜ã®éƒ¨åˆ†ã‚’編集ã—㦠yes ã‚’ no ã«å¤‰æ›´ã—ã¦ãã ã•ã„。
```
-OLED_ENABLE = yes # OLED_ENABLE
+OLED_ENABLE = no # OLED_ENABLE
```
## iPad/iPhoneサãƒãƒ¼ãƒˆã‚’有効ã«ã™ã‚‹ã€‚
@@ -104,9 +105,9 @@ $ make helix:default:clean
上記ã®ã€rules.mk ã«ã‚ˆã‚‹ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºé …ç›®ã®ä¸€éƒ¨ã¯ä¸‹è¨˜ã®ã‚ˆã†ã«ã‚³ãƒžãƒ³ãƒ‰ä¸Šã§ç›´æŽ¥æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚
-OLED を有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸ã®æ›¸ã込む。
+OLED を無効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸ã®æ›¸ã込む。
```
-$ make helix/rev2/oled:default:flash
+$ make HELIX=no-oled helix/rev2:default:flash
```
RGB ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆã‚’有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ã込む。
@@ -119,14 +120,14 @@ RGB Underglow を有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ãè¾¼
$ make helix/rev2/under:default:flash
```
-OLED ã¨RGB ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆã‚’有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ã込む。
+OLED を無効ã«ã—ã¦ã€RGB ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆã‚’有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ã込む。
```
-$ make helix/rev2/oled/back:default:flash
+$ make HELIX=no-oled helix/rev2/back:default:flash
```
-OLED ã¨RGB Underglowを有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ã込む。
+OLED を無効ã«ã—ã¦ã€RGB Underglowを有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ã込む。
```
-$ make helix/rev2/oled/under:default:flash
+$ make HELIX=no-oled helix/rev2/under:default:flash
```
## リンク
diff --git a/keyboards/helix/rev2/keymaps/led_test/rules.mk b/keyboards/helix/rev2/keymaps/led_test/rules.mk
index 013ef1482d..cc6d568111 100644
--- a/keyboards/helix/rev2/keymaps/led_test/rules.mk
+++ b/keyboards/helix/rev2/keymaps/led_test/rules.mk
@@ -14,8 +14,8 @@ LTO_ENABLE = no # if firmware size over limit, try this option
OLED_ENABLE = yes # OLED_ENABLE
# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.)
-# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
-LED_ANIMATIONS = yes # LED animations
+LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
+LED_ANIMATIONS = yes # LED animations
# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
SRC += led_test_init.c
diff --git a/keyboards/helix/rev2/keymaps/xulkal/rules.mk b/keyboards/helix/rev2/keymaps/xulkal/rules.mk
index 03800f9bb9..7fac4df7e1 100644
--- a/keyboards/helix/rev2/keymaps/xulkal/rules.mk
+++ b/keyboards/helix/rev2/keymaps/xulkal/rules.mk
@@ -11,3 +11,6 @@ OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
OPT_DEFS += -DOLED_90ROTATION
SPLIT_KEYBOARD = yes
+
+# Explicitly disable helix standard post-processing
+KEYBOARD_LOCAL_FEATURES_MK :=
diff --git a/keyboards/helix/rev2/local_features.mk b/keyboards/helix/rev2/local_features.mk
index 3f8a7216f9..1d0b55cbf1 100644
--- a/keyboards/helix/rev2/local_features.mk
+++ b/keyboards/helix/rev2/local_features.mk
@@ -5,6 +5,8 @@
# combinations of standard options) into QMK standard options.
#
+KEYBOARD_LOCAL_FEATURES_MK :=
+
define HELIX_CUSTOMISE_MSG
$(info Helix Spacific Build Options)
$(info - OLED_ENABLE = $(OLED_ENABLE))
@@ -15,42 +17,79 @@ define HELIX_CUSTOMISE_MSG
$(info )
endef
+define HELIX_HELP_MSG
+ $(info Helix keyboard convenient command line option)
+ $(info - make HELIX=<options> helix:<keymap>)
+ $(info - option= oled | no-oled | back | no-back | under | na | no-ani)
+ $(info - ios | sc | split-common | scan | verbose)
+ $(info - ex.)
+ $(info - make HELIX=no-oled helix:<keymap>)
+ $(info - make HELIX=oled,no-back helix:<keymap>)
+ $(info - make HELIX=oled,under helix:<keymap>)
+ $(info - make HELIX=oled,back,na helix:<keymap>)
+ $(info - make HELIX=oled,back,ios helix:<keymap>)
+ $(info )
+endef
+
ifneq ($(strip $(HELIX)),)
- ### Helix keyboard keymap: convenient command line option
- ## make HELIX=<options> helix:<keymap>
- ## option= oled | back | under | na | ios
- ## ex.
- ## make HELIX=oled helix:<keymap>
- ## make HELIX=oled,back helix:<keymap>
- ## make HELIX=oled,under helix:<keymap>
- ## make HELIX=oled,back,na helix:<keymap>
- ## make HELIX=oled,back,ios helix:<keymap>
- ##
- ifeq ($(findstring oled,$(HELIX)), oled)
+ COMMA=,
+ helix_option := $(subst $(COMMA), , $(HELIX))
+ ifneq ($(filter help,$(helix_option)),)
+ $(eval $(call HELIX_HELP_MSG))
+ $(error )
+ endif
+ ifneq ($(filter nooled,$(helix_option)),)
+ OLED_ENABLE = no
+ else ifneq ($(filter no-oled,$(helix_option)),)
+ OLED_ENABLE = no
+ else ifneq ($(filter oled,$(helix_option)),)
OLED_ENABLE = yes
endif
- ifeq ($(findstring back,$(HELIX)), back)
+ ifneq ($(filter noback,$(helix_option)),)
+ LED_BACK_ENABLE = no
+ LED_UNDERGLOW_ENABLE = no
+ else ifneq ($(filter no-back,$(helix_option)),)
+ LED_BACK_ENABLE = no
+ LED_UNDERGLOW_ENABLE = no
+ else ifneq ($(filter nounder,$(helix_option)),)
+ LED_BACK_ENABLE = no
+ LED_UNDERGLOW_ENABLE = no
+ else ifneq ($(filter no-under,$(helix_option)),)
+ LED_BACK_ENABLE = no
+ LED_UNDERGLOW_ENABLE = no
+ else ifneq ($(filter back,$(helix_option)),)
LED_BACK_ENABLE = yes
- else ifeq ($(findstring under,$(HELIX)), under)
+ LED_UNDERGLOW_ENABLE = no
+ else ifneq ($(filter under,$(helix_option)),)
+ LED_BACK_ENABLE = no
LED_UNDERGLOW_ENABLE = yes
endif
- ifeq ($(findstring na,$(HELIX)), na)
+ ifneq ($(filter na,$(helix_option)),)
LED_ANIMATIONS = no
endif
- ifeq ($(findstring no_ani,$(HELIX)), no_ani)
+ ifneq ($(filter no_ani,$(helix_option)),)
LED_ANIMATIONS = no
endif
- ifeq ($(findstring ios,$(HELIX)), ios)
+ ifneq ($(filter no-ani,$(helix_option)),)
+ LED_ANIMATIONS = no
+ endif
+ ifneq ($(filter ios,$(helix_option)),)
IOS_DEVICE_ENABLE = yes
endif
- ifeq ($(findstring scan,$(HELIX)), scan)
+ ifneq ($(filter sc,$(helix_option)),)
+ SPLIT_KEYBOARD = yes
+ endif
+ ifneq ($(filter split-common,$(helix_option)),)
+ SPLIT_KEYBOARD = yes
+ endif
+ ifneq ($(filter scan,$(helix_option)),)
# use DEBUG_MATRIX_SCAN_RATE
# see docs/newbs_testing_debugging.md
OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
CONSOLE_ENABLE = yes
SHOW_VERBOSE_INFO = yes
endif
- ifeq ($(findstring verbose,$(HELIX)), verbose)
+ ifeq ($(filter verbose,$(helix_option)), verbose)
SHOW_VERBOSE_INFO = yes
endif
SHOW_HELIX_OPTIONS = yes
@@ -119,7 +158,8 @@ ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
$(info -- OLED_DRIVER_ENABLE = $(OLED_DRIVER_ENABLE))
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
$(info -- OPT_DEFS = $(OPT_DEFS))
- $(info -- LTO_ENABLE = $(LTO_ENABLE))
+ $(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
+ $(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info )
endif
endif
diff --git a/keyboards/helix/rev2/oled/back/rules.mk b/keyboards/helix/rev2/oled/back/rules.mk
deleted file mode 100644
index 066fffb74a..0000000000
--- a/keyboards/helix/rev2/oled/back/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-LED_BACK_ENABLE = yes
diff --git a/keyboards/helix/rev2/oled/rules.mk b/keyboards/helix/rev2/oled/rules.mk
deleted file mode 100644
index dd68e9d3b0..0000000000
--- a/keyboards/helix/rev2/oled/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-OLED_ENABLE = yes
diff --git a/keyboards/helix/rev2/oled/under/rules.mk b/keyboards/helix/rev2/oled/under/rules.mk
deleted file mode 100644
index a37aa6fab3..0000000000
--- a/keyboards/helix/rev2/oled/under/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-LED_UNDERGLOW_ENABLE = yes
diff --git a/keyboards/helix/rev2/qmk_conf/config.h b/keyboards/helix/rev2/qmk_conf/config.h
new file mode 100644
index 0000000000..b8c1041cdc
--- /dev/null
+++ b/keyboards/helix/rev2/qmk_conf/config.h
@@ -0,0 +1,38 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+// place overrides here
+
+// If you need more program area, try select and reduce rgblight modes to use.
+
+// Selection of RGBLIGHT MODE to use.
+#if defined(LED_ANIMATIONS)
+ #define RGBLIGHT_EFFECT_BREATHING
+ #define RGBLIGHT_EFFECT_RAINBOW_MOOD
+ #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+ #define RGBLIGHT_EFFECT_SNAKE
+ #define RGBLIGHT_EFFECT_KNIGHT
+ #define RGBLIGHT_EFFECT_CHRISTMAS
+ #define RGBLIGHT_EFFECT_STATIC_GRADIENT
+ //#define RGBLIGHT_EFFECT_RGB_TEST
+ //#define RGBLIGHT_EFFECT_ALTERNATING
+#endif
diff --git a/keyboards/helix/rev2/qmk_conf/rules.mk b/keyboards/helix/rev2/qmk_conf/rules.mk
new file mode 100644
index 0000000000..67caab1ce6
--- /dev/null
+++ b/keyboards/helix/rev2/qmk_conf/rules.mk
@@ -0,0 +1,4 @@
+LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.)
+LED_ANIMATIONS = yes # LED animations
+
+include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
diff --git a/keyboards/helix/rev2/rules.mk b/keyboards/helix/rev2/rules.mk
index db584c0b23..d5d69c979c 100644
--- a/keyboards/helix/rev2/rules.mk
+++ b/keyboards/helix/rev2/rules.mk
@@ -2,7 +2,7 @@ KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.
# Helix Spacific Build Options default values
HELIX_ROWS = 5 # Helix Rows is 4 or 5
-OLED_ENABLE = no # OLED_ENABLE
+OLED_ENABLE = yes # OLED_ENABLE
LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
diff --git a/keyboards/helix/rev2/sc/back/rules.mk b/keyboards/helix/rev2/sc/back/rules.mk
deleted file mode 100644
index 066fffb74a..0000000000
--- a/keyboards/helix/rev2/sc/back/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-LED_BACK_ENABLE = yes
diff --git a/keyboards/helix/rev2/sc/oled/rules.mk b/keyboards/helix/rev2/sc/oled/rules.mk
deleted file mode 100644
index dd68e9d3b0..0000000000
--- a/keyboards/helix/rev2/sc/oled/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-OLED_ENABLE = yes
diff --git a/keyboards/helix/rev2/sc/oledback/rules.mk b/keyboards/helix/rev2/sc/oledback/rules.mk
deleted file mode 100644
index 645984f865..0000000000
--- a/keyboards/helix/rev2/sc/oledback/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-OLED_ENABLE = yes
-LED_BACK_ENABLE = yes
diff --git a/keyboards/helix/rev2/sc/oledunder/rules.mk b/keyboards/helix/rev2/sc/oledunder/rules.mk
deleted file mode 100644
index e415cbd492..0000000000
--- a/keyboards/helix/rev2/sc/oledunder/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-OLED_ENABLE = yes
-LED_UNDERGLOW_ENABLE = yes
diff --git a/keyboards/helix/rev2/sc/rules.mk b/keyboards/helix/rev2/sc/rules.mk
index d38a618090..4ed0672a70 100644
--- a/keyboards/helix/rev2/sc/rules.mk
+++ b/keyboards/helix/rev2/sc/rules.mk
@@ -1 +1,2 @@
SPLIT_KEYBOARD = yes
+LED_BACK_ENABLE = yes
diff --git a/keyboards/helix/rev2/sc/under/rules.mk b/keyboards/helix/rev2/sc/under/rules.mk
deleted file mode 100644
index a37aa6fab3..0000000000
--- a/keyboards/helix/rev2/sc/under/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-LED_UNDERGLOW_ENABLE = yes
diff --git a/keyboards/helix/rev2/under/oled/rules.mk b/keyboards/helix/rev2/under/oled/rules.mk
deleted file mode 100644
index dd68e9d3b0..0000000000
--- a/keyboards/helix/rev2/under/oled/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-OLED_ENABLE = yes
diff --git a/keyboards/helix/rev3_4rows/rules.mk b/keyboards/helix/rev3_4rows/rules.mk
index 7168f174fe..a5916c114d 100644
--- a/keyboards/helix/rev3_4rows/rules.mk
+++ b/keyboards/helix/rev3_4rows/rules.mk
@@ -1,7 +1,8 @@
EXTRAKEY_ENABLE = yes # Audio control and System control
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
SPLIT_KEYBOARD = yes
-#RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
OLED_DRIVER_ENABLE = yes
ENCODER_ENABLE = yes
DIP_SWITCH_ENABLE = yes
diff --git a/keyboards/helix/rev3_5rows/rules.mk b/keyboards/helix/rev3_5rows/rules.mk
index 7168f174fe..a5916c114d 100644
--- a/keyboards/helix/rev3_5rows/rules.mk
+++ b/keyboards/helix/rev3_5rows/rules.mk
@@ -1,7 +1,8 @@
EXTRAKEY_ENABLE = yes # Audio control and System control
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
SPLIT_KEYBOARD = yes
-#RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
OLED_DRIVER_ENABLE = yes
ENCODER_ENABLE = yes
DIP_SWITCH_ENABLE = yes
diff --git a/keyboards/hs60/v1/rules.mk b/keyboards/hs60/v1/rules.mk
index 81c86813ca..d344d256a2 100644
--- a/keyboards/hs60/v1/rules.mk
+++ b/keyboards/hs60/v1/rules.mk
@@ -35,6 +35,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3731
RAW_ENABLE = yes
LAYOUTS = 60_ansi 60_iso
diff --git a/keyboards/id80/rules.mk b/keyboards/id80/rules.mk
index 81d15e5ea6..b376b26af8 100644
--- a/keyboards/id80/rules.mk
+++ b/keyboards/id80/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# partially generated by KBFirmware JSON to QMK Parser
# https://noroadsleft.github.io/kbf_qmk_converter/
diff --git a/keyboards/idobo/config.h b/keyboards/idobo/config.h
index d764512dc7..bd9f7da1e9 100644
--- a/keyboards/idobo/config.h
+++ b/keyboards/idobo/config.h
@@ -189,34 +189,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/idobo/rules.mk b/keyboards/idobo/rules.mk
index 62fe37fb3b..b52603ea4f 100644
--- a/keyboards/idobo/rules.mk
+++ b/keyboards/idobo/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
EXTRAFLAGS += -flto # Use link time optimization
-LAYOUTS = ortho_5x15
+LAYOUTS = ortho_5x15
diff --git a/keyboards/illuminati/is0/config.h b/keyboards/illuminati/is0/config.h
index e35b1500d3..46aba6a896 100644
--- a/keyboards/illuminati/is0/config.h
+++ b/keyboards/illuminati/is0/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/illuminati/is0/rules.mk b/keyboards/illuminati/is0/rules.mk
index 9c19f7d215..85cec5e921 100644
--- a/keyboards/illuminati/is0/rules.mk
+++ b/keyboards/illuminati/is0/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/inett_studio/sqx/hotswap/rules.mk b/keyboards/inett_studio/sqx/hotswap/rules.mk
index 80968787d5..47793919c7 100644
--- a/keyboards/inett_studio/sqx/hotswap/rules.mk
+++ b/keyboards/inett_studio/sqx/hotswap/rules.mk
@@ -18,7 +18,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-RGB_MATRIX_ENABLE = yes # Use RGB per key light
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3731
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/inett_studio/sqx/universal/rules.mk b/keyboards/inett_studio/sqx/universal/rules.mk
index cf3a64ba9f..c9965b0684 100644
--- a/keyboards/inett_studio/sqx/universal/rules.mk
+++ b/keyboards/inett_studio/sqx/universal/rules.mk
@@ -18,7 +18,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-RGB_MATRIX_ENABLE = yes # Use RGB per key light
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3731
LTO_ENABLE = yes # Reducing firmware size
diff --git a/keyboards/jae/j01/config.h b/keyboards/jae/j01/config.h
index 9c05a98766..3d5ccee295 100644
--- a/keyboards/jae/j01/config.h
+++ b/keyboards/jae/j01/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2019 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VENDOR_ID 0x4705
#define PRODUCT_ID 0x0143
#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
+#define MANUFACTURER Evyd13
#define PRODUCT J-01
#define DESCRIPTION A custom 65%ish keyboard
@@ -191,34 +191,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 2
diff --git a/keyboards/jae/j01/j01.c b/keyboards/jae/j01/j01.c
index a72279b35c..351ddc4955 100644
--- a/keyboards/jae/j01/j01.c
+++ b/keyboards/jae/j01/j01.c
@@ -1,4 +1,4 @@
-/* Copyright Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/jae/j01/j01.h b/keyboards/jae/j01/j01.h
index b5636c384c..3d35f185c5 100644
--- a/keyboards/jae/j01/j01.h
+++ b/keyboards/jae/j01/j01.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/jae/j01/keymaps/default/keymap.c b/keyboards/jae/j01/keymaps/default/keymap.c
index edb195b271..53fba7a0f5 100644
--- a/keyboards/jae/j01/keymaps/default/keymap.c
+++ b/keyboards/jae/j01/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/jae/j01/readme.md b/keyboards/jae/j01/readme.md
index 8ed94f04f4..8801da6564 100644
--- a/keyboards/jae/j01/readme.md
+++ b/keyboards/jae/j01/readme.md
@@ -2,7 +2,7 @@
A 65% with the arrow keys and right most column exploded away, with macro keys on the left hand side. Only 15 manufactured.
-* Keyboard Maintainer: [Maartenwut](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: J-01 PCB
* Hardware Availability: Private Group Buy and [Charity Raffle](https://novelkeys.xyz/collections/frontpage/products/j-01-raffle-ticket)
diff --git a/keyboards/jae/j01/rules.mk b/keyboards/jae/j01/rules.mk
index b45d822c0f..2b3fd31130 100644
--- a/keyboards/jae/j01/rules.mk
+++ b/keyboards/jae/j01/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/jisplit89/rules.mk b/keyboards/jisplit89/rules.mk
index 9c714e88f6..3c602ad4a5 100644
--- a/keyboards/jisplit89/rules.mk
+++ b/keyboards/jisplit89/rules.mk
@@ -22,7 +22,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
UNICODE_ENABLE = no # Unicode
SPLIT_KEYBOARD = yes
diff --git a/keyboards/jj40/keymaps/stevexyz/rules.mk b/keyboards/jj40/keymaps/stevexyz/rules.mk
index 1e4d0dedf7..289ed40e7b 100644
--- a/keyboards/jj40/keymaps/stevexyz/rules.mk
+++ b/keyboards/jj40/keymaps/stevexyz/rules.mk
@@ -13,7 +13,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
TAP_DANCE_ENABLE = yes
diff --git a/keyboards/jj40/rules.mk b/keyboards/jj40/rules.mk
index 767ebb93a3..0a912cfadc 100644
--- a/keyboards/jj40/rules.mk
+++ b/keyboards/jj40/rules.mk
@@ -31,6 +31,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x12 planck_mit
diff --git a/keyboards/jj4x4/rules.mk b/keyboards/jj4x4/rules.mk
index 5ff5c37692..7b237619f8 100644
--- a/keyboards/jj4x4/rules.mk
+++ b/keyboards/jj4x4/rules.mk
@@ -31,6 +31,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x4
diff --git a/keyboards/jnao/rules.mk b/keyboards/jnao/rules.mk
index 0dcd21146c..ac8bb366e3 100644
--- a/keyboards/jnao/rules.mk
+++ b/keyboards/jnao/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_5x12 ortho_4x12
LAYOUTS_HAS_RGB = no
diff --git a/keyboards/just60/rules.mk b/keyboards/just60/rules.mk
index 3aaf101543..7e96c8d7a0 100644
--- a/keyboards/just60/rules.mk
+++ b/keyboards/just60/rules.mk
@@ -32,4 +32,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/k_type/keymaps/rgb/rules.mk b/keyboards/k_type/keymaps/rgb/rules.mk
index a4206a1ad7..aad92997d0 100644
--- a/keyboards/k_type/keymaps/rgb/rules.mk
+++ b/keyboards/k_type/keymaps/rgb/rules.mk
@@ -1 +1 @@
-RGB_MATRIX_ENABLE = IS31FL3733
+RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/k_type/rules.mk b/keyboards/k_type/rules.mk
index 5d2991c8c0..18b6e3c8df 100644
--- a/keyboards/k_type/rules.mk
+++ b/keyboards/k_type/rules.mk
@@ -26,6 +26,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = IS31FL3733
LAYOUTS = tkl_ansi
diff --git a/keyboards/kagamidget/config.h b/keyboards/kagamidget/config.h
index c887302158..32e045fa00 100644
--- a/keyboards/kagamidget/config.h
+++ b/keyboards/kagamidget/config.h
@@ -184,34 +184,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kagamidget/rules.mk b/keyboards/kagamidget/rules.mk
index a803d1f799..0037b3d16c 100644
--- a/keyboards/kagamidget/rules.mk
+++ b/keyboards/kagamidget/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
RGBLIGHT_ENABLE = yes
diff --git a/keyboards/kbdclack/kaishi65/config.h b/keyboards/kbdclack/kaishi65/config.h
index 3ea67aae0a..ff8eb57ea3 100644
--- a/keyboards/kbdclack/kaishi65/config.h
+++ b/keyboards/kbdclack/kaishi65/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kbdfans/kbd19x/config.h b/keyboards/kbdfans/kbd19x/config.h
index c0cea36ffb..edaf51215e 100644
--- a/keyboards/kbdfans/kbd19x/config.h
+++ b/keyboards/kbdfans/kbd19x/config.h
@@ -194,30 +194,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
diff --git a/keyboards/kbdfans/kbd19x/rules.mk b/keyboards/kbdfans/kbd19x/rules.mk
index 1c76790f35..39c3a62192 100644
--- a/keyboards/kbdfans/kbd19x/rules.mk
+++ b/keyboards/kbdfans/kbd19x/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/kbdfans/kbd4x/config.h b/keyboards/kbdfans/kbd4x/config.h
index 6928ea8ff9..e7f570c69b 100644
--- a/keyboards/kbdfans/kbd4x/config.h
+++ b/keyboards/kbdfans/kbd4x/config.h
@@ -190,30 +190,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
diff --git a/keyboards/kbdfans/kbd4x/rules.mk b/keyboards/kbdfans/kbd4x/rules.mk
index 7c7b490f6a..1e20969241 100644
--- a/keyboards/kbdfans/kbd4x/rules.mk
+++ b/keyboards/kbdfans/kbd4x/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x12 planck_mit
diff --git a/keyboards/kbdfans/kbd66/keymaps/maartenwut/keymap.c b/keyboards/kbdfans/kbd66/keymaps/maartenwut/keymap.c
deleted file mode 100755
index daeb934778..0000000000
--- a/keyboards/kbdfans/kbd66/keymaps/maartenwut/keymap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define _MA 0
-#define _GA 1
-#define _FL 2
-#define _AR 3
-
-#define TRNS KC_TRNS
-#define ______ KC_NO
-#define trigger_time 400
-
-#define LSHIFT OSM(MOD_LSFT)
-#define SPACE LT(_AR, KC_SPC)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// Main Layer
-[_MA] = LAYOUT_all(
- KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, ______, KC_BSPC, KC_MPLY,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- LSHIFT, TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TRNS, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, SPACE, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
-
-//Function Layer
-[_FL] = LAYOUT_all(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, RESET, KC_PSCR,
- TRNS, ______, ______, ______, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______,
- TRNS, ______, ______, ______, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, TRNS, KC_PGUP,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______, KC_PGDN, ______),
-
-//Arrow keys layer (space bar)
-[_AR] = LAYOUT_all(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
-
-//Game layer (fn + g)
-[_GA] = LAYOUT_all(
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, KC_SPC, KC_SPC, TRNS, TRNS, MO(_FL), TRNS, TRNS, TRNS),
-};
-
-void matrix_init_user() {
- //Set led port to output
- DDRB |= (1<<2);
-}
-
-void led_set_user(uint8_t usb_led) {
- if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
- // Turn capslock on
- PORTB &= ~(1<<2);
- } else {
- // Turn capslock off
- PORTB |= (1<<2);
- }
-}
diff --git a/keyboards/kbdfans/kbd66/keymaps/maartenwut/readme.md b/keyboards/kbdfans/kbd66/keymaps/maartenwut/readme.md
deleted file mode 100755
index 24be72c014..0000000000
--- a/keyboards/kbdfans/kbd66/keymaps/maartenwut/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Maartenwut's KBD66 layout
-
-This is Maartenwut's layout, which is really similar to Maartenwut's Tada68 layout. \ No newline at end of file
diff --git a/keyboards/kbdfans/kbd67/hotswap/config.h b/keyboards/kbdfans/kbd67/hotswap/config.h
index 589d76da36..5552231383 100644
--- a/keyboards/kbdfans/kbd67/hotswap/config.h
+++ b/keyboards/kbdfans/kbd67/hotswap/config.h
@@ -209,34 +209,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kbdfans/kbd67/hotswap/rules.mk b/keyboards/kbdfans/kbd67/hotswap/rules.mk
index 7739b69c0e..921458df39 100644
--- a/keyboards/kbdfans/kbd67/hotswap/rules.mk
+++ b/keyboards/kbdfans/kbd67/hotswap/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 65_ansi_blocker_split_bs
diff --git a/keyboards/kbdfans/kbd67/mkii_soldered/rules.mk b/keyboards/kbdfans/kbd67/mkii_soldered/rules.mk
index 9fa8218440..7f3e239ad5 100644
--- a/keyboards/kbdfans/kbd67/mkii_soldered/rules.mk
+++ b/keyboards/kbdfans/kbd67/mkii_soldered/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
-LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs 65_iso_blocker 65_iso_blocker_split_bs \ No newline at end of file
+LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs 65_iso_blocker 65_iso_blocker_split_bs
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb/v1/rules.mk
index ea3746069f..4e9bcf21a7 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v1/rules.mk
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/rules.mk
@@ -9,6 +9,7 @@ CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # USB Nkey Rollover
AUDIO_ENABLE = no
-RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3731
LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb/v2/rules.mk
index 65ee5ae3ec..02fadb469a 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v2/rules.mk
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/rules.mk
@@ -30,6 +30,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3731
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/kbdfans/kbd67/rev1/config.h b/keyboards/kbdfans/kbd67/rev1/config.h
index a713143a4e..b2fffff2ee 100644
--- a/keyboards/kbdfans/kbd67/rev1/config.h
+++ b/keyboards/kbdfans/kbd67/rev1/config.h
@@ -206,34 +206,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kbdfans/kbd67/rev1/rules.mk b/keyboards/kbdfans/kbd67/rev1/rules.mk
index 8e96199b3d..5ba40c0e79 100644
--- a/keyboards/kbdfans/kbd67/rev1/rules.mk
+++ b/keyboards/kbdfans/kbd67/rev1/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 65_ansi
diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/rules.mk b/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/rules.mk
index 277af2b17b..a46023d862 100644
--- a/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/rules.mk
+++ b/keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/rules.mk
@@ -14,7 +14,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend \ No newline at end of file
diff --git a/keyboards/kbdfans/kbd67/rev2/rules.mk b/keyboards/kbdfans/kbd67/rev2/rules.mk
index de55438dd8..bc9b38283a 100644
--- a/keyboards/kbdfans/kbd67/rev2/rules.mk
+++ b/keyboards/kbdfans/kbd67/rev2/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 65_ansi 65_iso 65_ansi_blocker 65_ansi_blocker_split_bs
diff --git a/keyboards/kbdfans/kbd6x/config.h b/keyboards/kbdfans/kbd6x/config.h
index 03c4aaaea4..8d3d45626a 100644
--- a/keyboards/kbdfans/kbd6x/config.h
+++ b/keyboards/kbdfans/kbd6x/config.h
@@ -193,30 +193,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
diff --git a/keyboards/kbdfans/kbd6x/keymaps/othi/rules.mk b/keyboards/kbdfans/kbd6x/keymaps/othi/rules.mk
index 9cda4109dd..20d0ca2083 100644
--- a/keyboards/kbdfans/kbd6x/keymaps/othi/rules.mk
+++ b/keyboards/kbdfans/kbd6x/keymaps/othi/rules.mk
@@ -14,6 +14,5 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
TAP_DANCE_ENABLE=yes
diff --git a/keyboards/kbdfans/kbd6x/rules.mk b/keyboards/kbdfans/kbd6x/rules.mk
index ca46832c1b..fae8f1424e 100644
--- a/keyboards/kbdfans/kbd6x/rules.mk
+++ b/keyboards/kbdfans/kbd6x/rules.mk
@@ -30,4 +30,3 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/kbdfans/kbd8x_mk2/config.h b/keyboards/kbdfans/kbd8x_mk2/config.h
index 373646a8e0..9585e230e8 100644
--- a/keyboards/kbdfans/kbd8x_mk2/config.h
+++ b/keyboards/kbdfans/kbd8x_mk2/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kbdfans/kbd8x_mk2/rules.mk b/keyboards/kbdfans/kbd8x_mk2/rules.mk
index 97261becd7..c5f1e2866b 100644
--- a/keyboards/kbdfans/kbd8x_mk2/rules.mk
+++ b/keyboards/kbdfans/kbd8x_mk2/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = tkl_ansi tkl_iso
diff --git a/keyboards/kbdfans/kbdmini/rules.mk b/keyboards/kbdfans/kbdmini/rules.mk
index 28178d6584..0fd579c400 100644
--- a/keyboards/kbdfans/kbdmini/rules.mk
+++ b/keyboards/kbdfans/kbdmini/rules.mk
@@ -29,5 +29,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3733
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
diff --git a/keyboards/kbdfans/kbdpad_mk2/config.h b/keyboards/kbdfans/kbdpad_mk2/config.h
index 991475c108..b3de693d94 100644
--- a/keyboards/kbdfans/kbdpad_mk2/config.h
+++ b/keyboards/kbdfans/kbdpad_mk2/config.h
@@ -217,34 +217,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kbdfans/kbdpad_mk2/rules.mk b/keyboards/kbdfans/kbdpad_mk2/rules.mk
index 0b86b59049..c53ca99eec 100644
--- a/keyboards/kbdfans/kbdpad_mk2/rules.mk
+++ b/keyboards/kbdfans/kbdpad_mk2/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_6x4
diff --git a/keyboards/kbdfans/maja/rules.mk b/keyboards/kbdfans/maja/rules.mk
index 2b097c3d47..47fe6a92fd 100755
--- a/keyboards/kbdfans/maja/rules.mk
+++ b/keyboards/kbdfans/maja/rules.mk
@@ -30,4 +30,5 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3731
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
diff --git a/keyboards/keebio/bdn9/rev1/rules.mk b/keyboards/keebio/bdn9/rev1/rules.mk
index 176175ca2b..f2a0fa02cd 100644
--- a/keyboards/keebio/bdn9/rev1/rules.mk
+++ b/keyboards/keebio/bdn9/rev1/rules.mk
@@ -30,5 +30,4 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/keebio/bdn9/rev2/rules.mk b/keyboards/keebio/bdn9/rev2/rules.mk
index 5e5fa2ff91..ab70fdf768 100644
--- a/keyboards/keebio/bdn9/rev2/rules.mk
+++ b/keyboards/keebio/bdn9/rev2/rules.mk
@@ -19,9 +19,9 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/keebio/choconum/config.h b/keyboards/keebio/choconum/config.h
index d3a0da168b..42a1613594 100644
--- a/keyboards/keebio/choconum/config.h
+++ b/keyboards/keebio/choconum/config.h
@@ -173,34 +173,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keebio/choconum/rules.mk b/keyboards/keebio/choconum/rules.mk
index 9e754e09a9..e7df89bf32 100644
--- a/keyboards/keebio/choconum/rules.mk
+++ b/keyboards/keebio/choconum/rules.mk
@@ -19,7 +19,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_5x4 numpad_5x4
diff --git a/keyboards/keebio/ergodicity/config.h b/keyboards/keebio/ergodicity/config.h
index a743816276..18a3c6d737 100644
--- a/keyboards/keebio/ergodicity/config.h
+++ b/keyboards/keebio/ergodicity/config.h
@@ -200,34 +200,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keebio/ergodicity/rules.mk b/keyboards/keebio/ergodicity/rules.mk
index 3d318fc7b8..4a7ff60cbc 100644
--- a/keyboards/keebio/ergodicity/rules.mk
+++ b/keyboards/keebio/ergodicity/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/keebio/tukey/rules.mk b/keyboards/keebio/tukey/rules.mk
index af163a0d68..3642bbdb82 100644
--- a/keyboards/keebio/tukey/rules.mk
+++ b/keyboards/keebio/tukey/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/keebwerk/nano_slider/config.h b/keyboards/keebwerk/nano_slider/config.h
index 3ed356b8a9..dc8d91c262 100644
--- a/keyboards/keebwerk/nano_slider/config.h
+++ b/keyboards/keebwerk/nano_slider/config.h
@@ -187,34 +187,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keyboardio/model01/rules.mk b/keyboards/keyboardio/model01/rules.mk
index 29c028ac85..a8c627562c 100644
--- a/keyboards/keyboardio/model01/rules.mk
+++ b/keyboards/keyboardio/model01/rules.mk
@@ -32,4 +32,5 @@ SRC += leds.c \
matrix.c
# You can set RGB_MATRIX_ENABLE = no in your rules.mk to disable this and save the Flash
-RGB_MATRIX_ENABLE = custom # Enable RGB matrix effects.
+RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects.
+RGB_MATRIX_DRIVER = custom
diff --git a/keyboards/keyhive/maypad/config.h b/keyboards/keyhive/maypad/config.h
index 00a46dafc1..22c434df7b 100644
--- a/keyboards/keyhive/maypad/config.h
+++ b/keyboards/keyhive/maypad/config.h
@@ -215,32 +215,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/keyhive/maypad/rules.mk b/keyboards/keyhive/maypad/rules.mk
index 1e6415d444..6f912dbb80 100644
--- a/keyboards/keyhive/maypad/rules.mk
+++ b/keyboards/keyhive/maypad/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_5x4 numpad_5x4
diff --git a/keyboards/kingly_keys/romac_plus/rules.mk b/keyboards/kingly_keys/romac_plus/rules.mk
index 24aa01c539..811be5959a 100644
--- a/keyboards/kingly_keys/romac_plus/rules.mk
+++ b/keyboards/kingly_keys/romac_plus/rules.mk
@@ -28,6 +28,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes # Enable support for EC11 Rotary Encoder
OLED_DRIVER_ENABLE = yes # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C
diff --git a/keyboards/kmini/config.h b/keyboards/kmini/config.h
index 6224a739ef..3b947acc56 100755
--- a/keyboards/kmini/config.h
+++ b/keyboards/kmini/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2018 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2018 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/kmini/info.json b/keyboards/kmini/info.json
index 13d8176a7d..8d31f04fe1 100755
--- a/keyboards/kmini/info.json
+++ b/keyboards/kmini/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "KMAC Mini",
"url": "http://kbdmodadmin.cafe24.com/product/detail.html?product_no=12&cate_no=4&display_group=1",
- "maintainer": "maartenwut",
+ "maintainer": "evyd13",
"width": 18.25,
"height": 5,
"layouts": {
diff --git a/keyboards/kmini/keymaps/default/keymap.c b/keyboards/kmini/keymaps/default/keymap.c
index 9f93144847..6f793a019c 100755
--- a/keyboards/kmini/keymaps/default/keymap.c
+++ b/keyboards/kmini/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2018 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/kmini/kmini.c b/keyboards/kmini/kmini.c
index 08a120b65f..f67231871a 100755
--- a/keyboards/kmini/kmini.c
+++ b/keyboards/kmini/kmini.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2018 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/kmini/kmini.h b/keyboards/kmini/kmini.h
index 0576425ead..3d54c39d1f 100755
--- a/keyboards/kmini/kmini.h
+++ b/keyboards/kmini/kmini.h
@@ -1,4 +1,4 @@
-/* Copyright 2018 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2018 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/kmini/matrix.c b/keyboards/kmini/matrix.c
index 9888f1a765..7bfb650355 100755
--- a/keyboards/kmini/matrix.c
+++ b/keyboards/kmini/matrix.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2018 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/kv/revt/rules.mk b/keyboards/kv/revt/rules.mk
index 3a09683c37..d97369b150 100644
--- a/keyboards/kv/revt/rules.mk
+++ b/keyboards/kv/revt/rules.mk
@@ -19,4 +19,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/kyria/keymaps/drashna/rules.mk b/keyboards/kyria/keymaps/drashna/rules.mk
index 0604c84bdd..e11a114837 100644
--- a/keyboards/kyria/keymaps/drashna/rules.mk
+++ b/keyboards/kyria/keymaps/drashna/rules.mk
@@ -15,7 +15,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
BOOTLOADER = atmel-dfu
diff --git a/keyboards/kyria/rules.mk b/keyboards/kyria/rules.mk
index 96f76241d1..65007538b5 100644
--- a/keyboards/kyria/rules.mk
+++ b/keyboards/kyria/rules.mk
@@ -29,7 +29,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes # Split common
LTO_ENABLE = yes
diff --git a/keyboards/latinpad/rules.mk b/keyboards/latinpad/rules.mk
index 8d948b706a..20ed069353 100644
--- a/keyboards/latinpad/rules.mk
+++ b/keyboards/latinpad/rules.mk
@@ -25,4 +25,5 @@ AUDIO_ENABLE = no
RGBLIGHT_ENABLE = no
OLED_DRIVER_ENABLE = yes
ENCODER_ENABLE = yes
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
diff --git a/keyboards/lattice60/rules.mk b/keyboards/lattice60/rules.mk
index 66cede7959..1547be6a81 100644
--- a/keyboards/lattice60/rules.mk
+++ b/keyboards/lattice60/rules.mk
@@ -32,6 +32,5 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 60_hhkb
diff --git a/keyboards/launchpad/keymaps/drashna/rules.mk b/keyboards/launchpad/keymaps/drashna/rules.mk
index 463b855991..3eb1694adb 100644
--- a/keyboards/launchpad/keymaps/drashna/rules.mk
+++ b/keyboards/launchpad/keymaps/drashna/rules.mk
@@ -3,4 +3,5 @@ BOOTLOADER = atmel-dfu
RGBLIGHT_ENABLE = no
AUDIO_ENABLE = no
BOOTMAGIC_ENABLE = lite
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
diff --git a/keyboards/lazydesigners/the30/rules.mk b/keyboards/lazydesigners/the30/rules.mk
index 6c1e24fda0..eea30f7ed1 100644
--- a/keyboards/lazydesigners/the30/rules.mk
+++ b/keyboards/lazydesigners/the30/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# Support community keymaps
LAYOUTS = ortho_3x10
diff --git a/keyboards/lfkeyboards/lfk78/config.h b/keyboards/lfkeyboards/lfk78/config.h
index b96aca07c9..031b10cf73 100644
--- a/keyboards/lfkeyboards/lfk78/config.h
+++ b/keyboards/lfkeyboards/lfk78/config.h
@@ -184,34 +184,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/lfkeyboards/lfkpad/config.h b/keyboards/lfkeyboards/lfkpad/config.h
index b05ee0f0ca..05de35c0a7 100644
--- a/keyboards/lfkeyboards/lfkpad/config.h
+++ b/keyboards/lfkeyboards/lfkpad/config.h
@@ -201,34 +201,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/lfkeyboards/lfkpad/rules.mk b/keyboards/lfkeyboards/lfkpad/rules.mk
index aca77f562e..0e723f2f4d 100644
--- a/keyboards/lfkeyboards/lfkpad/rules.mk
+++ b/keyboards/lfkeyboards/lfkpad/rules.mk
@@ -30,7 +30,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ISSI_ENABLE = yes # If the I2C pullup resistors aren't installed this must be disabled
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan() isn't run every 250ms
diff --git a/keyboards/maartenwut/eon40/config.h b/keyboards/maartenwut/eon40/config.h
deleted file mode 100644
index e786255ffb..0000000000
--- a/keyboards/maartenwut/eon40/config.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "config_common.h"
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4705
-#define PRODUCT_ID 0x0140
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
-#define PRODUCT Eon40
-#define DESCRIPTION A 40% ortholinear PCB
-
-/* key matrix size */
-#define MATRIX_ROWS 4
-#define MATRIX_COLS 12
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-#define MATRIX_ROW_PINS {B7,D5,F5,F6}
-#define MATRIX_COL_PINS {F0,F1,F4,D3,D4,D6,D7,B4,B5,B6,C6,C7}
-#define UNUSED_PINS {B1,B2,B3}
-
-#define ENCODERS_PAD_A { E6, B0, D1 }
-#define ENCODERS_PAD_B { F7, D0, D2 }
-
-/* COL2ROW, ROW2COL*/
-#define DIODE_DIRECTION COL2ROW
-
-/*
- * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
- */
-// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
-
-// #define BACKLIGHT_PIN B7
-// #define BACKLIGHT_BREATHING
-// #define BACKLIGHT_LEVELS 3
-
-// #define RGB_DI_PIN E2
-// #ifdef RGB_DI_PIN
-// #define RGBLED_NUM 16
-// #define RGBLIGHT_HUE_STEP 8
-// #define RGBLIGHT_SAT_STEP 8
-// #define RGBLIGHT_VAL_STEP 8
-// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
-// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
-// /*== all animations enable ==*/
-// #define RGBLIGHT_ANIMATIONS
-// /*== or choose animations ==*/
-// #define RGBLIGHT_EFFECT_BREATHING
-// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
-// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-// #define RGBLIGHT_EFFECT_SNAKE
-// #define RGBLIGHT_EFFECT_KNIGHT
-// #define RGBLIGHT_EFFECT_CHRISTMAS
-// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
-// #define RGBLIGHT_EFFECT_RGB_TEST
-// #define RGBLIGHT_EFFECT_ALTERNATING
-// /*== customize breathing effect ==*/
-// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
-// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
-// /*==== use exp() and sin() ====*/
-// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
-// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
-// #endif
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
-
-/* define if matrix has ghost (lacks anti-ghosting diodes) */
-//#define MATRIX_HAS_GHOST
-
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-#define LOCKING_RESYNC_ENABLE
-
-/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
- * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
- */
-// #define GRAVE_ESC_CTRL_OVERRIDE
-
-/*
- * Force NKRO
- *
- * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
- * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
- * makefile for this to work.)
- *
- * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
- * until the next keyboard reset.
- *
- * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
- * fully operational during normal computer usage.
- *
- * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
- * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
- * bootmagic, NKRO mode will always be enabled until it is toggled again during a
- * power-up.
- *
- */
-//#define FORCE_NKRO
-
-/*
- * Magic Key Options
- *
- * Magic keys are hotkey commands that allow control over firmware functions of
- * the keyboard. They are best used in combination with the HID Listen program,
- * found here: https://www.pjrc.com/teensy/hid_listen.html
- *
- * The options below allow the magic key functionality to be changed. This is
- * useful if your keyboard/keypad is missing keys and you want magic key support.
- *
- */
-
-/* key combination for magic key command */
-/* defined by default; to change, uncomment and set to the combination you want */
-// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
-
-/* control how magic key switches layers */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
-
-/* override magic key keymap */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
-//#define MAGIC_KEY_HELP H
-//#define MAGIC_KEY_HELP_ALT SLASH
-//#define MAGIC_KEY_DEBUG D
-//#define MAGIC_KEY_DEBUG_MATRIX X
-//#define MAGIC_KEY_DEBUG_KBD K
-//#define MAGIC_KEY_DEBUG_MOUSE M
-//#define MAGIC_KEY_VERSION V
-//#define MAGIC_KEY_STATUS S
-//#define MAGIC_KEY_CONSOLE C
-//#define MAGIC_KEY_LAYER0 0
-//#define MAGIC_KEY_LAYER0_ALT GRAVE
-//#define MAGIC_KEY_LAYER1 1
-//#define MAGIC_KEY_LAYER2 2
-//#define MAGIC_KEY_LAYER3 3
-//#define MAGIC_KEY_LAYER4 4
-//#define MAGIC_KEY_LAYER5 5
-//#define MAGIC_KEY_LAYER6 6
-//#define MAGIC_KEY_LAYER7 7
-//#define MAGIC_KEY_LAYER8 8
-//#define MAGIC_KEY_LAYER9 9
-//#define MAGIC_KEY_BOOTLOADER B
-//#define MAGIC_KEY_BOOTLOADER_ALT ESC
-//#define MAGIC_KEY_LOCK CAPS
-//#define MAGIC_KEY_EEPROM E
-//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
-//#define MAGIC_KEY_NKRO N
-//#define MAGIC_KEY_SLEEP_LED Z
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-/*
- * MIDI options
- */
-
-/* Prevent use of disabled MIDI features in the keymap */
-//#define MIDI_ENABLE_STRICT 1
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-//#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 1
-
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
-/* Bootmagic Lite key configuration */
-// #define BOOTMAGIC_LITE_ROW 0
-// #define BOOTMAGIC_LITE_COLUMN 0
-
-#define QMK_ESC_OUTPUT F0 // usually COL
-#define QMK_ESC_INPUT B7 // usually ROW
diff --git a/keyboards/maartenwut/minitomic/config.h b/keyboards/maartenwut/minitomic/config.h
deleted file mode 100644
index 8a6eed5416..0000000000
--- a/keyboards/maartenwut/minitomic/config.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "config_common.h"
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4705
-#define PRODUCT_ID 0x0145
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
-#define PRODUCT Minitomic
-#define DESCRIPTION A 45% staggered keyboard
-
-/* key matrix size */
-#define MATRIX_ROWS 4
-#define MATRIX_COLS 13
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-#define MATRIX_ROW_PINS {B1,B3,D4,D6}
-#define MATRIX_COL_PINS {C6,B6,B5,B4,D7,F0,F1,F4,F5,F6,F7,B7,E6}
-#define UNUSED_PINS {B2,D0,D1,D2,D3,D5}
-
-/* COL2ROW, ROW2COL*/
-#define DIODE_DIRECTION COL2ROW
-
-/*
- * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
- */
-// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
-
-// #define BACKLIGHT_PIN B7
-// #define BACKLIGHT_BREATHING
-// #define BACKLIGHT_LEVELS 3
-
-// #define RGB_DI_PIN E2
-// #ifdef RGB_DI_PIN
-// #define RGBLED_NUM 16
-// #define RGBLIGHT_HUE_STEP 8
-// #define RGBLIGHT_SAT_STEP 8
-// #define RGBLIGHT_VAL_STEP 8
-// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
-// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
-// /*== all animations enable ==*/
-// #define RGBLIGHT_ANIMATIONS
-// /*== or choose animations ==*/
-// #define RGBLIGHT_EFFECT_BREATHING
-// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
-// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-// #define RGBLIGHT_EFFECT_SNAKE
-// #define RGBLIGHT_EFFECT_KNIGHT
-// #define RGBLIGHT_EFFECT_CHRISTMAS
-// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
-// #define RGBLIGHT_EFFECT_RGB_TEST
-// #define RGBLIGHT_EFFECT_ALTERNATING
-// /*== customize breathing effect ==*/
-// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
-// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
-// /*==== use exp() and sin() ====*/
-// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
-// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
-// #endif
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
-
-/* define if matrix has ghost (lacks anti-ghosting diodes) */
-//#define MATRIX_HAS_GHOST
-
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-#define LOCKING_RESYNC_ENABLE
-
-/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
- * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
- */
-// #define GRAVE_ESC_CTRL_OVERRIDE
-
-/*
- * Force NKRO
- *
- * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
- * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
- * makefile for this to work.)
- *
- * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
- * until the next keyboard reset.
- *
- * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
- * fully operational during normal computer usage.
- *
- * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
- * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
- * bootmagic, NKRO mode will always be enabled until it is toggled again during a
- * power-up.
- *
- */
-//#define FORCE_NKRO
-
-/*
- * Magic Key Options
- *
- * Magic keys are hotkey commands that allow control over firmware functions of
- * the keyboard. They are best used in combination with the HID Listen program,
- * found here: https://www.pjrc.com/teensy/hid_listen.html
- *
- * The options below allow the magic key functionality to be changed. This is
- * useful if your keyboard/keypad is missing keys and you want magic key support.
- *
- */
-
-/* key combination for magic key command */
-/* defined by default; to change, uncomment and set to the combination you want */
-// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
-
-/* control how magic key switches layers */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
-
-/* override magic key keymap */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
-//#define MAGIC_KEY_HELP H
-//#define MAGIC_KEY_HELP_ALT SLASH
-//#define MAGIC_KEY_DEBUG D
-//#define MAGIC_KEY_DEBUG_MATRIX X
-//#define MAGIC_KEY_DEBUG_KBD K
-//#define MAGIC_KEY_DEBUG_MOUSE M
-//#define MAGIC_KEY_VERSION V
-//#define MAGIC_KEY_STATUS S
-//#define MAGIC_KEY_CONSOLE C
-//#define MAGIC_KEY_LAYER0 0
-//#define MAGIC_KEY_LAYER0_ALT GRAVE
-//#define MAGIC_KEY_LAYER1 1
-//#define MAGIC_KEY_LAYER2 2
-//#define MAGIC_KEY_LAYER3 3
-//#define MAGIC_KEY_LAYER4 4
-//#define MAGIC_KEY_LAYER5 5
-//#define MAGIC_KEY_LAYER6 6
-//#define MAGIC_KEY_LAYER7 7
-//#define MAGIC_KEY_LAYER8 8
-//#define MAGIC_KEY_LAYER9 9
-//#define MAGIC_KEY_BOOTLOADER B
-//#define MAGIC_KEY_BOOTLOADER_ALT ESC
-//#define MAGIC_KEY_LOCK CAPS
-//#define MAGIC_KEY_EEPROM E
-//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
-//#define MAGIC_KEY_NKRO N
-//#define MAGIC_KEY_SLEEP_LED Z
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-/*
- * MIDI options
- */
-
-/* Prevent use of disabled MIDI features in the keymap */
-//#define MIDI_ENABLE_STRICT 1
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-//#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 1
-
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
-/* Bootmagic Lite key configuration */
-// #define BOOTMAGIC_LITE_ROW 0
-// #define BOOTMAGIC_LITE_COLUMN 0
-
-#define QMK_ESC_OUTPUT C6 // usually COL
-#define QMK_ESC_INPUT B1 // usually ROW
-#define QMK_LED C7
diff --git a/keyboards/maartenwut/mx5160/config.h b/keyboards/maartenwut/mx5160/config.h
deleted file mode 100644
index 7d3be79386..0000000000
--- a/keyboards/maartenwut/mx5160/config.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "config_common.h"
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0x4705
-#define PRODUCT_ID 0x5160
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Maartenwut
-#define PRODUCT MX-5160
-#define DESCRIPTION Replacement PCB for the Chicony 5160c
-
-/* key matrix size */
-#define MATRIX_ROWS 10
-#define MATRIX_COLS 10
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-#define MATRIX_ROW_PINS {C6,C7,B5,B6,D7,B4,D4,D6,D5,D3}
-#define MATRIX_COL_PINS {D0,D1,D2,F7,F6,F5,F4,F1,F0,E6}
-#define UNUSED_PINS {B7,B0}
-
-/* COL2ROW, ROW2COL*/
-#define DIODE_DIRECTION ROW2COL
-
-// For QMK DFU
-#define QMK_ESC_OUTPUT C6
-#define QMK_ESC_INPUT D1
-#define QMK_LED B1
-/*
- * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
- */
-// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
-
-// #define BACKLIGHT_PIN B7
-// #define BACKLIGHT_BREATHING
-// #define BACKLIGHT_LEVELS 3
-
-// #define RGB_DI_PIN E2
-// #ifdef RGB_DI_PIN
-// #define RGBLED_NUM 16
-// #define RGBLIGHT_HUE_STEP 8
-// #define RGBLIGHT_SAT_STEP 8
-// #define RGBLIGHT_VAL_STEP 8
-// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
-// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
-// /*== all animations enable ==*/
-// #define RGBLIGHT_ANIMATIONS
-// /*== or choose animations ==*/
-// #define RGBLIGHT_EFFECT_BREATHING
-// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
-// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-// #define RGBLIGHT_EFFECT_SNAKE
-// #define RGBLIGHT_EFFECT_KNIGHT
-// #define RGBLIGHT_EFFECT_CHRISTMAS
-// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
-// #define RGBLIGHT_EFFECT_RGB_TEST
-// #define RGBLIGHT_EFFECT_ALTERNATING
-// /*== customize breathing effect ==*/
-// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
-// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
-// /*==== use exp() and sin() ====*/
-// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
-// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
-// #endif
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
-
-/* define if matrix has ghost (lacks anti-ghosting diodes) */
-//#define MATRIX_HAS_GHOST
-
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-#define LOCKING_RESYNC_ENABLE
-
-/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
- * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
- */
-// #define GRAVE_ESC_CTRL_OVERRIDE
-
-/*
- * Force NKRO
- *
- * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
- * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
- * makefile for this to work.)
- *
- * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
- * until the next keyboard reset.
- *
- * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
- * fully operational during normal computer usage.
- *
- * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
- * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
- * bootmagic, NKRO mode will always be enabled until it is toggled again during a
- * power-up.
- *
- */
-//#define FORCE_NKRO
-
-/*
- * Magic Key Options
- *
- * Magic keys are hotkey commands that allow control over firmware functions of
- * the keyboard. They are best used in combination with the HID Listen program,
- * found here: https://www.pjrc.com/teensy/hid_listen.html
- *
- * The options below allow the magic key functionality to be changed. This is
- * useful if your keyboard/keypad is missing keys and you want magic key support.
- *
- */
-
-/* key combination for magic key command */
-/* defined by default; to change, uncomment and set to the combination you want */
-// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
-
-/* control how magic key switches layers */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
-
-/* override magic key keymap */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
-//#define MAGIC_KEY_HELP H
-//#define MAGIC_KEY_HELP_ALT SLASH
-//#define MAGIC_KEY_DEBUG D
-//#define MAGIC_KEY_DEBUG_MATRIX X
-//#define MAGIC_KEY_DEBUG_KBD K
-//#define MAGIC_KEY_DEBUG_MOUSE M
-//#define MAGIC_KEY_VERSION V
-//#define MAGIC_KEY_STATUS S
-//#define MAGIC_KEY_CONSOLE C
-//#define MAGIC_KEY_LAYER0 0
-//#define MAGIC_KEY_LAYER0_ALT GRAVE
-//#define MAGIC_KEY_LAYER1 1
-//#define MAGIC_KEY_LAYER2 2
-//#define MAGIC_KEY_LAYER3 3
-//#define MAGIC_KEY_LAYER4 4
-//#define MAGIC_KEY_LAYER5 5
-//#define MAGIC_KEY_LAYER6 6
-//#define MAGIC_KEY_LAYER7 7
-//#define MAGIC_KEY_LAYER8 8
-//#define MAGIC_KEY_LAYER9 9
-//#define MAGIC_KEY_BOOTLOADER B
-//#define MAGIC_KEY_BOOTLOADER_ALT ESC
-//#define MAGIC_KEY_LOCK CAPS
-//#define MAGIC_KEY_EEPROM E
-//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
-//#define MAGIC_KEY_NKRO N
-//#define MAGIC_KEY_SLEEP_LED Z
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-/*
- * MIDI options
- */
-
-/* Prevent use of disabled MIDI features in the keymap */
-//#define MIDI_ENABLE_STRICT 1
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-//#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 1
-
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
-/* Bootmagic Lite key configuration */
-// #define BOOTMAGIC_LITE_ROW 0
-// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/manta60/rules.mk b/keyboards/manta60/rules.mk
index 559044bb6d..1e898f5409 100644
--- a/keyboards/manta60/rules.mk
+++ b/keyboards/manta60/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
diff --git a/keyboards/marksard/rhymestone/keymaps/switch_tester/rules.mk b/keyboards/marksard/rhymestone/keymaps/switch_tester/rules.mk
index 78824da304..f4ccdf54f8 100644
--- a/keyboards/marksard/rhymestone/keymaps/switch_tester/rules.mk
+++ b/keyboards/marksard/rhymestone/keymaps/switch_tester/rules.mk
@@ -4,4 +4,4 @@ TAP_DANCE_ENABLE = no
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
OLED_DRIVER_ENABLE = no
LTO_ENABLE = yes
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/marksard/rhymestone/rules.mk b/keyboards/marksard/rhymestone/rules.mk
index 1f58665efc..adfaca2174 100644
--- a/keyboards/marksard/rhymestone/rules.mk
+++ b/keyboards/marksard/rhymestone/rules.mk
@@ -21,6 +21,8 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
SPLIT_KEYBOARD = yes
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
DEFAULT_FOLDER = marksard/rhymestone/rev1
diff --git a/keyboards/massdrop/alt/alt.h b/keyboards/massdrop/alt/alt.h
index f1adcd67c7..0396095450 100644
--- a/keyboards/massdrop/alt/alt.h
+++ b/keyboards/massdrop/alt/alt.h
@@ -5,7 +5,7 @@
#include "matrix.h"
#include "i2c_master.h"
-#include "led_matrix.h" //For led keycodes
+#include "md_rgb_matrix.h" //For led keycodes
#include "usb/udi_cdc.h"
#include "usb/usb2422.h"
diff --git a/keyboards/massdrop/alt/config_led.c b/keyboards/massdrop/alt/config_led.c
index dfd35a8491..136117703c 100644
--- a/keyboards/massdrop/alt/config_led.c
+++ b/keyboards/massdrop/alt/config_led.c
@@ -1,7 +1,7 @@
#ifdef RGB_MATRIX_ENABLE
#include "alt.h"
-#include "led_matrix.h"
+#include "md_rgb_matrix.h"
#include "rgb_matrix.h"
#include "config_led.h"
@@ -52,7 +52,7 @@ led_config_t g_led_config = { {
#ifdef USB_LED_INDICATOR_ENABLE
void rgb_matrix_indicators_kb(void)
{
- led_matrix_indicators();
+ md_rgb_matrix_indicators();
}
#endif // USB_LED_INDICATOR_ENABLE
diff --git a/keyboards/massdrop/alt/keymaps/default_md/keymap.c b/keyboards/massdrop/alt/keymaps/default_md/keymap.c
index 9894caf48e..810585a3df 100644
--- a/keyboards/massdrop/alt/keymaps/default_md/keymap.c
+++ b/keyboards/massdrop/alt/keymaps/default_md/keymap.c
@@ -173,7 +173,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
led_instruction_t led_instructions[] = {
//LEDs are normally inactive, no processing is performed on them
//Flags are used in matching criteria for an LED to be active and indicate how to color it
- //Flags can be found in tmk_core/protocol/arm_atsam/led_matrix.h (prefixed with LED_FLAG_)
+ //Flags can be found in tmk_core/protocol/arm_atsam/md_rgb_matrix.h (prefixed with LED_FLAG_)
//LED IDs can be found in config_led.h in the keyboard's directory
//Examples are below
diff --git a/keyboards/massdrop/alt/keymaps/reywood/rgb_matrix_user.c b/keyboards/massdrop/alt/keymaps/reywood/rgb_matrix_user.c
index 36131e2020..9ea8fbede4 100644
--- a/keyboards/massdrop/alt/keymaps/reywood/rgb_matrix_user.c
+++ b/keyboards/massdrop/alt/keymaps/reywood/rgb_matrix_user.c
@@ -1,5 +1,5 @@
#include "quantum.h"
-#include "led_matrix.h"
+#include "md_rgb_matrix.h"
extern issi3733_led_t *led_cur;
extern uint8_t led_per_run;
@@ -76,7 +76,7 @@ void rgb_matrix_init_user(void) {
led_cur_index = 0;
}
-void led_matrix_run(void) {
+void md_rgb_matrix_run(void) {
uint8_t led_this_run = 0;
if (led_cur == 0) { //Denotes start of new processing cycle in the case of chunked processing
diff --git a/keyboards/massdrop/alt/keymaps/reywood/rules.mk b/keyboards/massdrop/alt/keymaps/reywood/rules.mk
index 956d1c700c..fd78df14ef 100644
--- a/keyboards/massdrop/alt/keymaps/reywood/rules.mk
+++ b/keyboards/massdrop/alt/keymaps/reywood/rules.mk
@@ -26,7 +26,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
VIRTSER_ENABLE = no # USB Serial Driver
RAW_ENABLE = no # Raw device
AUTO_SHIFT_ENABLE = no # Auto Shift
diff --git a/keyboards/massdrop/alt/rules.mk b/keyboards/massdrop/alt/rules.mk
index ff482bb570..548288f5d3 100644
--- a/keyboards/massdrop/alt/rules.mk
+++ b/keyboards/massdrop/alt/rules.mk
@@ -27,12 +27,12 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
VIRTSER_ENABLE = no # USB Serial Driver
RAW_ENABLE = no # Raw device
AUTO_SHIFT_ENABLE = no # Auto Shift
# Custom RGB matrix handling
-RGB_MATRIX_ENABLE = custom
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = custom
LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/massdrop/ctrl/config_led.c b/keyboards/massdrop/ctrl/config_led.c
index 0cfe4ee216..f711c6a4fe 100644
--- a/keyboards/massdrop/ctrl/config_led.c
+++ b/keyboards/massdrop/ctrl/config_led.c
@@ -1,7 +1,7 @@
#ifdef RGB_MATRIX_ENABLE
#include "ctrl.h"
-#include "led_matrix.h"
+#include "md_rgb_matrix.h"
#include "rgb_matrix.h"
#include "config_led.h"
@@ -75,7 +75,7 @@ led_config_t g_led_config = { {
#ifdef USB_LED_INDICATOR_ENABLE
void rgb_matrix_indicators_kb(void)
{
- led_matrix_indicators();
+ md_rgb_matrix_indicators();
}
#endif // USB_LED_INDICATOR_ENABLE
diff --git a/keyboards/massdrop/ctrl/ctrl.h b/keyboards/massdrop/ctrl/ctrl.h
index c83efca16d..1650beb9a4 100644
--- a/keyboards/massdrop/ctrl/ctrl.h
+++ b/keyboards/massdrop/ctrl/ctrl.h
@@ -5,7 +5,7 @@
#include "matrix.h"
#include "i2c_master.h"
-#include "led_matrix.h" //For led keycodes
+#include "md_rgb_matrix.h" //For led keycodes
#include "usb/udi_cdc.h"
#include "usb/usb2422.h"
diff --git a/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c b/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c
index 93289f8aae..9ecebefa2a 100644
--- a/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c
+++ b/keyboards/massdrop/ctrl/keymaps/default_md/keymap.c
@@ -186,7 +186,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
led_instruction_t led_instructions[] = {
//LEDs are normally inactive, no processing is performed on them
//Flags are used in matching criteria for an LED to be active and indicate how to color it
- //Flags can be found in tmk_core/protocol/arm_atsam/led_matrix.h (prefixed with LED_FLAG_)
+ //Flags can be found in tmk_core/protocol/arm_atsam/md_rgb_matrix.h (prefixed with LED_FLAG_)
//LED IDs can be found in config_led.h in the keyboard's directory
//Examples are below
diff --git a/keyboards/massdrop/ctrl/keymaps/endgame/config_led.c b/keyboards/massdrop/ctrl/keymaps/endgame/config_led.c
index 448793cf5d..ec32b652da 100644
--- a/keyboards/massdrop/ctrl/keymaps/endgame/config_led.c
+++ b/keyboards/massdrop/ctrl/keymaps/endgame/config_led.c
@@ -1,7 +1,7 @@
#ifdef RGB_MATRIX_ENABLE
#include "ctrl.h"
-#include "led_matrix.h"
+#include "md_rgb_matrix.h"
#include "rgb_matrix.h"
#include "config_led.h"
@@ -75,7 +75,7 @@ led_config_t g_led_config = { {
#ifdef USB_LED_INDICATOR_ENABLE
void rgb_matrix_indicators_kb(void)
{
- led_matrix_indicators();
+ md_rgb_matrix_indicators();
}
#endif // USB_LED_INDICATOR_ENABLE
diff --git a/keyboards/massdrop/ctrl/keymaps/matthewrobo/config_led.c b/keyboards/massdrop/ctrl/keymaps/matthewrobo/config_led.c
index a4ce649d3b..a1c1dec543 100644
--- a/keyboards/massdrop/ctrl/keymaps/matthewrobo/config_led.c
+++ b/keyboards/massdrop/ctrl/keymaps/matthewrobo/config_led.c
@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef RGB_MATRIX_ENABLE
# include "ctrl.h"
-# include "led_matrix.h"
+# include "md_rgb_matrix.h"
# include "rgb_matrix.h"
# include "config_led.h"
// clang-format off
@@ -91,7 +91,7 @@ led_config_t g_led_config = { {
// clang-format on
# ifdef USB_LED_INDICATOR_ENABLE
-void rgb_matrix_indicators_kb(void) { led_matrix_indicators(); }
+void rgb_matrix_indicators_kb(void) { md_rgb_matrix_indicators(); }
# endif // USB_LED_INDICATOR_ENABLE
-#endif
+#endif \ No newline at end of file
diff --git a/keyboards/massdrop/ctrl/keymaps/responsive_pattern/keymap.c b/keyboards/massdrop/ctrl/keymaps/responsive_pattern/keymap.c
index dbf90b50a1..d20dffef14 100644
--- a/keyboards/massdrop/ctrl/keymaps/responsive_pattern/keymap.c
+++ b/keyboards/massdrop/ctrl/keymaps/responsive_pattern/keymap.c
@@ -659,7 +659,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
led_instruction_t led_instructions[] = {
//LEDs are normally inactive, no processing is performed on them
//Flags are used in matching criteria for an LED to be active and indicate how to color it
- //Flags can be found in tmk_core/protocol/arm_atsam/led_matrix.h (prefixed with LED_FLAG_)
+ //Flags can be found in tmk_core/protocol/arm_atsam/md_rgb_matrix.h (prefixed with LED_FLAG_)
//LED IDs can be found in config_led.h in the keyboard's directory
//Examples are below
diff --git a/keyboards/massdrop/ctrl/rules.mk b/keyboards/massdrop/ctrl/rules.mk
index a382272b49..1ebd461e87 100644
--- a/keyboards/massdrop/ctrl/rules.mk
+++ b/keyboards/massdrop/ctrl/rules.mk
@@ -27,10 +27,10 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
VIRTSER_ENABLE = no # USB Serial Driver
RAW_ENABLE = no # Raw device
AUTO_SHIFT_ENABLE = no # Auto Shift
# Custom RGB matrix handling
-RGB_MATRIX_ENABLE = custom
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = custom
diff --git a/keyboards/matrix/noah/rules.mk b/keyboards/matrix/noah/rules.mk
index 19e432d2a0..aacd2882b6 100644
--- a/keyboards/matrix/noah/rules.mk
+++ b/keyboards/matrix/noah/rules.mk
@@ -22,6 +22,7 @@ NKRO_ENABLE = no # USB Nkey Rollover
NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in
RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = IS31FL3731
RGBLIGHT_ENABLE = yes
RGBLIGHT_CUSTOM_DRIVER = yes
diff --git a/keyboards/maxipad/rules.mk b/keyboards/maxipad/rules.mk
index 9d907bd24e..41c018f875 100644
--- a/keyboards/maxipad/rules.mk
+++ b/keyboards/maxipad/rules.mk
@@ -17,6 +17,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
DEFAULT_FOLDER = maxipad/promicro
diff --git a/keyboards/mc_76k/rules.mk b/keyboards/mc_76k/rules.mk
index 5f109c654b..fb0f7cfd85 100644
--- a/keyboards/mc_76k/rules.mk
+++ b/keyboards/mc_76k/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/mechkeys/mk60/config.h b/keyboards/mechkeys/mk60/config.h
index b408625f25..205e8f7bbe 100644
--- a/keyboards/mechkeys/mk60/config.h
+++ b/keyboards/mechkeys/mk60/config.h
@@ -215,34 +215,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/mechkeys/mk60/rules.mk b/keyboards/mechkeys/mk60/rules.mk
index e93b6146ec..9c7f42ef45 100644
--- a/keyboards/mechkeys/mk60/rules.mk
+++ b/keyboards/mechkeys/mk60/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rev1/rules.mk
index 20256e2086..9be57067bb 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev1/rules.mk
+++ b/keyboards/mechlovin/adelais/rgb_led/rev1/rules.mk
@@ -1 +1,2 @@
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rev2/rules.mk
index 56c560e672..b52c4f9db3 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev2/rules.mk
+++ b/keyboards/mechlovin/adelais/rgb_led/rev2/rules.mk
@@ -1,3 +1,4 @@
-RGB_MATRIX_ENABLE = IS31FL3731
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = IS31FL3731
RGBLIGHT_ENABLE = yes
ENCODER_ENABLE = yes
diff --git a/keyboards/mechlovin/adelais/rules.mk b/keyboards/mechlovin/adelais/rules.mk
index 75b9b6d282..e1d36928fe 100644
--- a/keyboards/mechlovin/adelais/rules.mk
+++ b/keyboards/mechlovin/adelais/rules.mk
@@ -18,6 +18,5 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
DEFAULT_FOLDER = mechlovin/adelais/standard_led/rev2 \ No newline at end of file
diff --git a/keyboards/mechlovin/delphine/rgb_led/rules.mk b/keyboards/mechlovin/delphine/rgb_led/rules.mk
index 853f740ce9..204fb1241b 100644
--- a/keyboards/mechlovin/delphine/rgb_led/rules.mk
+++ b/keyboards/mechlovin/delphine/rgb_led/rules.mk
@@ -1,2 +1,3 @@
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-RGB_MATRIX_ENABLE = IS31FL3731 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3731
diff --git a/keyboards/mechlovin/hannah60rgb/rev1/rules.mk b/keyboards/mechlovin/hannah60rgb/rev1/rules.mk
index 20256e2086..9be57067bb 100644
--- a/keyboards/mechlovin/hannah60rgb/rev1/rules.mk
+++ b/keyboards/mechlovin/hannah60rgb/rev1/rules.mk
@@ -1 +1,2 @@
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
diff --git a/keyboards/mechlovin/hannah60rgb/rev2/rules.mk b/keyboards/mechlovin/hannah60rgb/rev2/rules.mk
index 1114e69522..fcd42ec58e 100644
--- a/keyboards/mechlovin/hannah60rgb/rev2/rules.mk
+++ b/keyboards/mechlovin/hannah60rgb/rev2/rules.mk
@@ -1,2 +1,3 @@
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-RGB_MATRIX_ENABLE = IS31FL3731 \ No newline at end of file
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = IS31FL3731
diff --git a/keyboards/mechlovin/hannah60rgb/rules.mk b/keyboards/mechlovin/hannah60rgb/rules.mk
index 7023e65ca4..eb9b152838 100644
--- a/keyboards/mechlovin/hannah60rgb/rules.mk
+++ b/keyboards/mechlovin/hannah60rgb/rules.mk
@@ -16,6 +16,7 @@ NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
+
# generated by KBFirmware JSON to QMK Parser
# https://noroadsleft.github.io/kbf_qmk_converter/
diff --git a/keyboards/mechlovin/hannah910/config.h b/keyboards/mechlovin/hannah910/config.h
index c61693599d..ad1b7c2ed8 100644
--- a/keyboards/mechlovin/hannah910/config.h
+++ b/keyboards/mechlovin/hannah910/config.h
@@ -186,34 +186,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/mechlovin/hannah910/rev1/rules.mk b/keyboards/mechlovin/hannah910/rev1/rules.mk
index 5e17282eb0..f1a818c2ed 100644
--- a/keyboards/mechlovin/hannah910/rev1/rules.mk
+++ b/keyboards/mechlovin/hannah910/rev1/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs \ No newline at end of file
diff --git a/keyboards/mechlovin/infinityce/rules.mk b/keyboards/mechlovin/infinityce/rules.mk
index 199f3316cc..339e482df3 100644
--- a/keyboards/mechlovin/infinityce/rules.mk
+++ b/keyboards/mechlovin/infinityce/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/mechlovin/pisces/rules.mk b/keyboards/mechlovin/pisces/rules.mk
index 9afc1864f1..d2bf8d3a77 100644
--- a/keyboards/mechlovin/pisces/rules.mk
+++ b/keyboards/mechlovin/pisces/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/meishi2/config.h b/keyboards/meishi2/config.h
index f681eb5006..3aef944870 100644
--- a/keyboards/meishi2/config.h
+++ b/keyboards/meishi2/config.h
@@ -218,33 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-//#define LCD_LINES 2 //< number of visible lines of the display
-//#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-//#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/meishi2/rules.mk b/keyboards/meishi2/rules.mk
index 1aa3379312..77d0f1ec16 100644
--- a/keyboards/meishi2/rules.mk
+++ b/keyboards/meishi2/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/melgeek/mj61/rev1/rules.mk b/keyboards/melgeek/mj61/rev1/rules.mk
index ba7f9eac25..12c66f05a5 100644
--- a/keyboards/melgeek/mj61/rev1/rules.mk
+++ b/keyboards/melgeek/mj61/rev1/rules.mk
@@ -16,5 +16,6 @@ NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
-RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3741
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
diff --git a/keyboards/melgeek/mj63/rev1/rules.mk b/keyboards/melgeek/mj63/rev1/rules.mk
index 998f1275a4..d5fc76b8e7 100644
--- a/keyboards/melgeek/mj63/rev1/rules.mk
+++ b/keyboards/melgeek/mj63/rev1/rules.mk
@@ -16,7 +16,8 @@ NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
-RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3741
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
LAYOUTS = 60_ansi_arrow
diff --git a/keyboards/melgeek/mj64/rev1/rules.mk b/keyboards/melgeek/mj64/rev1/rules.mk
index 6893fe2ef4..01b8aca414 100644
--- a/keyboards/melgeek/mj64/rev1/rules.mk
+++ b/keyboards/melgeek/mj64/rev1/rules.mk
@@ -16,7 +16,8 @@ NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
-RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3741
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
LAYOUTS = 64_ansi
diff --git a/keyboards/melgeek/mj64/rev2/rules.mk b/keyboards/melgeek/mj64/rev2/rules.mk
index 6893fe2ef4..01b8aca414 100644
--- a/keyboards/melgeek/mj64/rev2/rules.mk
+++ b/keyboards/melgeek/mj64/rev2/rules.mk
@@ -16,7 +16,8 @@ NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
-RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3741
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
LAYOUTS = 64_ansi
diff --git a/keyboards/melgeek/mojo75/rev1/rules.mk b/keyboards/melgeek/mojo75/rev1/rules.mk
index ba7f9eac25..12c66f05a5 100644
--- a/keyboards/melgeek/mojo75/rev1/rules.mk
+++ b/keyboards/melgeek/mojo75/rev1/rules.mk
@@ -16,5 +16,6 @@ NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
-RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3741
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
diff --git a/keyboards/melgeek/z70ultra/rev1/rules.mk b/keyboards/melgeek/z70ultra/rev1/rules.mk
index cd262021bc..dce0366f73 100644
--- a/keyboards/melgeek/z70ultra/rev1/rules.mk
+++ b/keyboards/melgeek/z70ultra/rev1/rules.mk
@@ -16,7 +16,8 @@ NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
-RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3741
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/meson/rules.mk b/keyboards/meson/rules.mk
index 2fe1d15467..84ceecb437 100644
--- a/keyboards/meson/rules.mk
+++ b/keyboards/meson/rules.mk
@@ -31,4 +31,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/miller/gm862/rules.mk b/keyboards/miller/gm862/rules.mk
index ed91876fbf..ed83bd9ac0 100644
--- a/keyboards/miller/gm862/rules.mk
+++ b/keyboards/miller/gm862/rules.mk
@@ -29,6 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
-RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3733
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
diff --git a/keyboards/miniaxe/config.h b/keyboards/miniaxe/config.h
index b0b9d4c475..b16e84e610 100644
--- a/keyboards/miniaxe/config.h
+++ b/keyboards/miniaxe/config.h
@@ -197,34 +197,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/miniaxe/rules.mk b/keyboards/miniaxe/rules.mk
index 7c5ef7d20c..6d9ed78321 100644
--- a/keyboards/miniaxe/rules.mk
+++ b/keyboards/miniaxe/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
DEBUG_ENABLE = no
CUSTOM_MATRIX = no # Use custom matrix code
diff --git a/keyboards/minidox/rules.mk b/keyboards/minidox/rules.mk
index 1446c51444..e614f483a9 100644
--- a/keyboards/minidox/rules.mk
+++ b/keyboards/minidox/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
diff --git a/keyboards/mint60/config.h b/keyboards/mint60/config.h
index 1b11092eb5..ccfec8531a 100644
--- a/keyboards/mint60/config.h
+++ b/keyboards/mint60/config.h
@@ -196,30 +196,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
diff --git a/keyboards/mint60/rules.mk b/keyboards/mint60/rules.mk
index bd9f3154d9..d5890941d4 100644
--- a/keyboards/mint60/rules.mk
+++ b/keyboards/mint60/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
diff --git a/keyboards/montsinger/rebound/rev1/rules.mk b/keyboards/montsinger/rebound/rev1/rules.mk
index 9487213e8d..8846ef1d15 100644
--- a/keyboards/montsinger/rebound/rev1/rules.mk
+++ b/keyboards/montsinger/rebound/rev1/rules.mk
@@ -26,7 +26,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_4x12
LAYOUTS_HAS_RGB = no \ No newline at end of file
diff --git a/keyboards/montsinger/rebound/rev2/rules.mk b/keyboards/montsinger/rebound/rev2/rules.mk
index f5505e25c4..1e950486cc 100644
--- a/keyboards/montsinger/rebound/rev2/rules.mk
+++ b/keyboards/montsinger/rebound/rev2/rules.mk
@@ -26,7 +26,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes
LAYOUTS = ortho_4x12
diff --git a/keyboards/montsinger/rebound/rev3/rules.mk b/keyboards/montsinger/rebound/rev3/rules.mk
index 61e36fc449..0759709231 100644
--- a/keyboards/montsinger/rebound/rev3/rules.mk
+++ b/keyboards/montsinger/rebound/rev3/rules.mk
@@ -26,7 +26,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes
LAYOUTS = ortho_4x12
diff --git a/keyboards/moon/rules.mk b/keyboards/moon/rules.mk
index b0628b37f3..9b6b588c66 100644
--- a/keyboards/moon/rules.mk
+++ b/keyboards/moon/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# custom matrix setup
CUSTOM_MATRIX = yes
diff --git a/keyboards/moonlander/rules.mk b/keyboards/moonlander/rules.mk
index 63e91fabb8..124061072f 100644
--- a/keyboards/moonlander/rules.mk
+++ b/keyboards/moonlander/rules.mk
@@ -20,7 +20,8 @@ AUDIO_ENABLE = yes # Audio output
CUSTOM_MATRIX = yes
DEBOUNCE_TYPE = custom
SWAP_HANDS_ENABLE = yes
-RGB_MATRIX_ENABLE = IS31FL3731
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = IS31FL3731
#SERIAL_LINK_ENABLE = yes
EEPROM_DRIVER = i2c
diff --git a/keyboards/mountainblocks/mb17/rules.mk b/keyboards/mountainblocks/mb17/rules.mk
index 0bdce95654..2ec995cf5f 100644
--- a/keyboards/mountainblocks/mb17/rules.mk
+++ b/keyboards/mountainblocks/mb17/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/murcielago/rev1/rules.mk b/keyboards/murcielago/rev1/rules.mk
index f8faea6c3b..b4c2699a41 100644
--- a/keyboards/murcielago/rev1/rules.mk
+++ b/keyboards/murcielago/rev1/rules.mk
@@ -29,6 +29,5 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes # Enable split keyboard mode
ENCODER_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/nack/rules.mk b/keyboards/nack/rules.mk
index a3374bf218..8b803b3ae8 100644
--- a/keyboards/nack/rules.mk
+++ b/keyboards/nack/rules.mk
@@ -17,7 +17,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = yes # Audio output
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
WS2812_DRIVER = spi
AUDIO_DRIVER = dac_additive # How to drive the 2 speakers
UNICODE_ENABLE = yes # Unicode support
diff --git a/keyboards/naked48/keymaps/salicylic/rules.mk b/keyboards/naked48/keymaps/salicylic/rules.mk
index be8d10c9a6..370f36140f 100644
--- a/keyboards/naked48/keymaps/salicylic/rules.mk
+++ b/keyboards/naked48/keymaps/salicylic/rules.mk
@@ -1,3 +1,3 @@
RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/naked48/rules.mk b/keyboards/naked48/rules.mk
index e4a63a7b22..293d01ea7f 100644
--- a/keyboards/naked48/rules.mk
+++ b/keyboards/naked48/rules.mk
@@ -31,6 +31,8 @@ OLED_DRIVER_ENABLE = no
# USE_I2C = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
SPLIT_KEYBOARD = yes
diff --git a/keyboards/namecard2x4/rev1/config.h b/keyboards/namecard2x4/rev1/config.h
index 9286afa698..3e68cb8e98 100644
--- a/keyboards/namecard2x4/rev1/config.h
+++ b/keyboards/namecard2x4/rev1/config.h
@@ -187,30 +187,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
diff --git a/keyboards/namecard2x4/rev2/config.h b/keyboards/namecard2x4/rev2/config.h
index f2cf053d23..ee2c3157e1 100644
--- a/keyboards/namecard2x4/rev2/config.h
+++ b/keyboards/namecard2x4/rev2/config.h
@@ -187,30 +187,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
diff --git a/keyboards/namecard2x4/rules.mk b/keyboards/namecard2x4/rules.mk
index 8912698e58..fc5476734b 100644
--- a/keyboards/namecard2x4/rules.mk
+++ b/keyboards/namecard2x4/rules.mk
@@ -29,7 +29,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
#UNICODEMAP_ENABLE = yes # for emoji user
#RGBLIGHT_ENABLE = yes # uncomment if you want addressable led strips
diff --git a/keyboards/navi10/rev0/rules.mk b/keyboards/navi10/rev0/rules.mk
index 79950e2a8f..5fc650a076 100644
--- a/keyboards/navi10/rev0/rules.mk
+++ b/keyboards/navi10/rev0/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/navi10/rev2/rules.mk b/keyboards/navi10/rev2/rules.mk
index 79950e2a8f..5fc650a076 100644
--- a/keyboards/navi10/rev2/rules.mk
+++ b/keyboards/navi10/rev2/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/navi10/rev3/rules.mk b/keyboards/navi10/rev3/rules.mk
index d5a072f161..bdc59cae9c 100644
--- a/keyboards/navi10/rev3/rules.mk
+++ b/keyboards/navi10/rev3/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/nebula12/config.h b/keyboards/nebula12/config.h
index 97f489fee2..ab9f213448 100755
--- a/keyboards/nebula12/config.h
+++ b/keyboards/nebula12/config.h
@@ -19,6 +19,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
+/* Ensure we jump to bootloader if the RESET keycode was pressed */
+#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+
+/* LSE clock */
+#define STM32_LSECLK 32768
+
/* USB Device descriptor parameter */
#define VENDOR_ID 0x8968
#define PRODUCT_ID 0x5337
diff --git a/keyboards/nebula12/nebula12.c b/keyboards/nebula12/nebula12.c
index b23024acf1..7491bee844 100755
--- a/keyboards/nebula12/nebula12.c
+++ b/keyboards/nebula12/nebula12.c
@@ -23,7 +23,3 @@ void board_init(void) {
SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
}
-
-void keyboard_post_init_user(void) {
-rgblight_set_effect_range(0, 4);
-}
diff --git a/keyboards/nek_type_a/rules.mk b/keyboards/nek_type_a/rules.mk
index 8ee1054bfc..e46ea2b8a3 100644
--- a/keyboards/nek_type_a/rules.mk
+++ b/keyboards/nek_type_a/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = yes
DEBUG_ENABLE = yes
BLUETOOTH = AdafruitBLE
diff --git a/keyboards/nightmare/config.h b/keyboards/nightmare/config.h
index 29ab97c14f..1bf32ca654 100644
--- a/keyboards/nightmare/config.h
+++ b/keyboards/nightmare/config.h
@@ -216,34 +216,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 1
diff --git a/keyboards/nightmare/rules.mk b/keyboards/nightmare/rules.mk
index 5fa842c8bb..dfc402a39f 100644
--- a/keyboards/nightmare/rules.mk
+++ b/keyboards/nightmare/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/novelpad/config.h b/keyboards/novelpad/config.h
index a2d24d7f82..3576ec4c0a 100755
--- a/keyboards/novelpad/config.h
+++ b/keyboards/novelpad/config.h
@@ -216,34 +216,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/noxary/220/config.h b/keyboards/noxary/220/config.h
index 7571138076..5e371a4e76 100644
--- a/keyboards/noxary/220/config.h
+++ b/keyboards/noxary/220/config.h
@@ -188,34 +188,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/noxary/260/config.h b/keyboards/noxary/260/config.h
index 9876d09f48..f3f0cbc38f 100644
--- a/keyboards/noxary/260/config.h
+++ b/keyboards/noxary/260/config.h
@@ -221,34 +221,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/noxary/260/rules.mk b/keyboards/noxary/260/rules.mk
index f17a6c17df..093a709067 100644
--- a/keyboards/noxary/260/rules.mk
+++ b/keyboards/noxary/260/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
EXTRAFLAGS += -flto
LAYOUTS = 60_ansi 60_iso 60_hhkb 60_tsangan_hhkb
diff --git a/keyboards/noxary/268_2/config.h b/keyboards/noxary/268_2/config.h
index 1d6681595b..6adcc9552e 100644
--- a/keyboards/noxary/268_2/config.h
+++ b/keyboards/noxary/268_2/config.h
@@ -190,34 +190,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/noxary/268_2/rules.mk b/keyboards/noxary/268_2/rules.mk
index 168d3a2c12..1533c29772 100644
--- a/keyboards/noxary/268_2/rules.mk
+++ b/keyboards/noxary/268_2/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/noxary/280/config.h b/keyboards/noxary/280/config.h
index 0fe0121733..a1bacd3dca 100644
--- a/keyboards/noxary/280/config.h
+++ b/keyboards/noxary/280/config.h
@@ -189,34 +189,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/noxary/280/rules.mk b/keyboards/noxary/280/rules.mk
index e75034e26e..70902339e2 100644
--- a/keyboards/noxary/280/rules.mk
+++ b/keyboards/noxary/280/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/noxary/x268/config.h b/keyboards/noxary/x268/config.h
index c342da5058..f6dae0b3fb 100644
--- a/keyboards/noxary/x268/config.h
+++ b/keyboards/noxary/x268/config.h
@@ -192,34 +192,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/noxary/x268/rules.mk b/keyboards/noxary/x268/rules.mk
index c4b8c21177..b7e5eb668a 100644
--- a/keyboards/noxary/x268/rules.mk
+++ b/keyboards/noxary/x268/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/oddball/config.h b/keyboards/oddball/config.h
index 99d9f75d5f..7d69c223ca 100644
--- a/keyboards/oddball/config.h
+++ b/keyboards/oddball/config.h
@@ -221,34 +221,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/oddball/rules.mk b/keyboards/oddball/rules.mk
index af8c3d31d4..2499ba77fe 100644
--- a/keyboards/oddball/rules.mk
+++ b/keyboards/oddball/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
DEBOUNCE_TYPE = eager_pk
SPLIT_KEYBOARD = yes
diff --git a/keyboards/ogre/ergo_single/rules.mk b/keyboards/ogre/ergo_single/rules.mk
index cd209a9c4e..edff748fac 100644
--- a/keyboards/ogre/ergo_single/rules.mk
+++ b/keyboards/ogre/ergo_single/rules.mk
@@ -29,5 +29,4 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = no
diff --git a/keyboards/ogre/ergo_split/rules.mk b/keyboards/ogre/ergo_split/rules.mk
index 06f53864c1..8614fadd01 100644
--- a/keyboards/ogre/ergo_split/rules.mk
+++ b/keyboards/ogre/ergo_split/rules.mk
@@ -29,5 +29,4 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
diff --git a/keyboards/opendeck/32/rev1/rules.mk b/keyboards/opendeck/32/rev1/rules.mk
index f4f4fa8af5..9abea17f21 100644
--- a/keyboards/opendeck/32/rev1/rules.mk
+++ b/keyboards/opendeck/32/rev1/rules.mk
@@ -23,6 +23,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
-RGB_MATRIX_ENABLE = IS31FL3731
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = IS31FL3731
LTO_ENABLE = yes
diff --git a/keyboards/ortho5by12/rules.mk b/keyboards/ortho5by12/rules.mk
index 465c5184f6..17ad792ecd 100644
--- a/keyboards/ortho5by12/rules.mk
+++ b/keyboards/ortho5by12/rules.mk
@@ -30,5 +30,4 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS_HAS_RGB = no
diff --git a/keyboards/otaku_split/rev0/config.h b/keyboards/otaku_split/rev0/config.h
index 5e1bfaacd1..8eee58d144 100644
--- a/keyboards/otaku_split/rev0/config.h
+++ b/keyboards/otaku_split/rev0/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/otaku_split/rev0/rules.mk b/keyboards/otaku_split/rev0/rules.mk
index 15240c6d93..cdc793b0f7 100644
--- a/keyboards/otaku_split/rev0/rules.mk
+++ b/keyboards/otaku_split/rev0/rules.mk
@@ -30,5 +30,4 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD=yes
diff --git a/keyboards/otaku_split/rev1/config.h b/keyboards/otaku_split/rev1/config.h
index e15ae40d39..a015e2b11b 100644
--- a/keyboards/otaku_split/rev1/config.h
+++ b/keyboards/otaku_split/rev1/config.h
@@ -222,34 +222,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/otaku_split/rev1/rules.mk b/keyboards/otaku_split/rev1/rules.mk
index 15240c6d93..cdc793b0f7 100644
--- a/keyboards/otaku_split/rev1/rules.mk
+++ b/keyboards/otaku_split/rev1/rules.mk
@@ -30,5 +30,4 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD=yes
diff --git a/keyboards/pabile/p18/rules.mk b/keyboards/pabile/p18/rules.mk
index 4a84739de0..9fcdfdb674 100644
--- a/keyboards/pabile/p18/rules.mk
+++ b/keyboards/pabile/p18/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
UNICODE_ENABLE = yes # Unicode
IOS_DEVICE_ENABLE = no # connect to IOS Device
ENCODER_ENABLE = yes
diff --git a/keyboards/pabile/p40/rules.mk b/keyboards/pabile/p40/rules.mk
index 2b5d9470a8..090983c407 100644
--- a/keyboards/pabile/p40/rules.mk
+++ b/keyboards/pabile/p40/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI controls
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
UNICODE_ENABLE = yes # Unicode
IOS_DEVICE_ENABLE = no # connect to IOS Device
diff --git a/keyboards/palette1202/rules.mk b/keyboards/palette1202/rules.mk
index 57ea5030ef..0d79fc4975 100644
--- a/keyboards/palette1202/rules.mk
+++ b/keyboards/palette1202/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes # Enable support for rotary encoders
OLED_DRIVER_ENABLE = yes # Enable support for OLED display
diff --git a/keyboards/panc40/rules.mk b/keyboards/panc40/rules.mk
index e8087f50f3..d40c3e0edb 100644
--- a/keyboards/panc40/rules.mk
+++ b/keyboards/panc40/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/pdxkbc/config.h b/keyboards/pdxkbc/config.h
index 336b1434ac..9c2e1e7d16 100644
--- a/keyboards/pdxkbc/config.h
+++ b/keyboards/pdxkbc/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/pdxkbc/rules.mk b/keyboards/pdxkbc/rules.mk
index 1aa3379312..77d0f1ec16 100644
--- a/keyboards/pdxkbc/rules.mk
+++ b/keyboards/pdxkbc/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/percent/booster/rules.mk b/keyboards/percent/booster/rules.mk
index fb2ca00e71..2aa4320673 100644
--- a/keyboards/percent/booster/rules.mk
+++ b/keyboards/percent/booster/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
EXTRAFLAGS += -flto
LAYOUTS = numpad_5x4
diff --git a/keyboards/percent/canoe_gen2/rules.mk b/keyboards/percent/canoe_gen2/rules.mk
index bde9a08fe1..6221fbcad0 100644
--- a/keyboards/percent/canoe_gen2/rules.mk
+++ b/keyboards/percent/canoe_gen2/rules.mk
@@ -20,7 +20,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
LAYOUTS = 65_ansi_blocker_split_bs 65_iso_blocker_split_bs
RGB_MATRIX_CUSTOM_KB = yes
diff --git a/keyboards/pinky/3/config.h b/keyboards/pinky/3/config.h
index 8a3f53a175..6bf0e8ea36 100644
--- a/keyboards/pinky/3/config.h
+++ b/keyboards/pinky/3/config.h
@@ -208,34 +208,6 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/pinky/4/config.h b/keyboards/pinky/4/config.h
index 4c44b0abcb..f0868d0222 100644
--- a/keyboards/pinky/4/config.h
+++ b/keyboards/pinky/4/config.h
@@ -208,34 +208,6 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/pinky/rules.mk b/keyboards/pinky/rules.mk
index 2e315382ff..b743a75423 100644
--- a/keyboards/pinky/rules.mk
+++ b/keyboards/pinky/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
diff --git a/keyboards/planck/ez/glow/rules.mk b/keyboards/planck/ez/glow/rules.mk
index 575a9c8fa4..aad92997d0 100644
--- a/keyboards/planck/ez/glow/rules.mk
+++ b/keyboards/planck/ez/glow/rules.mk
@@ -1 +1 @@
-RGB_MATRIX_ENABLE = IS31FL3737
+RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/planck/ez/rules.mk b/keyboards/planck/ez/rules.mk
index cd8354b262..18eada389f 100644
--- a/keyboards/planck/ez/rules.mk
+++ b/keyboards/planck/ez/rules.mk
@@ -26,6 +26,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# SERIAL_LINK_ENABLE = yes
ENCODER_ENABLE = yes
+RGB_MATRIX_DRIVER = IS31FL3737
LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = no
diff --git a/keyboards/planck/light/rules.mk b/keyboards/planck/light/rules.mk
index e64f6e2f18..fc6243c3fb 100644
--- a/keyboards/planck/light/rules.mk
+++ b/keyboards/planck/light/rules.mk
@@ -28,6 +28,7 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = IS31FL3731
API_SYSEX_ENABLE = no
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/planck/rev6/rules.mk b/keyboards/planck/rev6/rules.mk
index 4f3790d294..02d6b89535 100644
--- a/keyboards/planck/rev6/rules.mk
+++ b/keyboards/planck/rev6/rules.mk
@@ -24,7 +24,8 @@ API_SYSEX_ENABLE = no
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-# RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
# SERIAL_LINK_ENABLE = yes
ENCODER_ENABLE = yes
DIP_SWITCH_ENABLE = yes
diff --git a/keyboards/plume/plume65/config.h b/keyboards/plume/plume65/config.h
index 2cd05e180a..5035ee1ead 100644
--- a/keyboards/plume/plume65/config.h
+++ b/keyboards/plume/plume65/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Dekkers
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/plume/plume65/info.json b/keyboards/plume/plume65/info.json
index 941d911f39..2f1a4f01f1 100644
--- a/keyboards/plume/plume65/info.json
+++ b/keyboards/plume/plume65/info.json
@@ -1,7 +1,7 @@
{
"keyboard_name": "Plume65",
"url": "",
- "maintainer": "maartenwut",
+ "maintainer": "evyd13",
"width": 16,
"height": 5,
"layouts": {
diff --git a/keyboards/plume/plume65/keymaps/default/keymap.c b/keyboards/plume/plume65/keymaps/default/keymap.c
index 343c3b4f79..241f7ddab6 100644
--- a/keyboards/plume/plume65/keymaps/default/keymap.c
+++ b/keyboards/plume/plume65/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Dekkers
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/plume/plume65/keymaps/via/keymap.c b/keyboards/plume/plume65/keymaps/via/keymap.c
index ed8e921c72..023ce971a1 100644
--- a/keyboards/plume/plume65/keymaps/via/keymap.c
+++ b/keyboards/plume/plume65/keymaps/via/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Dekkers
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/plume/plume65/plume65.c b/keyboards/plume/plume65/plume65.c
index d59f2289ea..991a989af3 100644
--- a/keyboards/plume/plume65/plume65.c
+++ b/keyboards/plume/plume65/plume65.c
@@ -1,4 +1,4 @@
-/* Copyright 2020 Dekkers
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/plume/plume65/plume65.h b/keyboards/plume/plume65/plume65.h
index fa169a8bc3..09f41d763d 100644
--- a/keyboards/plume/plume65/plume65.h
+++ b/keyboards/plume/plume65/plume65.h
@@ -1,4 +1,4 @@
-/* Copyright 2020 Dekkers
+/* Copyright 2020 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/plume/plume65/readme.md b/keyboards/plume/plume65/readme.md
index 828477eaf0..b38d16f633 100644
--- a/keyboards/plume/plume65/readme.md
+++ b/keyboards/plume/plume65/readme.md
@@ -1,7 +1,7 @@
# Plume65
## Support
-* Keyboard Maintainer: [maartenwut](https://github.com/maartenwut)
+* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
* Hardware Supported: Plume65
* Hardware Availability: N/A
diff --git a/keyboards/primekb/prime_l/rules.mk b/keyboards/primekb/prime_l/rules.mk
index 3030b50f06..bd4e9b28ce 100644
--- a/keyboards/primekb/prime_l/rules.mk
+++ b/keyboards/primekb/prime_l/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
DEFAULT_FOLDER = primekb/prime_l/v1 \ No newline at end of file
diff --git a/keyboards/primekb/prime_m/rules.mk b/keyboards/primekb/prime_m/rules.mk
index 1a1eabc8c2..c0ece238a4 100644
--- a/keyboards/primekb/prime_m/rules.mk
+++ b/keyboards/primekb/prime_m/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = ortho_5x6 numpad_5x6
diff --git a/keyboards/primekb/prime_o/rules.mk b/keyboards/primekb/prime_o/rules.mk
index 8c2353de54..2097c25dc5 100644
--- a/keyboards/primekb/prime_o/rules.mk
+++ b/keyboards/primekb/prime_o/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/projectkb/alice/rev1/rules.mk b/keyboards/projectkb/alice/rev1/rules.mk
index 258444db45..aea9f17ac3 100644
--- a/keyboards/projectkb/alice/rev1/rules.mk
+++ b/keyboards/projectkb/alice/rev1/rules.mk
@@ -19,7 +19,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
WS2812_DRIVER = spi
diff --git a/keyboards/projectkb/alice/rev2/rules.mk b/keyboards/projectkb/alice/rev2/rules.mk
index c312301483..ddf0b6a880 100644
--- a/keyboards/projectkb/alice/rev2/rules.mk
+++ b/keyboards/projectkb/alice/rev2/rules.mk
@@ -19,7 +19,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
WS2812_DRIVER = spi
diff --git a/keyboards/quad_h/lb75/rules.mk b/keyboards/quad_h/lb75/rules.mk
index 37a5d441a5..f4f03c7d9e 100644
--- a/keyboards/quad_h/lb75/rules.mk
+++ b/keyboards/quad_h/lb75/rules.mk
@@ -29,5 +29,4 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/quantrik/kyuu/config.h b/keyboards/quantrik/kyuu/config.h
index 69fa4191e7..a7ef5490b5 100644
--- a/keyboards/quantrik/kyuu/config.h
+++ b/keyboards/quantrik/kyuu/config.h
@@ -212,34 +212,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/quantrik/kyuu/rules.mk b/keyboards/quantrik/kyuu/rules.mk
index 62b1a397b4..fba77a1bc0 100644
--- a/keyboards/quantrik/kyuu/rules.mk
+++ b/keyboards/quantrik/kyuu/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/qwertyydox/config.h b/keyboards/qwertyydox/config.h
index 3467952140..900c083026 100644
--- a/keyboards/qwertyydox/config.h
+++ b/keyboards/qwertyydox/config.h
@@ -224,34 +224,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/rabbit/rabbit68/config.h b/keyboards/rabbit/rabbit68/config.h
index 5a91b37909..0d67d0674b 100644
--- a/keyboards/rabbit/rabbit68/config.h
+++ b/keyboards/rabbit/rabbit68/config.h
@@ -212,34 +212,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/rabbit/rabbit68/rules.mk b/keyboards/rabbit/rabbit68/rules.mk
index b4d53d2e89..d6d8587416 100644
--- a/keyboards/rabbit/rabbit68/rules.mk
+++ b/keyboards/rabbit/rabbit68/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/redscarf_i/rules.mk b/keyboards/redscarf_i/rules.mk
index 2724fe6dbc..ef09cd189c 100644
--- a/keyboards/redscarf_i/rules.mk
+++ b/keyboards/redscarf_i/rules.mk
@@ -27,7 +27,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
UNICODE_ENABLE = no # Unicode
LAYOUTS = ortho_5x4 ortho_6x4 numpad_5x4 numpad_6x4
diff --git a/keyboards/redscarf_iiplus/verb/config.h b/keyboards/redscarf_iiplus/verb/config.h
index d920596ec9..de867bb0cc 100755
--- a/keyboards/redscarf_iiplus/verb/config.h
+++ b/keyboards/redscarf_iiplus/verb/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2019 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/redscarf_iiplus/verb/keymaps/default/keymap.c b/keyboards/redscarf_iiplus/verb/keymaps/default/keymap.c
index eea39a33b1..4f05b0c28c 100755
--- a/keyboards/redscarf_iiplus/verb/keymaps/default/keymap.c
+++ b/keyboards/redscarf_iiplus/verb/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/redscarf_iiplus/verb/readme.md b/keyboards/redscarf_iiplus/verb/readme.md
index 05ec00a29d..b77fabf1e9 100755
--- a/keyboards/redscarf_iiplus/verb/readme.md
+++ b/keyboards/redscarf_iiplus/verb/readme.md
@@ -2,7 +2,7 @@
A 65% keyboard with two function columns on the left.
-Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut)
+Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
Hardware Supported: Ver.B (RS78), Ver.C (RS68)
Hardware Availability: [Drop](https://drop.com/buy/red-scarf-ii-ver-b-custom-mechanical-keyboard-kit)
diff --git a/keyboards/redscarf_iiplus/verb/rules.mk b/keyboards/redscarf_iiplus/verb/rules.mk
index 395010b625..404807e86c 100755
--- a/keyboards/redscarf_iiplus/verb/rules.mk
+++ b/keyboards/redscarf_iiplus/verb/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = yes
SRC += matrix.c
diff --git a/keyboards/redscarf_iiplus/verb/verb.c b/keyboards/redscarf_iiplus/verb/verb.c
index 27a3d81533..9313b2a792 100755
--- a/keyboards/redscarf_iiplus/verb/verb.c
+++ b/keyboards/redscarf_iiplus/verb/verb.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/redscarf_iiplus/verb/verb.h b/keyboards/redscarf_iiplus/verb/verb.h
index d86a6c4c61..e444abad87 100755
--- a/keyboards/redscarf_iiplus/verb/verb.h
+++ b/keyboards/redscarf_iiplus/verb/verb.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/redscarf_iiplus/verc/config.h b/keyboards/redscarf_iiplus/verc/config.h
index d920596ec9..de867bb0cc 100755
--- a/keyboards/redscarf_iiplus/verc/config.h
+++ b/keyboards/redscarf_iiplus/verc/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2019 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/redscarf_iiplus/verc/keymaps/default/keymap.c b/keyboards/redscarf_iiplus/verc/keymaps/default/keymap.c
index aad1913288..f382b4775b 100755
--- a/keyboards/redscarf_iiplus/verc/keymaps/default/keymap.c
+++ b/keyboards/redscarf_iiplus/verc/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/redscarf_iiplus/verc/rules.mk b/keyboards/redscarf_iiplus/verc/rules.mk
index 0157596c06..34aad4239e 100755
--- a/keyboards/redscarf_iiplus/verc/rules.mk
+++ b/keyboards/redscarf_iiplus/verc/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = yes
SRC += matrix.c
diff --git a/keyboards/redscarf_iiplus/verc/verc.c b/keyboards/redscarf_iiplus/verc/verc.c
index a235cdd533..09edb5f1cd 100755
--- a/keyboards/redscarf_iiplus/verc/verc.c
+++ b/keyboards/redscarf_iiplus/verc/verc.c
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/redscarf_iiplus/verc/verc.h b/keyboards/redscarf_iiplus/verc/verc.h
index 6da76134df..c548bbe8b8 100755
--- a/keyboards/redscarf_iiplus/verc/verc.h
+++ b/keyboards/redscarf_iiplus/verc/verc.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+/* Copyright 2019 Evy Dekkers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/keyboards/redscarf_iiplus/verd/config.h b/keyboards/redscarf_iiplus/verd/config.h
index 5c19f2abe5..3381a8030b 100644
--- a/keyboards/redscarf_iiplus/verd/config.h
+++ b/keyboards/redscarf_iiplus/verd/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/redscarf_iiplus/verd/rules.mk b/keyboards/redscarf_iiplus/verd/rules.mk
index 89b1a59893..730951b7b2 100644
--- a/keyboards/redscarf_iiplus/verd/rules.mk
+++ b/keyboards/redscarf_iiplus/verd/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = yes
SRC += matrix.c
diff --git a/keyboards/retro_75/config.h b/keyboards/retro_75/config.h
index a6b8ec672f..3b6c78d1f7 100644
--- a/keyboards/retro_75/config.h
+++ b/keyboards/retro_75/config.h
@@ -216,34 +216,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/retro_75/rules.mk b/keyboards/retro_75/rules.mk
index d3ead7f646..89af053dbb 100644
--- a/keyboards/retro_75/rules.mk
+++ b/keyboards/retro_75/rules.mk
@@ -19,4 +19,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/reversestudio/decadepad/rules.mk b/keyboards/reversestudio/decadepad/rules.mk
index 7730f09cdc..35ec60f579 100644
--- a/keyboards/reversestudio/decadepad/rules.mk
+++ b/keyboards/reversestudio/decadepad/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
UNICODE_ENABLE = yes # Unicode
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
diff --git a/keyboards/reviung34/config.h b/keyboards/reviung34/config.h
index 5cd46caba9..6a2ca9e8d7 100755
--- a/keyboards/reviung34/config.h
+++ b/keyboards/reviung34/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/reviung34/rules.mk b/keyboards/reviung34/rules.mk
index 036fb0c309..1487925bb6 100755
--- a/keyboards/reviung34/rules.mk
+++ b/keyboards/reviung34/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/reviung39/config.h b/keyboards/reviung39/config.h
index 9a8600b6f1..d1eb8644dd 100644
--- a/keyboards/reviung39/config.h
+++ b/keyboards/reviung39/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/reviung39/rules.mk b/keyboards/reviung39/rules.mk
index 036fb0c309..1487925bb6 100644
--- a/keyboards/reviung39/rules.mk
+++ b/keyboards/reviung39/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/reviung41/config.h b/keyboards/reviung41/config.h
index 26ecc142da..acac4f0d76 100644
--- a/keyboards/reviung41/config.h
+++ b/keyboards/reviung41/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/reviung41/rules.mk b/keyboards/reviung41/rules.mk
index 983d574a31..edee7940cc 100644
--- a/keyboards/reviung41/rules.mk
+++ b/keyboards/reviung41/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/rgbkb/pan/rules.mk b/keyboards/rgbkb/pan/rules.mk
index 1960304505..fa3ce94609 100644
--- a/keyboards/rgbkb/pan/rules.mk
+++ b/keyboards/rgbkb/pan/rules.mk
@@ -12,7 +12,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
WS2812_DRIVER = bitbang
ENCODER_ENABLE = yes
OLED_DRIVER_ENABLE = yes
diff --git a/keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk b/keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk
index f60fa5d4c9..8846907559 100644
--- a/keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk
+++ b/keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk
@@ -8,7 +8,7 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
RGBLIGHT_ANIMATIONS = no # LED animations
LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
-RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
+RGB_MATRIX_ENABLE = yes # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
# Userspace implements their own LTO
LTO_ENABLE = no
diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk b/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk
index da524e3dc9..c386b39d35 100644
--- a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk
+++ b/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk
@@ -4,7 +4,7 @@
RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
RGBLIGHT_ANIMATIONS = no # LED animations
LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
-RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
+RGB_MATRIX_ENABLE = yes # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs
SF_ENABLE = no # Enables the additional 38 Starfighter LEDs
diff --git a/keyboards/rgbkb/sol/rev1/rules.mk b/keyboards/rgbkb/sol/rev1/rules.mk
index 7be64231c3..235e852545 100644
--- a/keyboards/rgbkb/sol/rev1/rules.mk
+++ b/keyboards/rgbkb/sol/rev1/rules.mk
@@ -17,6 +17,7 @@ RGBLIGHT_ANIMATIONS = yes # LED animations
LED_MIRRORED = yes # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
+RGB_MATRIX_DRIVER = WS2812
RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects.
RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap.
diff --git a/keyboards/rgbkb/sol/rev2/rules.mk b/keyboards/rgbkb/sol/rev2/rules.mk
index 201a7b47b2..29e211014d 100644
--- a/keyboards/rgbkb/sol/rev2/rules.mk
+++ b/keyboards/rgbkb/sol/rev2/rules.mk
@@ -16,7 +16,8 @@ RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not ena
RGBLIGHT_ANIMATIONS = no # LED animations
LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
-RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
+RGB_MATRIX_ENABLE = yes # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
+RGB_MATRIX_DRIVER = WS2812
RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects.
RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap.
diff --git a/keyboards/rgbkb/zygomorph/rules.mk b/keyboards/rgbkb/zygomorph/rules.mk
index 83706cdf2c..1b27af2ede 100644
--- a/keyboards/rgbkb/zygomorph/rules.mk
+++ b/keyboards/rgbkb/zygomorph/rules.mk
@@ -30,7 +30,7 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
+RGB_MATRIX_DRIVER = WS2812
SPLIT_KEYBOARD = yes
LAYOUTS = ortho_4x12 ortho_5x12
diff --git a/keyboards/runner3680/rules.mk b/keyboards/runner3680/rules.mk
index 2bf7ea0cb2..1b7499c074 100644
--- a/keyboards/runner3680/rules.mk
+++ b/keyboards/runner3680/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes # Enables split keyboard support
diff --git a/keyboards/sck/m0116b/config.h b/keyboards/sck/m0116b/config.h
index 03fa9f2557..8563f7fca4 100644
--- a/keyboards/sck/m0116b/config.h
+++ b/keyboards/sck/m0116b/config.h
@@ -216,34 +216,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 6
diff --git a/keyboards/sck/m0116b/rules.mk b/keyboards/sck/m0116b/rules.mk
index 562bad5d56..c97360b576 100644
--- a/keyboards/sck/m0116b/rules.mk
+++ b/keyboards/sck/m0116b/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/sck/neiso/rules.mk b/keyboards/sck/neiso/rules.mk
index 990edc9df2..a480f1f832 100644
--- a/keyboards/sck/neiso/rules.mk
+++ b/keyboards/sck/neiso/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/sck/osa/config.h b/keyboards/sck/osa/config.h
index 9d041d0f0c..83dec82d81 100644
--- a/keyboards/sck/osa/config.h
+++ b/keyboards/sck/osa/config.h
@@ -222,34 +222,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
//#define BOOTMAGIC_LITE_ROW 0
//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/sck/osa/rules.mk b/keyboards/sck/osa/rules.mk
index c921304497..c1b724e717 100644
--- a/keyboards/sck/osa/rules.mk
+++ b/keyboards/sck/osa/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/scythe/config.h b/keyboards/scythe/config.h
index c4d12bb030..4c6b07a37f 100644
--- a/keyboards/scythe/config.h
+++ b/keyboards/scythe/config.h
@@ -191,34 +191,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/scythe/rules.mk b/keyboards/scythe/rules.mk
index d268951e33..c327fc3ac8 100644
--- a/keyboards/scythe/rules.mk
+++ b/keyboards/scythe/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes # Use shared split_common
RGBLIGHT_SPLIT = yes
diff --git a/keyboards/sentraq/number_pad/rules.mk b/keyboards/sentraq/number_pad/rules.mk
index 7c87642acc..8d93d390d2 100644
--- a/keyboards/sentraq/number_pad/rules.mk
+++ b/keyboards/sentraq/number_pad/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/setta21/keymaps/salicylic/rules.mk b/keyboards/setta21/keymaps/salicylic/rules.mk
index 6e59dde1c1..2d19192969 100644
--- a/keyboards/setta21/keymaps/salicylic/rules.mk
+++ b/keyboards/setta21/keymaps/salicylic/rules.mk
@@ -1,3 +1,3 @@
RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
OLED_DRIVER_ENABLE = yes
diff --git a/keyboards/setta21/rules.mk b/keyboards/setta21/rules.mk
index 8eae05c616..b99696bc26 100644
--- a/keyboards/setta21/rules.mk
+++ b/keyboards/setta21/rules.mk
@@ -31,6 +31,8 @@ OLED_DRIVER_ENABLE = no
USE_I2C = no
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
DEFAULT_FOLDER = setta21/rev1
diff --git a/keyboards/shambles/rules.mk b/keyboards/shambles/rules.mk
index d029ee528f..46138bafdc 100644
--- a/keyboards/shambles/rules.mk
+++ b/keyboards/shambles/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/shiro/config.h b/keyboards/shiro/config.h
index d97be0cd29..f7d2a76eaa 100644
--- a/keyboards/shiro/config.h
+++ b/keyboards/shiro/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/shiro/rules.mk b/keyboards/shiro/rules.mk
index fa18648913..7854599db8 100644
--- a/keyboards/shiro/rules.mk
+++ b/keyboards/shiro/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/sidderskb/majbritt/rules.mk b/keyboards/sidderskb/majbritt/rules.mk
index 4053484219..b842278bb7 100644
--- a/keyboards/sidderskb/majbritt/rules.mk
+++ b/keyboards/sidderskb/majbritt/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/silverbullet44/config.h b/keyboards/silverbullet44/config.h
index a7402a001b..3f9243fd51 100644
--- a/keyboards/silverbullet44/config.h
+++ b/keyboards/silverbullet44/config.h
@@ -261,34 +261,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/silverbullet44/rules.mk b/keyboards/silverbullet44/rules.mk
index 39c5a0451e..d6a0947966 100644
--- a/keyboards/silverbullet44/rules.mk
+++ b/keyboards/silverbullet44/rules.mk
@@ -25,12 +25,12 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-#RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = yes # Audio output on port B6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
LTO_ENABLE = yes
diff --git a/keyboards/snampad/config.h b/keyboards/snampad/config.h
index 86dd3ce2fc..87f7feab45 100644
--- a/keyboards/snampad/config.h
+++ b/keyboards/snampad/config.h
@@ -212,34 +212,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/snampad/rules.mk b/keyboards/snampad/rules.mk
index 91b492ba4a..8425f62bb1 100644
--- a/keyboards/snampad/rules.mk
+++ b/keyboards/snampad/rules.mk
@@ -30,6 +30,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = numpad_6x4
diff --git a/keyboards/spacetime/config.h b/keyboards/spacetime/config.h
index 26eb8dd26a..75053ab125 100644
--- a/keyboards/spacetime/config.h
+++ b/keyboards/spacetime/config.h
@@ -212,34 +212,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/spacetime/rules.mk b/keyboards/spacetime/rules.mk
index 7dd7761906..e2158fb15c 100644
--- a/keyboards/spacetime/rules.mk
+++ b/keyboards/spacetime/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
OLED_DRIVER_ENABLE = no
# Enable generic behavior for split boards
diff --git a/keyboards/speedo/config.h b/keyboards/speedo/config.h
deleted file mode 100644
index 04195b8665..0000000000
--- a/keyboards/speedo/config.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
-Copyright 2017 Paul Ewing
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef CONFIG_H
-#define CONFIG_H
-
-#include "config_common.h"
-
-/* USB Device descriptor parameter */
-#define VENDOR_ID 0xFEED
-#define PRODUCT_ID 0x0000
-#define DEVICE_VER 0x0001
-#define MANUFACTURER You
-#define PRODUCT speedo
-#define DESCRIPTION A custom keyboard
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-//#define MATRIX_ROW_PINS { D0, D5 }
-#define MATRIX_ROW_PINS { D1, D2, D3, C6, C7 }
-#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, D0, B7, B3, B2, B1, B0 }
-#define UNUSED_PINS { D5, D4, D6, D7, B4 }
-
-/* COL2ROW, ROW2COL*/
-#define DIODE_DIRECTION COL2ROW
-
-// #define BACKLIGHT_PIN B7
-// #define BACKLIGHT_BREATHING
-// #define BACKLIGHT_LEVELS 3
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
-
-/* define if matrix has ghost (lacks anti-ghosting diodes) */
-//#define MATRIX_HAS_GHOST
-
-/* number of backlight levels */
-
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-#define LOCKING_RESYNC_ENABLE
-
-/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
- * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
- */
-// #define GRAVE_ESC_CTRL_OVERRIDE
-
-/*
- * Force NKRO
- *
- * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
- * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
- * makefile for this to work.)
- *
- * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
- * until the next keyboard reset.
- *
- * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
- * fully operational during normal computer usage.
- *
- * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
- * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
- * bootmagic, NKRO mode will always be enabled until it is toggled again during a
- * power-up.
- *
- */
-//#define FORCE_NKRO
-
-/*
- * Magic Key Options
- *
- * Magic keys are hotkey commands that allow control over firmware functions of
- * the keyboard. They are best used in combination with the HID Listen program,
- * found here: https://www.pjrc.com/teensy/hid_listen.html
- *
- * The options below allow the magic key functionality to be changed. This is
- * useful if your keyboard/keypad is missing keys and you want magic key support.
- *
- */
-
-/* control how magic key switches layers */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
-
-/* override magic key keymap */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
-//#define MAGIC_KEY_HELP1 H
-//#define MAGIC_KEY_HELP2 SLASH
-//#define MAGIC_KEY_DEBUG D
-//#define MAGIC_KEY_DEBUG_MATRIX X
-//#define MAGIC_KEY_DEBUG_KBD K
-//#define MAGIC_KEY_DEBUG_MOUSE M
-//#define MAGIC_KEY_VERSION V
-//#define MAGIC_KEY_STATUS S
-//#define MAGIC_KEY_CONSOLE C
-//#define MAGIC_KEY_LAYER0_ALT1 ESC
-//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
-//#define MAGIC_KEY_LAYER0 0
-//#define MAGIC_KEY_LAYER1 1
-//#define MAGIC_KEY_LAYER2 2
-//#define MAGIC_KEY_LAYER3 3
-//#define MAGIC_KEY_LAYER4 4
-//#define MAGIC_KEY_LAYER5 5
-//#define MAGIC_KEY_LAYER6 6
-//#define MAGIC_KEY_LAYER7 7
-//#define MAGIC_KEY_LAYER8 8
-//#define MAGIC_KEY_LAYER9 9
-//#define MAGIC_KEY_BOOTLOADER PAUSE
-//#define MAGIC_KEY_LOCK CAPS
-//#define MAGIC_KEY_EEPROM E
-//#define MAGIC_KEY_NKRO N
-//#define MAGIC_KEY_SLEEP_LED Z
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-/*
- * MIDI options
- */
-
-/* Prevent use of disabled MIDI features in the keymap */
-//#define MIDI_ENABLE_STRICT 1
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-//#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 1
-
-#endif
diff --git a/keyboards/speedo/info.json b/keyboards/speedo/info.json
deleted file mode 100644
index 3f4b7b2799..0000000000
--- a/keyboards/speedo/info.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "keyboard_name": "Speedo",
- "url": "",
- "maintainer": "qmk",
- "bootloader": "",
- "width": 15,
- "height": 6.5,
- "layouts": {
- "LAYOUT": {
- "layout": [{"label":"k00", "x":0, "y":0.375}, {"label":"k01", "x":1, "y":0.375}, {"label":"k02", "x":2, "y":0.25}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0.25}, {"label":"k05", "x":5, "y":0.5}, {"label":"k06", "x":9, "y":0.5}, {"label":"k07", "x":10, "y":0.25}, {"label":"k08", "x":11, "y":0}, {"label":"k09", "x":12, "y":0.25}, {"label":"k10", "x":13, "y":0.375}, {"label":"k11", "x":14, "y":0.375}, {"label":"k12", "x":0, "y":1.375}, {"label":"k13", "x":1, "y":1.375}, {"label":"k14", "x":2, "y":1.25}, {"label":"k15", "x":3, "y":1}, {"label":"k16", "x":4, "y":1.25}, {"label":"k17", "x":5, "y":1.5}, {"label":"k18", "x":7, "y":2}, {"label":"k19", "x":9, "y":1.5}, {"label":"k20", "x":10, "y":1.25}, {"label":"k21", "x":11, "y":1}, {"label":"k22", "x":12, "y":1.25}, {"label":"k23", "x":13, "y":1.375}, {"label":"k24", "x":14, "y":1.375}, {"label":"k25", "x":0, "y":2.375}, {"label":"k26", "x":1, "y":2.375}, {"label":"k27", "x":2, "y":2.25}, {"label":"k28", "x":3, "y":2}, {"label":"k29", "x":4, "y":2.25}, {"label":"k30", "x":5, "y":2.5}, {"label":"k31", "x":7, "y":3}, {"label":"k32", "x":9, "y":2.5}, {"label":"k33", "x":10, "y":2.25}, {"label":"k34", "x":11, "y":2}, {"label":"k35", "x":12, "y":2.25}, {"label":"k36", "x":13, "y":2.375}, {"label":"k37", "x":14, "y":2.375}, {"label":"k38", "x":0, "y":3.375}, {"label":"k39", "x":1, "y":3.375}, {"label":"k40", "x":2, "y":3.25}, {"label":"k41", "x":3, "y":3}, {"label":"k42", "x":4, "y":3.25}, {"label":"k43", "x":5, "y":3.5}, {"label":"k44", "x":6.5, "y":4}, {"label":"k45", "x":7.5, "y":4}, {"label":"k46", "x":9, "y":3.5}, {"label":"k47", "x":10, "y":3.25}, {"label":"k48", "x":11, "y":3}, {"label":"k49", "x":12, "y":3.25}, {"label":"k50", "x":13, "y":3.375}, {"label":"k51", "x":14, "y":3.375}, {"label":"k52", "x":0, "y":4.375}, {"label":"k53", "x":1, "y":4.375}, {"label":"k54", "x":2, "y":4.25}, {"label":"k55", "x":3, "y":4}, {"label":"k56", "x":4, "y":4.25}, {"label":"k57", "x":5.5, "y":5}, {"label":"k58", "x":6.5, "y":5.5}, {"label":"k59", "x":7.5, "y":5.5}, {"label":"k60", "x":8.5, "y":5}, {"label":"k61", "x":10, "y":4.25}, {"label":"k62", "x":11, "y":4}, {"label":"k63", "x":12, "y":4.25}, {"label":"k64", "x":13, "y":4.375}, {"label":"k65", "x":14, "y":4.375}]
- }
- }
-}
diff --git a/keyboards/speedo/keymaps/default/readme.md b/keyboards/speedo/keymaps/default/readme.md
deleted file mode 100644
index 6d373b4c65..0000000000
--- a/keyboards/speedo/keymaps/default/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The default keymap for speedo \ No newline at end of file
diff --git a/keyboards/speedo/readme.md b/keyboards/speedo/readme.md
deleted file mode 100644
index 882c16583d..0000000000
--- a/keyboards/speedo/readme.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Speedo
-
-![Speedo](https://raw.githubusercontent.com/pcewing/speedo/master/build_log/images/04-03_23-09-56_00.jpg)
-
-Keyboard Maintainer: [Paul Ewing](https://github.com/pcewing)
-Hardware Supported: Teensy 2.0
-Hardware Availability: You will have to get the plates cut by an online service such as Ponoko. Case files are available in the [Speedo Repository](https://github.com/pcewing/speedo).
-
-Make example for this keyboard (after setting up your build environment):
-
- make speedo:default
-
-See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
-
-## Flashing the Firmware
-See the QMK docs for handwiring a keyboard; there is a section with instructions on how to flash the *.hex* file to the Teensy 2.0 controller.
diff --git a/keyboards/speedo/rules.mk b/keyboards/speedo/rules.mk
deleted file mode 100644
index b961b08c06..0000000000
--- a/keyboards/speedo/rules.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# MCU name
-MCU = atmega32u4
-
-# Bootloader selection
-# Teensy halfkay
-# Pro Micro caterina
-# Atmel DFU atmel-dfu
-# LUFA DFU lufa-dfu
-# QMK DFU qmk-dfu
-# ATmega32A bootloadHID
-# ATmega328P USBasp
-BOOTLOADER = halfkay
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE = no # USB Nkey Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
-MIDI_ENABLE = no # MIDI support
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-AUDIO_ENABLE = no # Audio output on port C6
-FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
diff --git a/keyboards/speedo/speedo.c b/keyboards/speedo/speedo.c
deleted file mode 100644
index 74c97c841f..0000000000
--- a/keyboards/speedo/speedo.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2017 Paul Ewing
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "speedo.h"
-
-void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- matrix_init_user();
-}
-
-void matrix_scan_kb(void) {
- // put your looping keyboard code here
- // runs every cycle (a lot)
-
- matrix_scan_user();
-}
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- // put your per-action keyboard code here
- // runs for every action, just before processing by the firmware
-
- return process_record_user(keycode, record);
-}
-
-void led_set_kb(uint8_t usb_led) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
-
- led_set_user(usb_led);
-}
diff --git a/keyboards/speedo/speedo.h b/keyboards/speedo/speedo.h
deleted file mode 100644
index cf11aa5a22..0000000000
--- a/keyboards/speedo/speedo.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2017 Paul Ewing
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#ifndef SPEEDO_H
-#define SPEEDO_H
-
-#include "quantum.h"
-
-// This a shortcut to help you visually see your layout.
-// The following is an example using the Planck MIT layout
-// The first section contains all of the arguments
-// The second converts the arguments into a two-dimensional array
-#define LAYOUT( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, \
- k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, \
- k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, \
- k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, \
- k52, k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65 \
-) \
-{ \
- { k00, k01, k02, k03, k04, k05, KC_NO, KC_NO, k06, k07, k08, k09, k10, k11 }, \
- { k12, k13, k14, k15, k16, k17, k18, KC_NO, k19, k20, k21, k22, k23, k24 }, \
- { k25, k26, k27, k28, k29, k30, KC_NO, k31, k32, k33, k34, k35, k36, k37 }, \
- { k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51 }, \
- { k52, k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65 } \
-}
-
-#endif
-
diff --git a/keyboards/splitreus62/rules.mk b/keyboards/splitreus62/rules.mk
index ad3095be41..1549a10cc0 100644
--- a/keyboards/splitreus62/rules.mk
+++ b/keyboards/splitreus62/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI controls
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
UNICODE_ENABLE = no # Unicode
SPLIT_KEYBOARD = yes
diff --git a/keyboards/standaside/config.h b/keyboards/standaside/config.h
index 92c6b28b97..d00d8dd0cf 100644
--- a/keyboards/standaside/config.h
+++ b/keyboards/standaside/config.h
@@ -174,30 +174,3 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
diff --git a/keyboards/standaside/rules.mk b/keyboards/standaside/rules.mk
index 2960817223..59ce4d7e20 100644
--- a/keyboards/standaside/rules.mk
+++ b/keyboards/standaside/rules.mk
@@ -29,5 +29,4 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
RGBLIGHT_ENABLE = yes # Enable RGB underlighting support
diff --git a/keyboards/staryu/rules.mk b/keyboards/staryu/rules.mk
index c970388048..6032c5deca 100755
--- a/keyboards/staryu/rules.mk
+++ b/keyboards/staryu/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/suihankey/alpha/config.h b/keyboards/suihankey/alpha/config.h
index f7f4aee118..37dca92541 100644
--- a/keyboards/suihankey/alpha/config.h
+++ b/keyboards/suihankey/alpha/config.h
@@ -213,34 +213,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/suihankey/rev1/config.h b/keyboards/suihankey/rev1/config.h
index 4e14551257..1bf8e9309f 100644
--- a/keyboards/suihankey/rev1/config.h
+++ b/keyboards/suihankey/rev1/config.h
@@ -213,34 +213,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/suihankey/rules.mk b/keyboards/suihankey/rules.mk
index e3b91d3dac..593ff2d3db 100644
--- a/keyboards/suihankey/rules.mk
+++ b/keyboards/suihankey/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
OLED_DRIVER_ENABLE = yes
SPLIT_KEYBOARD = no
diff --git a/keyboards/suihankey/split/alpha/config.h b/keyboards/suihankey/split/alpha/config.h
index ed3d971be7..1028fbdf0a 100644
--- a/keyboards/suihankey/split/alpha/config.h
+++ b/keyboards/suihankey/split/alpha/config.h
@@ -213,34 +213,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/suihankey/split/rev1/config.h b/keyboards/suihankey/split/rev1/config.h
index 04ed0ba50d..6c28ec3edc 100644
--- a/keyboards/suihankey/split/rev1/config.h
+++ b/keyboards/suihankey/split/rev1/config.h
@@ -213,34 +213,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/switchplate/southpaw_65/config.h b/keyboards/switchplate/southpaw_65/config.h
index 58df7657c5..5bb424428c 100644
--- a/keyboards/switchplate/southpaw_65/config.h
+++ b/keyboards/switchplate/southpaw_65/config.h
@@ -206,34 +206,6 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/switchplate/southpaw_65/rules.mk b/keyboards/switchplate/southpaw_65/rules.mk
index 3ede910c3e..e9818c59cb 100644
--- a/keyboards/switchplate/southpaw_65/rules.mk
+++ b/keyboards/switchplate/southpaw_65/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LTO_ENABLE = yes
# custom matrix setup
diff --git a/keyboards/switchplate/southpaw_fullsize/rules.mk b/keyboards/switchplate/southpaw_fullsize/rules.mk
index 46d62bf5dc..021099d6f4 100644
--- a/keyboards/switchplate/southpaw_fullsize/rules.mk
+++ b/keyboards/switchplate/southpaw_fullsize/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/tada68/keymaps/maartenwut/config.h b/keyboards/tada68/keymaps/maartenwut/config.h
deleted file mode 100755
index a5568e400d..0000000000
--- a/keyboards/tada68/keymaps/maartenwut/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../config.h"
diff --git a/keyboards/tada68/keymaps/maartenwut/keymap.c b/keyboards/tada68/keymaps/maartenwut/keymap.c
deleted file mode 100755
index 81028910fd..0000000000
--- a/keyboards/tada68/keymaps/maartenwut/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define _MA 0
-#define _GA 1
-#define _FL 2
-#define _AR 3
-#define _LE 4
-#define _LO 5
-#define _UL 6
-
-#define TRNS KC_TRNS
-#define trigger_time 400
-
-#define LSHIFT OSM(MOD_LSFT)
-#define SPACE LT(_AR, KC_SPC)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// Main Layer
-[_MA] = LAYOUT_ansi(
- KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MPLY,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
- LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
-
-//Function Layer
-[_FL] = LAYOUT_ansi(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET, KC_PSCR,
- TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_INS,
- TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_HOME,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_WH_U, KC_END,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_WH_L, KC_WH_D, KC_WH_R),
-
-//Arrow keys layer (space bar)
-[_AR] = LAYOUT_ansi(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TRNS, TRNS, TRNS, TRNS,
- TRNS, TERM_ON, TERM_OFF, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
-//Game layer (fn + g)
-[_GA] = LAYOUT_ansi(
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
- TRNS, TRNS, TRNS, KC_SPC, TRNS, TRNS, MO(_FL), TRNS, TRNS, TRNS),
-}; \ No newline at end of file
diff --git a/keyboards/tada68/keymaps/maartenwut/readme.md b/keyboards/tada68/keymaps/maartenwut/readme.md
deleted file mode 100755
index 7ff85924f2..0000000000
--- a/keyboards/tada68/keymaps/maartenwut/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Maartenwut's layout
-
-Well, this is Maartenwut's keyboard layout. \ No newline at end of file
diff --git a/keyboards/tada68/rules.mk b/keyboards/tada68/rules.mk
index 18b4cdf72c..f0c6668013 100755
--- a/keyboards/tada68/rules.mk
+++ b/keyboards/tada68/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
UNICODE_ENABLE = no # Unicode
LAYOUTS = 65_ansi 65_iso
diff --git a/keyboards/terrazzo/rules.mk b/keyboards/terrazzo/rules.mk
index f6ea149e3f..7a08fb769f 100644
--- a/keyboards/terrazzo/rules.mk
+++ b/keyboards/terrazzo/rules.mk
@@ -26,7 +26,8 @@ NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: htt
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = no
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-LED_MATRIX_ENABLE = IS31FL3731
+LED_MATRIX_ENABLE = yes
+LED_MATRIX_DRIVER = IS31FL3731
ENCODER_ENABLE = yes
WPM_ENABLE = yes
diff --git a/keyboards/tg4x/config.h b/keyboards/tg4x/config.h
index c00cf2828f..3fcef6d2a5 100644
--- a/keyboards/tg4x/config.h
+++ b/keyboards/tg4x/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/tg4x/rules.mk b/keyboards/tg4x/rules.mk
index 4a86998cb9..866fc58fd9 100644
--- a/keyboards/tg4x/rules.mk
+++ b/keyboards/tg4x/rules.mk
@@ -29,6 +29,5 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LTO_ENABLE = yes
diff --git a/keyboards/the_royal/liminal/rules.mk b/keyboards/the_royal/liminal/rules.mk
index 4d21028090..0f05ebc3d0 100644
--- a/keyboards/the_royal/liminal/rules.mk
+++ b/keyboards/the_royal/liminal/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/thedogkeyboard/config.h b/keyboards/thedogkeyboard/config.h
index 1a67a3f172..ec16769838 100644
--- a/keyboards/thedogkeyboard/config.h
+++ b/keyboards/thedogkeyboard/config.h
@@ -213,34 +213,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/thedogkeyboard/rules.mk b/keyboards/thedogkeyboard/rules.mk
index 31e3aa83af..70420fd361 100644
--- a/keyboards/thedogkeyboard/rules.mk
+++ b/keyboards/thedogkeyboard/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
CUSTOM_MATRIX = yes
SRC += matrix.c
diff --git a/keyboards/tmo50/rules.mk b/keyboards/tmo50/rules.mk
index 954dd22460..aae95314e8 100644
--- a/keyboards/tmo50/rules.mk
+++ b/keyboards/tmo50/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/tr60w/rules.mk b/keyboards/tr60w/rules.mk
index 4b68e6c7f8..07a540c301 100644
--- a/keyboards/tr60w/rules.mk
+++ b/keyboards/tr60w/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/treadstone48/rev1/config.h b/keyboards/treadstone48/rev1/config.h
index 3ea285836c..cde24322cc 100644
--- a/keyboards/treadstone48/rev1/config.h
+++ b/keyboards/treadstone48/rev1/config.h
@@ -224,34 +224,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/treadstone48/rev2/config.h b/keyboards/treadstone48/rev2/config.h
index fb5011a0be..fddf68095e 100644
--- a/keyboards/treadstone48/rev2/config.h
+++ b/keyboards/treadstone48/rev2/config.h
@@ -217,34 +217,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/treadstone48/rules.mk b/keyboards/treadstone48/rules.mk
index df284153c9..39af991a62 100644
--- a/keyboards/treadstone48/rules.mk
+++ b/keyboards/treadstone48/rules.mk
@@ -27,7 +27,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes
MOUSEKEY_ENABLE = yes # Mouse keys
diff --git a/keyboards/treasure/type9/config.h b/keyboards/treasure/type9/config.h
index 220b7f7800..177422f03e 100644
--- a/keyboards/treasure/type9/config.h
+++ b/keyboards/treasure/type9/config.h
@@ -189,30 +189,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
diff --git a/keyboards/treasure/type9/rules.mk b/keyboards/treasure/type9/rules.mk
index d4b1f6f993..a45ccd94d7 100644
--- a/keyboards/treasure/type9/rules.mk
+++ b/keyboards/treasure/type9/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ua62/config.h b/keyboards/ua62/config.h
index a6590d3685..120e3e779c 100644
--- a/keyboards/ua62/config.h
+++ b/keyboards/ua62/config.h
@@ -217,34 +217,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/ua62/rules.mk b/keyboards/ua62/rules.mk
index eaca3310b0..7c5512b658 100644
--- a/keyboards/ua62/rules.mk
+++ b/keyboards/ua62/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ungodly/launch_pad/rules.mk b/keyboards/ungodly/launch_pad/rules.mk
index 7ec11fd95d..298ee450cb 100644
--- a/keyboards/ungodly/launch_pad/rules.mk
+++ b/keyboards/ungodly/launch_pad/rules.mk
@@ -23,7 +23,8 @@ AUDIO_ENABLE = no # Audio output
MIDI_ENABLE = yes
OLED_DRIVER_ENABLE = yes
ENCODER_ENABLE = yes
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
SPACE_CADET_ENABLE = no
MAGIC_ENABLE = no
GRAVE_ESC_ENABLE = no
diff --git a/keyboards/uranuma/config.h b/keyboards/uranuma/config.h
index e4a62d88e5..f2f8d0e54c 100644
--- a/keyboards/uranuma/config.h
+++ b/keyboards/uranuma/config.h
@@ -203,34 +203,6 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/uranuma/rules.mk b/keyboards/uranuma/rules.mk
index d30114df48..9f06db70ca 100644
--- a/keyboards/uranuma/rules.mk
+++ b/keyboards/uranuma/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
#COMBO_ENABLE = yes
#SRC += .nicola.c \
diff --git a/keyboards/wallaby/config.h b/keyboards/wallaby/config.h
index 11fa674a83..28ac9f3f87 100644
--- a/keyboards/wallaby/config.h
+++ b/keyboards/wallaby/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/wallaby/rules.mk b/keyboards/wallaby/rules.mk
index 1f9b6d4daa..1cec284562 100644
--- a/keyboards/wallaby/rules.mk
+++ b/keyboards/wallaby/rules.mk
@@ -29,6 +29,5 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = tkl_ansi
diff --git a/keyboards/westfoxtrot/cyclops/config.h b/keyboards/westfoxtrot/cyclops/config.h
index 3af6070310..0a28a4a4e1 100644
--- a/keyboards/westfoxtrot/cyclops/config.h
+++ b/keyboards/westfoxtrot/cyclops/config.h
@@ -176,32 +176,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/westfoxtrot/cyclops/rules.mk b/keyboards/westfoxtrot/cyclops/rules.mk
index 03b28cbeff..6f062970b9 100644
--- a/keyboards/westfoxtrot/cyclops/rules.mk
+++ b/keyboards/westfoxtrot/cyclops/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/westfoxtrot/cypher/rev1/rules.mk b/keyboards/westfoxtrot/cypher/rev1/rules.mk
index ccf5ec1ea0..4b0dc19ae7 100644
--- a/keyboards/westfoxtrot/cypher/rev1/rules.mk
+++ b/keyboards/westfoxtrot/cypher/rev1/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/westfoxtrot/cypher/rev5/rules.mk b/keyboards/westfoxtrot/cypher/rev5/rules.mk
index a41c12af59..813f51cd95 100644
--- a/keyboards/westfoxtrot/cypher/rev5/rules.mk
+++ b/keyboards/westfoxtrot/cypher/rev5/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/wheatfield/blocked65/config.h b/keyboards/wheatfield/blocked65/config.h
index fb27788182..486e01bfc6 100644
--- a/keyboards/wheatfield/blocked65/config.h
+++ b/keyboards/wheatfield/blocked65/config.h
@@ -1,5 +1,5 @@
/*
-Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
+Copyright 2019 Evy Dekkers
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/keyboards/wheatfield/blocked65/rules.mk b/keyboards/wheatfield/blocked65/rules.mk
index b572f2e41e..b3671d9ea8 100644
--- a/keyboards/wheatfield/blocked65/rules.mk
+++ b/keyboards/wheatfield/blocked65/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI controls
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
UNICODE_ENABLE = no # Unicode
LAYOUTS = 65_ansi_blocker
diff --git a/keyboards/wsk/gothic50/rules.mk b/keyboards/wsk/gothic50/rules.mk
index ea21d62b3f..ee4f3b1a30 100644
--- a/keyboards/wsk/gothic50/rules.mk
+++ b/keyboards/wsk/gothic50/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/wsk/gothic70/rules.mk b/keyboards/wsk/gothic70/rules.mk
index ea21d62b3f..ee4f3b1a30 100644
--- a/keyboards/wsk/gothic70/rules.mk
+++ b/keyboards/wsk/gothic70/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/wsk/tkl30/rules.mk b/keyboards/wsk/tkl30/rules.mk
index ad1dd34548..49bc458d59 100644
--- a/keyboards/wsk/tkl30/rules.mk
+++ b/keyboards/wsk/tkl30/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/xbows/nature/rules.mk b/keyboards/xbows/nature/rules.mk
index 62359d9aa5..7eaceaa678 100644
--- a/keyboards/xbows/nature/rules.mk
+++ b/keyboards/xbows/nature/rules.mk
@@ -20,4 +20,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output
-RGB_MATRIX_ENABLE = IS31FL3731
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = IS31FL3731
diff --git a/keyboards/xbows/woody/rules.mk b/keyboards/xbows/woody/rules.mk
index 147acc58cc..a1a6e78db0 100644
--- a/keyboards/xbows/woody/rules.mk
+++ b/keyboards/xbows/woody/rules.mk
@@ -12,5 +12,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
AUDIO_ENABLE = no
-RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_ENABLE = yes # Use RGB matrix
+RGB_MATRIX_DRIVER = IS31FL3731
NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
diff --git a/keyboards/xd002/rules.mk b/keyboards/xd002/rules.mk
index 1142142bfc..ed51953c7f 100644
--- a/keyboards/xd002/rules.mk
+++ b/keyboards/xd002/rules.mk
@@ -25,7 +25,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# Save as much space as we can...
LTO_ENABLE = yes
diff --git a/keyboards/xd68/rules.mk b/keyboards/xd68/rules.mk
index e479673959..acab5aae50 100644
--- a/keyboards/xd68/rules.mk
+++ b/keyboards/xd68/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
UNICODE_ENABLE = no # Unicode
LAYOUTS = 65_ansi 65_ansi_split_bs 65_iso
diff --git a/keyboards/xd75/config.h b/keyboards/xd75/config.h
index 57ca4001ff..2958a49ebe 100644
--- a/keyboards/xd75/config.h
+++ b/keyboards/xd75/config.h
@@ -20,12 +20,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "config_common.h"
/* USB Device descriptor parameter */
-#define VENDOR_ID 0x7844 // "XD"
-#define PRODUCT_ID 0x7575
-#define DEVICE_VER 0x0001
-#define MANUFACTURER xiudi
-#define PRODUCT XD75
-#define DESCRIPTION XD75Re 15x5 ortholinear keyboard
+#define VENDOR_ID 0x7844 // "XD"
+#define PRODUCT_ID 0x7575
+#define DEVICE_VER 0x0001
+#define MANUFACTURER xiudi
+#define PRODUCT XD75
/* key matrix size */
#define MATRIX_ROWS 5
@@ -45,12 +44,41 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3, B0 }
#define UNUSED_PINS
-/* COL2ROW, ROW2COL*/
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
#define BACKLIGHT_PIN F5
#define BACKLIGHT_LEVELS 6
#define BACKLIGHT_ON_STATE 0
+//#define BACKLIGHT_BREATHING
+
+#define RGB_DI_PIN F6
+#ifdef RGB_DI_PIN
+# define RGBLED_NUM 6
+# define RGBLIGHT_HUE_STEP 12
+# define RGBLIGHT_SAT_STEP 25
+# define RGBLIGHT_VAL_STEP 12
+//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+# define RGBLIGHT_ANIMATIONS
+/*== or choose animations ==*/
+//# define RGBLIGHT_EFFECT_BREATHING
+//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
+//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+//# define RGBLIGHT_EFFECT_SNAKE
+//# define RGBLIGHT_EFFECT_KNIGHT
+//# define RGBLIGHT_EFFECT_CHRISTMAS
+//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
+//# define RGBLIGHT_EFFECT_RGB_TEST
+//# define RGBLIGHT_EFFECT_ALTERNATING
+/*== customize breathing effect ==*/
+/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+/*==== use exp() and sin() ====*/
+//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
@@ -58,13 +86,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* define if matrix has ghost (lacks anti-ghosting diodes) */
//#define MATRIX_HAS_GHOST
-/* number of backlight levels */
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+//#define GRAVE_ESC_CTRL_OVERRIDE
+
/*
* Force NKRO
*
@@ -87,54 +118,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define FORCE_NKRO
/*
- * Magic Key Options
- *
- * Magic keys are hotkey commands that allow control over firmware functions of
- * the keyboard. They are best used in combination with the HID Listen program,
- * found here: https://www.pjrc.com/teensy/hid_listen.html
- *
- * The options below allow the magic key functionality to be changed. This is
- * useful if your keyboard/keypad is missing keys and you want magic key support.
- *
- */
-
-/* control how magic key switches layers */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
-
-/* override magic key keymap */
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
-//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
-//#define MAGIC_KEY_HELP1 H
-//#define MAGIC_KEY_HELP2 SLASH
-//#define MAGIC_KEY_DEBUG D
-//#define MAGIC_KEY_DEBUG_MATRIX X
-//#define MAGIC_KEY_DEBUG_KBD K
-//#define MAGIC_KEY_DEBUG_MOUSE M
-//#define MAGIC_KEY_VERSION V
-//#define MAGIC_KEY_STATUS S
-//#define MAGIC_KEY_CONSOLE C
-//#define MAGIC_KEY_LAYER0_ALT1 ESC
-//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
-//#define MAGIC_KEY_LAYER0 0
-//#define MAGIC_KEY_LAYER1 1
-//#define MAGIC_KEY_LAYER2 2
-//#define MAGIC_KEY_LAYER3 3
-//#define MAGIC_KEY_LAYER4 4
-//#define MAGIC_KEY_LAYER5 5
-//#define MAGIC_KEY_LAYER6 6
-//#define MAGIC_KEY_LAYER7 7
-//#define MAGIC_KEY_LAYER8 8
-//#define MAGIC_KEY_LAYER9 9
-//#define MAGIC_KEY_BOOTLOADER PAUSE
-//#define MAGIC_KEY_LOCK CAPS
-//#define MAGIC_KEY_EEPROM E
-//#define MAGIC_KEY_NKRO N
-//#define MAGIC_KEY_SLEEP_LED Z
-
-/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
@@ -149,36 +132,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
+
+/* disable these deprecated features by default */
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-// ws2812 options
-#define RGB_DI_PIN F6 // pin the DI on the ws2812 is hooked-up to
-#define RGBLIGHT_ANIMATIONS // run RGB animations
-#define RGBLED_NUM 6 // number of LEDs
-#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
-#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation
-#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)
-
-/*
- * MIDI options
- */
-
-/* Prevent use of disabled MIDI features in the keymap */
-//#define MIDI_ENABLE_STRICT 1
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-//#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 1
+/* Bootmagic Lite key configuration */
+//#define BOOTMAGIC_LITE_ROW 0
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/xd75/keymaps/adi/keymap.c b/keyboards/xd75/keymaps/adi/keymap.c
index 4f9e414c1c..aa45d598e3 100644
--- a/keyboards/xd75/keymaps/adi/keymap.c
+++ b/keyboards/xd75/keymaps/adi/keymap.c
@@ -40,68 +40,68 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = { /* QWERTY */
- { KC_GRAVE,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
- { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INSERT },
- { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_MOUSE, KC_SCLN), LT(_MEDIA, KC_QUOT), LT(_ENTFN, KC_ENT), LT(_ENTFN, KC_ENT), KC_PGUP },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
- { KC_LCTL, MO(_FN), KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), LT(_ENTFN, KC_ENT), KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT },
- },
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_GRAVE,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INSERT,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_MOUSE, KC_SCLN), LT(_MEDIA, KC_QUOT), LT(_ENTFN, KC_ENT), LT(_ENTFN, KC_ENT), KC_PGUP,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
+ KC_LCTL, MO(_FN), KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), LT(_ENTFN, KC_ENT), KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
/* LOWERED
*/
- [_LW] = { /* LOWERED */
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL },
- { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS },
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______ },
- { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END },
- },
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
/* RAISED
*/
- [_RS] = { /* RAISED */
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL },
- { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS },
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______ },
- { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END },
- },
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
/* FUNCTION
*/
- [_FN] = { /* FUNCTION */
- { RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL },
- { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR },
- { KC_CAPS, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______ },
- { RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_PGUP, KC_WH_D },
- { _______ , _______, AG_SWAP, AG_NORM, _______, KC_BTN1, KC_BTN1, _______, AG_NORM, AG_SWAP, _______, _______, KC_HOME, KC_PGDN, KC_END },
- },
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
+ KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
+ KC_CAPS, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_PGUP, KC_WH_D,
+ _______ , _______, AG_SWAP, AG_NORM, _______, KC_BTN1, KC_BTN1, _______, AG_NORM, AG_SWAP, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
- [_ENTFN] = { /* Enter FN */
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, M(M_PTAB), M(M_NTAB), M(M_PSPC), M(M_NSPC), _______, _______, _______, _______, M(M_ZOUT), M(M_ZOIN), _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______ },
- { _______, M(M_BACK), M(M_FWRD), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
- [_MEDIA] = { /* Media */
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, KC_VOLU, _______, _______, _______, _______, _______, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, _______, _______, _______ },
- { _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
- [_MOUSE] = { /* Mouse */
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
+ [_ENTFN] = LAYOUT_ortho_5x15( /* Enter FN */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, M(M_PTAB), M(M_NTAB), M(M_PSPC), M(M_NSPC), _______, _______, _______, _______, M(M_ZOUT), M(M_ZOIN), _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______,
+ _______, M(M_BACK), M(M_FWRD), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_MEDIA] = LAYOUT_ortho_5x15( /* Media */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_VOLU, _______, _______, _______, _______, _______, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, _______, _______, _______,
+ _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_MOUSE] = LAYOUT_ortho_5x15( /* Mouse */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
diff --git a/keyboards/xd75/keymaps/arpinfidel/keymap.c b/keyboards/xd75/keymaps/arpinfidel/keymap.c
index d8890db51a..d6681e786a 100644
--- a/keyboards/xd75/keymaps/arpinfidel/keymap.c
+++ b/keyboards/xd75/keymaps/arpinfidel/keymap.c
@@ -41,13 +41,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_QW] = { /* QWERTY */
- { KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MINS, KC_GRV , KC_EQL , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSPC },
- { KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_LBRC, KC_RBRC, KC_BSLS, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_QUOT },
- { KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_UP , KC_DEL , KC_DOWN, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_ENT },
- { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_HOME, KC_PGUP, KC_END , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT },
- { KC_LCTL, TT(_FN), KC_LGUI, KC_LALT, KC_SPC , KC_SPC , TT(_FN), KC_PGDN, TT(_FN), KC_BSPC, KC_BSPC, KC_RALT, KC_RGUI, TT(_FN), KC_RCTL },
- },
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MINS, KC_GRV , KC_EQL , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSPC,
+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_LBRC, KC_RBRC, KC_BSLS, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_QUOT,
+ KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_UP , KC_DEL , KC_DOWN, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_ENT,
+ KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_HOME, KC_PGUP, KC_END , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
+ KC_LCTL, TT(_FN), KC_LGUI, KC_LALT, KC_SPC , KC_SPC , TT(_FN), KC_PGDN, TT(_FN), KC_BSPC, KC_BSPC, KC_RALT, KC_RGUI, TT(_FN), KC_RCTL
+ ),
/* FUNCTION
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -63,13 +63,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_FN] = { /* FUNCTION */
- { KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, RGB_HUD, _______, RGB_HUI, KC_F7, KC_F8, KC_F9, KC_F10 , KC_F11 , KC_F12 },
- { KC_WH_U, _______, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, RGB_SAD, _______, RGB_SAI, KC_LBRC, KC_RBRC, KC_UP , _______ , KC_EQL , KC_BSLS },
- { KC_WH_D, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, RGB_VAD, _______, RGB_VAI, KC_MINS, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______ },
- { _______, _______, _______, _______, _______, _______, RGB_RMOD,A_BL_TG, RGB_MOD, _______, _______, _______, _______ , _______, _______ },
- { _______, TT(_FN), RGB_TOG, _______, KC_WH_L, KC_WH_R, TT(_FN), RESET , TT(_FN), KC_BTN1, KC_BTN2, _______, _______ , TT(_FN), _______ },
- }
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, RGB_HUD, _______, RGB_HUI, KC_F7, KC_F8, KC_F9, KC_F10 , KC_F11 , KC_F12,
+ KC_WH_U, _______, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, RGB_SAD, _______, RGB_SAI, KC_LBRC, KC_RBRC, KC_UP , _______ , KC_EQL , KC_BSLS,
+ KC_WH_D, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, RGB_VAD, _______, RGB_VAI, KC_MINS, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, RGB_RMOD,A_BL_TG, RGB_MOD, _______, _______, _______, _______ , _______, _______,
+ _______, TT(_FN), RGB_TOG, _______, KC_WH_L, KC_WH_R, TT(_FN), RESET , TT(_FN), KC_BTN1, KC_BTN2, _______, _______ , TT(_FN), _______
+ )
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
diff --git a/keyboards/xd75/keymaps/atomic_style/keymap.c b/keyboards/xd75/keymaps/atomic_style/keymap.c
index bdbbc4af33..9bd1e58a05 100644
--- a/keyboards/xd75/keymaps/atomic_style/keymap.c
+++ b/keyboards/xd75/keymaps/atomic_style/keymap.c
@@ -42,13 +42,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_QW] = { /* QWERTY */
- { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
- { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
- { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
- { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT },
- },
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
+ M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -64,13 +64,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_CM] = { /* COLEMAK */
- { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
- { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
- { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
- { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT },
- },
+ [_CM] = LAYOUT_ortho_5x15( /* COLEMAK */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
+ M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
/* DVORAK - MIT ENHANCED / GRID COMPATIBLE
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -86,13 +86,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_DV] = { /* DVORAK */
- { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
- { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
- { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP },
- { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
- { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT },
- },
+ [_DV] = LAYOUT_ortho_5x15( /* DVORAK */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
+ M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
/* LOWERED
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -108,13 +108,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_LW] = { /* LOWERED */
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ },
- { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS },
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______ },
- { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
/* RAISED
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -130,13 +130,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_RS] = { /* RAISED */
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ },
- { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS },
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______ },
- { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
/* FUNCTION
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -152,13 +152,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_FN] = { /* FUNCTION */
- { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ },
- { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR },
- { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U },
- { RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_MS_U, KC_WH_D },
- { RESET , _______, DF(_QW), DF(_CM), DF(_DV), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R },
- },
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
+ KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_MS_U, KC_WH_D,
+ RESET , _______, DF(_QW), DF(_CM), DF(_DV), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
+ )
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
diff --git a/keyboards/xd75/keymaps/boy_314/keymap.c b/keyboards/xd75/keymaps/boy_314/keymap.c
index e51a26544c..01c3a3626a 100644
--- a/keyboards/xd75/keymaps/boy_314/keymap.c
+++ b/keyboards/xd75/keymaps/boy_314/keymap.c
@@ -27,13 +27,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_DV] = { /* DVORAK */
- { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
- { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRC, KC_UP, KC_RBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH },
- { LCTL_T(KC_CAPS), KC_A, KC_O, KC_E, KC_U, KC_I, KC_LEFT, KC_DOWN, KC_RGHT, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT },
- { KC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_PGDN, KC_UP, KC_PGUP, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC },
- { KC_LCTL, KC_DEL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(_FN2),KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT },
- },
+ [_DV] = LAYOUT_ortho_5x15( /* DVORAK */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRC, KC_UP, KC_RBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
+ LCTL_T(KC_CAPS), KC_A, KC_O, KC_E, KC_U, KC_I, KC_LEFT, KC_DOWN, KC_RGHT, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT,
+ KC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_PGDN, KC_UP, KC_PGUP, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC,
+ KC_LCTL, KC_DEL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(_FN2),KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ ),
/* QWERTY
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -49,13 +49,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_QW] = { /* QWERTY */
- { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
- { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT },
- { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
- { KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC },
- { KC_LCTL, KC_DEL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(_FN2),KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT },
- },
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENT,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
+ KC_LCTL, KC_DEL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(_FN2),KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ ),
/* NUMPAD
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -71,13 +71,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_NP] = { /* NUMPAD */
- { _______, _______, _______, _______, _______, _______, KC_SLSH, KC_ASTR, KC_MINS, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, KC_0, KC_PLUS, KC_DOT, _______, _______, _______, _______, _______, _______ },
- },
+ [_NP] = LAYOUT_ortho_5x15( /* NUMPAD */
+ _______, _______, _______, _______, _______, _______, KC_SLSH, KC_ASTR, KC_MINS, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_0, KC_PLUS, KC_DOT, _______, _______, _______, _______, _______, _______
+ ),
/* FUNCTION1
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -93,13 +93,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_FN1] = { /* FUNCTION1 */
- { KC_GRV , KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC },
- { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, RESET, RGB_HUD, RGB_HUI, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
- { KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, RGB_SAD, RGB_SAI, TO(_DV), KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE },
- { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_VAD, RGB_VAI, TO(_QW), _______, _______, KC_HOME, KC_END, _______ },
- { _______, _______, _______, _______, _______, _______, _______,RGB_RMOD, RGB_MOD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY },
- },
+ [_FN1] = LAYOUT_ortho_5x15( /* FUNCTION1 */
+ KC_GRV , KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, RESET, RGB_HUD, RGB_HUI, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, RGB_SAD, RGB_SAI, TO(_DV), KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_VAD, RGB_VAI, TO(_QW), _______, _______, KC_HOME, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______,RGB_RMOD, RGB_MOD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ ),
/* FUNCTION2
@@ -116,13 +116,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_FN2] = { /* FUNCTION2 */
- { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
- { KC_GRV, _______, _______, KC_UP, _______, _______, RESET, RGB_HUD, RGB_HUI, TG(_NP), _______, _______, _______, _______, KC_DEL },
- { KC_DEL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, RGB_SAD, RGB_SAI, TG(_DV), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS },
- { _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, TG(_QW), _______, _______, KC_PGDN, KC_PGUP, _______ },
- { _______, _______, _______, _______, _______, _______, _______,RGB_RMOD, RGB_MOD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY },
- }
+ [_FN2] = LAYOUT_ortho_5x15( /* FUNCTION2 */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_GRV, _______, _______, KC_UP, _______, _______, RESET, RGB_HUD, RGB_HUI, TG(_NP), _______, _______, _______, _______, KC_DEL,
+ KC_DEL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, RGB_SAD, RGB_SAI, TG(_DV), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, TG(_QW), _______, _______, KC_PGDN, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, _______,RGB_RMOD, RGB_MOD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ )
};
diff --git a/keyboards/xd75/keymaps/bramver/keymap.c b/keyboards/xd75/keymaps/bramver/keymap.c
index 0d60915231..7cbb0bae82 100644
--- a/keyboards/xd75/keymaps/bramver/keymap.c
+++ b/keyboards/xd75/keymaps/bramver/keymap.c
@@ -50,45 +50,45 @@ const uint32_t PROGMEM unicode_map[] = {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = {
- { KC_GESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MPRV , KC_MPLY , KC_MNXT , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSPC },
- { KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_MINS , KC_EQL , KC_BSLS , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_ENT },
- { MO(3) , KC_A , KC_S , KC_D , KC_F , KC_G , KC_LBRC , KC_MUTE , KC_RBRC , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT },
- { KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_HOME , KC_SLEP , KC_END , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT },
- { KC_LCTL , MO(4) , KC_LALT , KC_LGUI , KC_SPC , KC_SPC , MO(1) , KC_DEL , MO(2) , KC_SPC , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , KC_RGUI },
- },
+ [_BASE] = LAYOUT_ortho_5x15(
+ KC_GESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MPRV , KC_MPLY , KC_MNXT , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSPC,
+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_MINS , KC_EQL , KC_BSLS , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_ENT ,
+ MO(3) , KC_A , KC_S , KC_D , KC_F , KC_G , KC_LBRC , KC_MUTE , KC_RBRC , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT,
+ KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_HOME , KC_SLEP , KC_END , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT,
+ KC_LCTL , MO(4) , KC_LALT , KC_LGUI , KC_SPC , KC_SPC , MO(1) , KC_DEL , MO(2) , KC_SPC , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , KC_RGUI,
+ ),
- [_LOWER] = {
- { _______ , _______ , _______ , _______ , _______ , _______ , BL_TOGG , BL_DEC , BL_INC , _______ , _______ , _______ , _______ , _______ , _______ },
- { _______ , KC_WH_L , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_U , BL_STEP , RGB_TOG , RGB_MOD , _______ , _______ , _______ , _______ , _______ , _______ },
- { _______ , KC_WH_R , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_D , RGB_HUI , RGB_HUD , RGB_SAI , _______ , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , _______ },
- { _______ , _______ , _______ , _______ , _______ , _______ , RGB_SAD , RGB_VAI , RGB_VAD , _______ , _______ , _______ , _______ , _______ , _______ },
- { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ },
- },
+ [_LOWER] = LAYOUT_ortho_5x15(
+ _______ , _______ , _______ , _______ , _______ , _______ , BL_TOGG , BL_DEC , BL_INC , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , KC_WH_L , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_U , BL_STEP , RGB_TOG , RGB_MOD , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , KC_WH_R , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_D , RGB_HUI , RGB_HUD , RGB_SAI , _______ , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , RGB_SAD , RGB_VAI , RGB_VAD , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
+ ),
- [_LINVERT] = {
- { _______ , _______ , _______ , _______ , _______ , _______ , BL_TOGG , BL_DEC , BL_INC , _______ , _______ , _______ , _______ , _______ , _______ },
- { _______ , _______ , _______ , _______ , _______ , _______ , BL_STEP , RGB_TOG , RGB_MOD , KC_WH_U , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_L , _______ },
- { _______ , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , _______ , RGB_SAI , RGB_HUI , RGB_HUD , KC_WH_D , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_R , _______ },
- { _______ , _______ , _______ , _______ , _______ , _______ , RGB_SAD , RGB_VAI , RGB_VAD , _______ , _______ , _______ , _______ , _______ , _______ },
- { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ },
- },
+ [_LINVERT] = LAYOUT_ortho_5x15(
+ _______ , _______ , _______ , _______ , _______ , _______ , BL_TOGG , BL_DEC , BL_INC , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , BL_STEP , RGB_TOG , RGB_MOD , KC_WH_U , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_L , _______,
+ _______ , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , _______ , RGB_SAI , RGB_HUI , RGB_HUD , KC_WH_D , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_R , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , RGB_SAD , RGB_VAI , RGB_VAD , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
+ ),
- [_RAISE] = {
- { KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______ , _______ , _______ , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 },
- { _______ , _______ , KC_7 , KC_8 , KC_9 , _______ , _______ , _______ , _______ , _______ , KC_MUTE , KC_VOLD , KC_VOLU , _______ , _______ },
- { _______ , _______ , KC_4 , KC_5 , KC_6 , _______ , _______ , _______ , _______ , _______ , KC_MPRV , KC_MPLY , KC_MNXT , _______ , _______ },
- { _______ , _______ , KC_1 , KC_2 , KC_3 , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ },
- { _______ , _______ , _______ , KC_0 , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ },
- },
+ [_RAISE] = LAYOUT_ortho_5x15(
+ KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______ , _______ , _______ , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 ,
+ _______ , _______ , KC_7 , KC_8 , KC_9 , _______ , _______ , _______ , _______ , _______ , KC_MUTE , KC_VOLD , KC_VOLU , _______ , _______,
+ _______ , _______ , KC_4 , KC_5 , KC_6 , _______ , _______ , _______ , _______ , _______ , KC_MPRV , KC_MPLY , KC_MNXT , _______ , _______,
+ _______ , _______ , KC_1 , KC_2 , KC_3 , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , _______ , _______ , KC_0 , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
+ ),
- [_EMOJIFY] = {
- { TO(0) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , RESET },
- { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ },
- { _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , _______ , _______ , _______ , X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______ },
- { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ },
- { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ },
- },
+ [_EMOJIFY] = LAYOUT_ortho_5x15(
+ TO(0) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , RESET ,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , _______ , _______ , _______ , X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
+ )
};
@@ -98,12 +98,12 @@ void matrix_init_user(void) {
}
/* Template for future layers
- [_LAYER_NAME] = {
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
- }
+ [_LAYER_NAME] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
};
*/
diff --git a/keyboards/xd75/keymaps/c4software_bepo/keymap.c b/keyboards/xd75/keymaps/c4software_bepo/keymap.c
index 2c70f28760..0eb202dd32 100644
--- a/keyboards/xd75/keymaps/c4software_bepo/keymap.c
+++ b/keyboards/xd75/keymaps/c4software_bepo/keymap.c
@@ -36,13 +36,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_BP] = { /* BepoDev */
- { KC_ESC, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, BP_PERCENT, KC_VOLD, KC_VOLU, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTR, BP_EQUAL },
- { KC_TAB, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_DOLLAR, BP_E_GRAVE, KC_DEL, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z, BP_CCED },
- { KC_RALT, BP_A, BP_U, BP_I, BP_E, BP_COMMA, KC_BSPC, KC_ENT, BP_C, BP_T, BP_S, BP_R, BP_N, BP_M, BP_W },
- { KC_LSFT, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_BSPC, KC_ENT, BP_APOS, BP_Q, BP_G, BP_H, BP_F, KC_UP, KC_RSFT },
- { KC_LALT, KC_LCTL, MO(_FN), KC_LGUI, KC_SPC, KC_SPC, KC_RALT, KC_RALT, KC_SPC, KC_SPC, KC_RGUI, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT },
- },
+ [_BP] = LAYOUT_ortho_5x15( /* BepoDev */
+ KC_ESC, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, BP_PERCENT, KC_VOLD, KC_VOLU, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTR, BP_EQUAL,
+ KC_TAB, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_DOLLAR, BP_E_GRAVE, KC_DEL, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z, BP_CCED,
+ KC_RALT, BP_A, BP_U, BP_I, BP_E, BP_COMMA, KC_BSPC, KC_ENT, BP_C, BP_T, BP_S, BP_R, BP_N, BP_M, BP_W,
+ KC_LSFT, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_BSPC, KC_ENT, BP_APOS, BP_Q, BP_G, BP_H, BP_F, KC_UP, KC_RSFT,
+ KC_LALT, KC_LCTL, MO(_FN), KC_LGUI, KC_SPC, KC_SPC, KC_RALT, KC_RALT, KC_SPC, KC_SPC, KC_RGUI, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
/* FUNCTION
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -58,13 +58,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_FN] = { /* FUNCTION */
- { KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_SLSH, KC_ASTR, KC_F9, KC_F10, KC_F11, KC_F12 },
- { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_MINS, RGB_TOG, RGB_MOD, RGB_HUI },
- { KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PLUS, RGB_SAI, RGB_SAD, RGB_VAI },
- { KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_ENT, RGB_VAD, KC_HOME, RGB_HUD },
- { RESET, KC_TRNS, MO(_FN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_0, KC_KP_0, KC_PDOT, MO(_FN), KC_TRNS, KC_END, KC_TRNS },
- }
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_SLSH, KC_ASTR, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_MINS, RGB_TOG, RGB_MOD, RGB_HUI,
+ KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PLUS, RGB_SAI, RGB_SAD, RGB_VAI,
+ KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_ENT, RGB_VAD, KC_HOME, RGB_HUD,
+ RESET, KC_TRNS, MO(_FN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_0, KC_KP_0, KC_PDOT, MO(_FN), KC_TRNS, KC_END, KC_TRNS
+ )
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
diff --git a/keyboards/xd75/keymaps/daniel/keymap.c b/keyboards/xd75/keymaps/daniel/keymap.c
index 2804a6cd0d..e9f2740b15 100644
--- a/keyboards/xd75/keymaps/daniel/keymap.c
+++ b/keyboards/xd75/keymaps/daniel/keymap.c
@@ -5,25 +5,25 @@
#define _NM 2
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = {
- { KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_GRV , KC_BSPC },
- { KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
- { MO(_NV), KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , MO(_NM), KC_PGUP },
- { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, KC_RSFT, KC_UP , KC_PGDN },
- { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_APP , KC_LEFT, KC_DOWN, KC_RGHT },
- },
- [_NV] = {
- { KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______ },
- { _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______, _______, _______, _______ },
- { _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
- [_NM] = {
- { _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- }
+ [_QW] = LAYOUT_ortho_5x15(
+ KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_GRV , KC_BSPC,
+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ MO(_NV), KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , MO(_NM), KC_PGUP,
+ KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, KC_RSFT, KC_UP , KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_APP , KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [_NV] = LAYOUT_ortho_5x15(
+ KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______,
+ _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______, _______, _______, _______,
+ _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_NM] = LAYOUT_ortho_5x15(
+ _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
};
diff --git a/keyboards/xd75/keymaps/default/keymap.c b/keyboards/xd75/keymaps/default/keymap.c
index 0e5c7dbaaa..68441d1728 100644
--- a/keyboards/xd75/keymaps/default/keymap.c
+++ b/keyboards/xd75/keymaps/default/keymap.c
@@ -13,95 +13,54 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include QMK_KEYBOARD_H
-// Layer shorthand
-#define _QW 0
-#define _FN 1
+#include QMK_KEYBOARD_H
-// Defines the keycodes used by our macros in process_record_user
-enum custom_keycodes {
- QMKBEST = SAFE_RANGE,
- QMKURL
+enum layer_names {
+ _QW,
+ _FN
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | A | S | D | F | G | HOME | DEL | PG UP | H | J | K | L | ; | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | END | UP | PG DN | N | M | , | . | / | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | LEFT | DOWN | RIGHT | SPACE | SPACE | FN | RALT | RGUI | RCTRL |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_RGUI, KC_RCTL
+ ),
-/* QWERTY
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | ' |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
- * | CAP LK | A | S | D | F | G | HOME | DEL | PG UP | H | J | K | L | ; | ENTER |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
- * | LSHIFT | Z | X | C | V | B | END | UP | PG DN | N | M | , | . | / | RSHIFT |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
- * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | LEFT | DOWN | RIGHT | SPACE | SPACE | FN | RALT | RGUI | RCTRL |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_RGUI, KC_RCTL
- ),
-
-/* FUNCTION
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | NUM LK | P/ | P* | F7 | F8 | F9 | F10 | F11 | F12 |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | SELECT | CALC | MYCOMP | MAIL | RGB HD | RGB HI | P7 | P8 | P9 | - | | | PR SCR | SCR LK | PAUSE |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | PREV | PLAY | NEXT | STOP | RGB SD | RGB SI | P4 | P5 | P6 | + | | RESET | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | VOL- | MUTE | VOL+ | APP | RGB VD | RGB VI | P1 | P2 | P3 | PENT | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | RGB TG | FN | RGB RMD| RGB MD | P0 | | P. | PENT | PENT | FN | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NLCK, KC_SLSH, KC_ASTR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,
- KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______,
- KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
- _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______
- )
+ /* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | NUM LK | P/ | P* | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | SELECT | CALC | MYCOMP | MAIL | RGB HD | RGB HI | P7 | P8 | P9 | - | | | PR SCR | SCR LK | PAUSE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | PREV | PLAY | NEXT | STOP | RGB SD | RGB SI | P4 | P5 | P6 | + | | RESET | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | VOL- | MUTE | VOL+ | APP | RGB VD | RGB VI | P1 | P2 | P3 | PENT | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | RGB TG | FN | RGB RMD| RGB MD | P0 | | P. | PENT | PENT | FN | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NLCK, KC_SLSH, KC_ASTR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______,
+ KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
+ _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______
+ )
};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QMKBEST:
- if (record->event.pressed) {
- // when keycode QMKBEST is pressed
- SEND_STRING("QMK is the best thing ever!");
- } else {
- // when keycode QMKBEST is released
- }
- break;
- case QMKURL:
- if (record->event.pressed) {
- // when keycode QMKURL is pressed
- SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
- } else {
- // when keycode QMKURL is released
- }
- break;
- }
- return true;
-}
-
-void matrix_init_user(void) {
-
-}
-
-void matrix_scan_user(void) {
-
-}
-
-void led_set_user(uint8_t usb_led) {
-
-}
diff --git a/keyboards/xd75/keymaps/developper_bepo/keymap.c b/keyboards/xd75/keymaps/developper_bepo/keymap.c
index b23639a0d0..7fedb7fb63 100644
--- a/keyboards/xd75/keymaps/developper_bepo/keymap.c
+++ b/keyboards/xd75/keymaps/developper_bepo/keymap.c
@@ -37,13 +37,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_BP] = { /* BepoDev */
- { BP_DOLLAR, BP_DQOT, BP_LCBR, BP_RCBR, BP_LPRN, BP_RPRN, KC_VOLD, KC_MUTE, KC_VOLU, BP_PLUS, BP_MINUS,BP_SLASH,BP_ASTR, BP_EQL, BP_PERC },
- { KC_TAB, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_KP_7, KC_KP_8, KC_KP_9, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z },
- { KC_ESC, BP_A, BP_U, BP_I, BP_E, BP_COMMA, KC_HOME, KC_KP_5, KC_END, BP_C, BP_T, BP_S, BP_R, BP_N, BP_M },
- { KC_LSFT, BP_W, BP_Y, BP_X, BP_DOT, BP_K, KC_PGUP, KC_END, KC_PGDOWN, BP_APOS, BP_Q, BP_G, BP_H, BP_F, KC_RSFT },
- { KC_LCTL, KC_LGUI, KC_RALT, KC_LGUI, BP_UNDS, LT(_FN,KC_ENT), KC_DEL, KC_KP_0, KC_BSPC, LT(_FN,KC_SPC), BP_UNDS, KC_RALT, KC_RALT, KC_RGUI, KC_LCTL },
- },
+ [_BP] = LAYOUT_ortho_5x15( /* BepoDev */
+ BP_DOLLAR, BP_DQOT, BP_LCBR, BP_RCBR, BP_LPRN, BP_RPRN, KC_VOLD, KC_MUTE, KC_VOLU, BP_PLUS, BP_MINUS,BP_SLASH,BP_ASTR, BP_EQL, BP_PERC,
+ KC_TAB, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_KP_7, KC_KP_8, KC_KP_9, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z,
+ KC_ESC, BP_A, BP_U, BP_I, BP_E, BP_COMMA, KC_HOME, KC_KP_5, KC_END, BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
+ KC_LSFT, BP_W, BP_Y, BP_X, BP_DOT, BP_K, KC_PGUP, KC_END, KC_PGDOWN, BP_APOS, BP_Q, BP_G, BP_H, BP_F, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_RALT, KC_LGUI, BP_UNDS, LT(_FN,KC_ENT), KC_DEL, KC_KP_0, KC_BSPC, LT(_FN,KC_SPC), BP_UNDS, KC_RALT, KC_RALT, KC_RGUI, KC_LCTL
+ ),
/* FUNCTION
@@ -61,12 +61,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
- [_FN] = { /* FUNCTION */
- { KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 },
- { _______, S(BP_DQOT), S(BP_LGIL), S(BP_RGIL), S(BP_LPRN), S(BP_RPRN), _______, _______, _______, S(BP_AT), S(BP_PLUS), S(BP_MINUS), S(BP_SLASH), S(BP_ASTR), S(BP_EQL) },
- { _______, RALT(BP_B), BP_BSLS, BP_LBRC, BP_RBRC, RALT(BP_P), _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______ },
- { _______, BP_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, BP_LESS, BP_GRTR, BP_AT , _______, _______ },
- { _______, _______, _______, _______, _______, LT(_FN,KC_ENT), _______, _______, _______, LT(_FN,KC_SPC), _______, _______, _______, _______, RESET },
- }
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ _______, S(BP_DQOT), S(BP_LGIL), S(BP_RGIL), S(BP_LPRN), S(BP_RPRN), _______, _______, _______, S(BP_AT), S(BP_PLUS), S(BP_MINUS), S(BP_SLASH), S(BP_ASTR), S(BP_EQL),
+ _______, RALT(BP_B), BP_BSLS, BP_LBRC, BP_RBRC, RALT(BP_P), _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______,
+ _______, BP_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, BP_LESS, BP_GRTR, BP_AT , _______, _______,
+ _______, _______, _______, _______, _______, LT(_FN,KC_ENT), _______, _______, _______, LT(_FN,KC_SPC), _______, _______, _______, _______, RESET
+ )
};
diff --git a/keyboards/xd75/keymaps/dyn_macro_tap_dance/keymap.c b/keyboards/xd75/keymaps/dyn_macro_tap_dance/keymap.c
index cf4bfb4dc5..220c85ddec 100644
--- a/keyboards/xd75/keymaps/dyn_macro_tap_dance/keymap.c
+++ b/keyboards/xd75/keymaps/dyn_macro_tap_dance/keymap.c
@@ -83,13 +83,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_QW] = { /* QWERTY */
- { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
- { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT },
- { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT },
- { KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, MCROTOG, KC_SPC, MO(_FN), KC_RALT, KC_RGUI, KC_RCTL },
- },
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, MCROTOG, KC_SPC, MO(_FN), KC_RALT, KC_RGUI, KC_RCTL
+ ),
/* FUNCTION
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -105,13 +105,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_FN] = { /* FUNCTION */
- { KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NLCK, KC_SLSH, KC_ASTR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 },
- { KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS },
- { KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______ },
- { KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______ },
- { _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______ },
- }
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NLCK, KC_SLSH, KC_ASTR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______,
+ KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
+ _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______
+ )
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
diff --git a/keyboards/xd75/keymaps/emilyh/keymap.c b/keyboards/xd75/keymaps/emilyh/keymap.c
index bea9863d5b..3197b6bde9 100644
--- a/keyboards/xd75/keymaps/emilyh/keymap.c
+++ b/keyboards/xd75/keymaps/emilyh/keymap.c
@@ -43,13 +43,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_QW] = { /* QWERTY */
- { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, KC_PSLS, KC_PAST, KC_PPLS },
- { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_P7, KC_P8, KC_P9 },
- { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_P4, KC_P5, KC_P6 },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, KC_P1, KC_P2, KC_P3 },
- { KC_LCTL, M(0), KC_LGUI, KC_LALT, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RIGHT,KC_P0, KC_PDOT, KC_PENT },
- },
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, KC_PSLS, KC_PAST, KC_PPLS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_P7, KC_P8, KC_P9,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_P4, KC_P5, KC_P6,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, KC_P1, KC_P2, KC_P3,
+ KC_LCTL, M(0), KC_LGUI, KC_LALT, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RIGHT,KC_P0, KC_PDOT, KC_PENT
+ ),
/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -65,13 +65,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_CM] = { /* COLEMAK */
- { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
- { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
- { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
- { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT },
- },
+ [_CM] = LAYOUT_ortho_5x15( /* COLEMAK */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
+ M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
/* DVORAK - MIT ENHANCED / GRID COMPATIBLE
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -87,13 +87,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_DV] = { /* DVORAK */
- { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
- { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
- { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP },
- { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
- { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT },
- },
+ [_DV] = LAYOUT_ortho_5x15( /* DVORAK */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
+ M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
/* LOWERED
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -109,13 +109,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_LW] = { /* LOWERED */
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ },
- { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS },
- { RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______ },
- { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS,
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
/* RAISED
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -131,13 +131,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_RS] = { /* RAISED */
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ },
- { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS },
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______ },
- { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
/* FUNCTION
* .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -153,13 +153,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_FN] = { /* FUNCTION */
- { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ },
- { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR },
- { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U },
- { RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_MS_U, KC_WH_D },
- { RESET , _______, DF(_QW), DF(_CM), DF(_DV), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R },
- },
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
+ KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_MS_U, KC_WH_D,
+ RESET , _______, DF(_QW), DF(_CM), DF(_DV), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
+ )
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
diff --git a/keyboards/xd75/keymaps/fabian/keymap.c b/keyboards/xd75/keymaps/fabian/keymap.c
index 7c51562686..0d59e4ce8f 100644
--- a/keyboards/xd75/keymaps/fabian/keymap.c
+++ b/keyboards/xd75/keymaps/fabian/keymap.c
@@ -64,13 +64,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl |
* `--------------------------------------------------------------------------------------------------------'
*/
-[_QWERTY] = {
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
- { CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
- { SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT },
- { KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL }
-},
+[_QWERTY] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT,
+ KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL
+),
/* Colemak
* ,--------------------------------------------------------------------------------------------------------.
@@ -85,13 +85,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl |
* `--------------------------------------------------------------------------------------------------------'
*/
-[_COLEMAK] = {
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC },
- { CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, _______, _______, _______, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT },
- { SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT },
- { KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL }
-},
+[_COLEMAK] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, _______, _______, _______, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT,
+ KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL
+),
/* Dvorak
* ,--------------------------------------------------------------------------------------------------------.
@@ -106,13 +106,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl |
* `--------------------------------------------------------------------------------------------------------'
*/
-[_DVORAK] = {
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, _______, _______, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC },
- { CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, _______, _______, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH },
- { SFT_BSP, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, _______, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT },
- { KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL }
-},
+[_DVORAK] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, _______, _______, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
+ CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, _______, _______, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
+ SFT_BSP, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, _______, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT,
+ KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL
+),
/* Lower
* ,--------------------------------------------------------------------------------------------------------.
@@ -127,13 +127,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | Next | Vol- | Vol+ | Play |
* `--------------------------------------------------------------------------------------------------------'
*/
-[_LOWER] = {
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC },
- { KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE },
- { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, KC_F12, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1 },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY }
-},
+[_LOWER] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, KC_F12, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
/* Raise
* ,--------------------------------------------------------------------------------------------------------.
@@ -148,13 +148,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | Next | Vol- | Vol+ | Play |
* `--------------------------------------------------------------------------------------------------------'
*/
-[_RAISE] = {
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
- { KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS },
- { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, KC_F12, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BTN2 },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY }
-},
+[_RAISE] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, KC_F12, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BTN2,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
/* Plover layer (http://opensteno.org)
* ,--------------------------------------------------------------------------------------------------------.
@@ -170,13 +170,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `--------------------------------------------------------------------------------------------------------'
*/
-[_PLOVER] = {
- { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
- { KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
- { XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC },
- { XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
- { EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX }
-},
+[_PLOVER] = LAYOUT_ortho_5x15(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1,
+ XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
+ XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
+),
/* Adjust (Lower + Raise)
* ,--------------------------------------------------------------------------------------------------------.
@@ -192,13 +192,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `--------------------------------------------------------------------------------------------------------'
*/
-[_ADJUST] = {
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_DEL },
- { _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______ },
- { _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, _______, _______, _______, MI_OFF, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
-}
+[_ADJUST] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_DEL,
+ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
+ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, _______, _______, _______, MI_OFF, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
};
#ifdef AUDIO_ENABLE
diff --git a/keyboards/xd75/keymaps/french/keymap.c b/keyboards/xd75/keymaps/french/keymap.c
index 547a67b6ef..f8de0763cc 100644
--- a/keyboards/xd75/keymaps/french/keymap.c
+++ b/keyboards/xd75/keymaps/french/keymap.c
@@ -23,13 +23,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_AZ] = { /* AZERTY */
- { FR_ESC, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPAR, FR_MINS, FR_EGRV, FR_UNDS, FR_CCED, FR_AGRV, FR_RPAR, FR_EQUA, FR_INST, FR_BSPC },
- { FR_TAB, FR_A, FR_Z, FR_E, FR_R, FR_T, FR_Y, FR_U, FR_I, FR_O, FR_P, FR_HAT, FR_DLR, FR_ENTR, FR_PGUP },
- { FR_CAPL, FR_Q, FR_S, FR_D, FR_F, FR_G, FR_H, FR_J, FR_K, FR_L, FR_M, FR_UGRV, FR_AST, FR_ENTR, FR_PGDN },
- { FR_LSFT, FR_W, FR_X, FR_C, FR_V, FR_B, FR_N, FR_COMM, FR_SCLN, FR_COLN, FR_EXCL, FR_LESS, FR_RSFT, FR_UP, FR_DEL },
- { FR_LCTR, FR_LCMD, FR_LALT, MO(_FN), FR_SPAC, FR_SPAC, FR_SPAC, FR_SPAC, FR_ALGR, FR_MENU, FR_HOME, FR_END, FR_LEFT, FR_DOWN, FR_RIGT },
- },
+ [_AZ] = LAYOUT_ortho_5x15( /* AZERTY */
+ FR_ESC, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPAR, FR_MINS, FR_EGRV, FR_UNDS, FR_CCED, FR_AGRV, FR_RPAR, FR_EQUA, FR_INST, FR_BSPC,
+ FR_TAB, FR_A, FR_Z, FR_E, FR_R, FR_T, FR_Y, FR_U, FR_I, FR_O, FR_P, FR_HAT, FR_DLR, FR_ENTR, FR_PGUP,
+ FR_CAPL, FR_Q, FR_S, FR_D, FR_F, FR_G, FR_H, FR_J, FR_K, FR_L, FR_M, FR_UGRV, FR_AST, FR_ENTR, FR_PGDN,
+ FR_LSFT, FR_W, FR_X, FR_C, FR_V, FR_B, FR_N, FR_COMM, FR_SCLN, FR_COLN, FR_EXCL, FR_LESS, FR_RSFT, FR_UP, FR_DEL,
+ FR_LCTR, FR_LCMD, FR_LALT, MO(_FN), FR_SPAC, FR_SPAC, FR_SPAC, FR_SPAC, FR_ALGR, FR_MENU, FR_HOME, FR_END, FR_LEFT, FR_DOWN, FR_RIGT
+ ),
/* FUNCTION
@@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_FN] = { /* FUNCTION */
- { FR_EMPT, FR_F1, FR_F2, FR_F3, FR_F4, FR_F5, FR_F6, FR_F7, FR_F8, FR_F9, FR_F10, FR_F11, FR_F12, FR_PSCR, BL_TOGG },
- { FR_EMPT, FR_MPRV, FR_MPLY, FR_MNXT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_NUML, FR_7, FR_8, FR_9, FR_MULT, FR_EMPT, BL_INC },
- { FR_EMPT, FR_MVDN, FR_MUTE, FR_MVUP, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_4, FR_5, FR_6, FR_MOIN, FR_EMPT, BL_DEC },
- { FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_1, FR_2, FR_3, FR_PLUS, FR_EMPT, BL_ON },
- { RESET, FR_EMPT, FR_EMPT, FR_TRANS, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_0, FR_DOT, FR_ENTK, FR_EMPT, BL_STEP },
- },
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ FR_EMPT, FR_F1, FR_F2, FR_F3, FR_F4, FR_F5, FR_F6, FR_F7, FR_F8, FR_F9, FR_F10, FR_F11, FR_F12, FR_PSCR, BL_TOGG,
+ FR_EMPT, FR_MPRV, FR_MPLY, FR_MNXT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_NUML, FR_7, FR_8, FR_9, FR_MULT, FR_EMPT, BL_INC,
+ FR_EMPT, FR_MVDN, FR_MUTE, FR_MVUP, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_4, FR_5, FR_6, FR_MOIN, FR_EMPT, BL_DEC,
+ FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_1, FR_2, FR_3, FR_PLUS, FR_EMPT, BL_ON,
+ RESET, FR_EMPT, FR_EMPT, FR_TRANS, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_0, FR_DOT, FR_ENTK, FR_EMPT, BL_STEP
+ )
};
diff --git a/keyboards/xd75/keymaps/germanized/keymap.c b/keyboards/xd75/keymaps/germanized/keymap.c
index bba1172eca..77346d1865 100644
--- a/keyboards/xd75/keymaps/germanized/keymap.c
+++ b/keyboards/xd75/keymaps/germanized/keymap.c
@@ -53,13 +53,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* °-----------------------------------------------------------------------------------------------------------------------°
*/
- [_QWZ] = {
- { TD(TD_ESC_RUPT), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_SS, DE_ACUT, KC_BSPC, KC_ESC },
- { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, DE_PLUS, KC_NO, KC_PGUP },
- { TD(TD_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_OE, DE_AE, DE_HASH, KC_ENT, KC_PGDN },
- { KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, DE_CIRC, MT(MOD_RSFT, KC_HOME), KC_UP, KC_END },
- { KC_LCTL, KC_LALT, LT(1, KC_ENT), KC_SPC, KC_NO, KC_BSPC, KC_NO, TT(1), MT(MOD_RALT, KC_PAUS), KC_RGUI, DE_LESS, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT },
- },
+ [_QWZ] = LAYOUT_ortho_5x15(
+ TD(TD_ESC_RUPT), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_SS, DE_ACUT, KC_BSPC, KC_ESC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, DE_PLUS, KC_NO, KC_PGUP,
+ TD(TD_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_OE, DE_AE, DE_HASH, KC_ENT, KC_PGDN,
+ KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, DE_CIRC, MT(MOD_RSFT, KC_HOME), KC_UP, KC_END,
+ KC_LCTL, KC_LALT, LT(1, KC_ENT), KC_SPC, KC_NO, KC_BSPC, KC_NO, TT(1), MT(MOD_RALT, KC_PAUS), KC_RGUI, DE_LESS, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
/* FNC
* .-----------------------------------------------------------------------------------------------------------------------.
@@ -74,13 +74,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | TO(0) | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | Prev | VolDn | Next |
* °-----------------------------------------------------------------------------------------------------------------------°
*/
- [_FNC] = {
- { RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS },
- { KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS },
- { KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS },
- { KC_CAPS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE },
- { TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT },
- },
+ [_FNC] = LAYOUT_ortho_5x15(
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS,
+ KC_CAPS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE,
+ TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
+ )
};
diff --git a/keyboards/xd75/keymaps/jarred/keymap.c b/keyboards/xd75/keymaps/jarred/keymap.c
index f851787118..a875165078 100644
--- a/keyboards/xd75/keymaps/jarred/keymap.c
+++ b/keyboards/xd75/keymaps/jarred/keymap.c
@@ -6,32 +6,32 @@
#define _NM 3
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = {
- { KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MUTE, KC_VOLD, KC_VOLU, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSPC },
- { KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_INS , KC_HOME, KC_PGUP, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC },
- { MO(_NV), KC_A , KC_S , KC_D , KC_F , KC_G , KC_DEL , KC_END , KC_PGDN, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT },
- { KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , _______, KC_UP , _______, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT },
- { KC_LCTL, KC_LGUI, MO(_NM), KC_LALT, MO(_LW), KC_SPC , KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT , MO(_LW), KC_RALT, KC_RGUI, KC_APP , KC_RCTL },
- },
- [_LW] = {
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______ },
- { _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F11 , KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_BSLS },
- { _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______, _______, _______, KC_F12 , KC_GRV , _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
- [_NV] = {
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, _______, _______, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______ },
- { _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
- [_NM] = {
- { _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______ },
- { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- }
+ [_QW] = LAYOUT_ortho_5x15(
+ KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MUTE, KC_VOLD, KC_VOLU, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSPC,
+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_INS , KC_HOME, KC_PGUP, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC,
+ MO(_NV), KC_A , KC_S , KC_D , KC_F , KC_G , KC_DEL , KC_END , KC_PGDN, KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , _______, KC_UP , _______, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, MO(_NM), KC_LALT, MO(_LW), KC_SPC , KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT , MO(_LW), KC_RALT, KC_RGUI, KC_APP , KC_RCTL
+ ),
+ [_LW] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______,
+ _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F11 , KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______, _______, _______, KC_F12 , KC_GRV , _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_NV] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, _______, _______, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______,
+ _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_NM] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
+ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
};
diff --git a/keyboards/xd75/keymaps/kim-kim-xd73/keymap.c b/keyboards/xd75/keymaps/kim-kim-xd73/keymap.c
index 61e5c73ab3..edbcfe97be 100644
--- a/keyboards/xd75/keymaps/kim-kim-xd73/keymap.c
+++ b/keyboards/xd75/keymaps/kim-kim-xd73/keymap.c
@@ -40,13 +40,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_QW] = { /* SPLIT QWERTY */
- { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PSLS, KC_PAST, KC_PMNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV },
- { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
- { KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
- { _______, KC_LALT, MO(_RS), KC_LGUI, KC_SPC, KC_SPC, KC_PPLS, KC_P0, KC_PDOT, KC_SPC, KC_SPC, KC_RGUI, MO(_LW), KC_RALT, _______ },
- },
+ [_QW] = LAYOUT_ortho_5x15( /* SPLIT QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PSLS, KC_PAST, KC_PMNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ _______, KC_LALT, MO(_RS), KC_LGUI, KC_SPC, KC_SPC, KC_PPLS, KC_P0, KC_PDOT, KC_SPC, KC_SPC, KC_RGUI, MO(_LW), KC_RALT, _______
+ ),
/* LOWERED
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -62,13 +62,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_LW] = { /* LOWERED */
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, KC_MPRV, KC_MNXT, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, KC_MPLY, KC_MSTP, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, MO(_RT), MO(_RT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_MPRV, KC_MNXT, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_MPLY, KC_MSTP, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, MO(_RT), MO(_RT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
/* RAISED
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -84,13 +84,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_RS] = { /* RAISED */
- { _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL },
- { _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS },
- { _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_RT), MO(_RT), _______ },
- },
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_RT), MO(_RT), _______
+ ),
/* RESET
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -106,13 +106,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_RT] = { /* RESET */
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- }
+ [_RT] = LAYOUT_ortho_5x15( /* RESET */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
};
diff --git a/keyboards/xd75/keymaps/kim-kim/keymap.c b/keyboards/xd75/keymaps/kim-kim/keymap.c
index f46c0b6590..0557074dc5 100644
--- a/keyboards/xd75/keymaps/kim-kim/keymap.c
+++ b/keyboards/xd75/keymaps/kim-kim/keymap.c
@@ -40,13 +40,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_QW] = { /* SPLIT QWERTY */
- { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PSLS, KC_PAST, KC_PMNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV },
- { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
- { KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
- { KC_LALT, MO(_RS), MO(_RS), KC_LGUI, KC_SPC, KC_SPC, KC_PPLS, KC_P0, KC_PDOT, KC_SPC, KC_SPC, KC_RGUI, MO(_LW), MO(_LW), KC_RALT },
- },
+ [_QW] = LAYOUT_ortho_5x15( /* SPLIT QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PSLS, KC_PAST, KC_PMNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ KC_LALT, MO(_RS), MO(_RS), KC_LGUI, KC_SPC, KC_SPC, KC_PPLS, KC_P0, KC_PDOT, KC_SPC, KC_SPC, KC_RGUI, MO(_LW), MO(_LW), KC_RALT
+ ),
/* LOWERED
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -62,13 +62,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_LW] = { /* LOWERED */
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, KC_MPRV, KC_MNXT, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, KC_MPLY, KC_MSTP, KC_VOLD, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, MO(_RT), MO(_RT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_MPRV, KC_MNXT, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_MPLY, KC_MSTP, KC_VOLD, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, MO(_RT), MO(_RT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
/* RAISED
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -84,13 +84,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_RS] = { /* RAISED */
- { _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL },
- { _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS },
- { _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_RT), MO(_RT), _______ },
- },
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS
+ _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_RT), MO(_RT), _______
+ ),
/* RESET
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -106,13 +106,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_RT] = { /* RESET */
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- }
+ [_RT] = LAYOUT_ortho_5x15( /* RESET */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
};
diff --git a/keyboards/xd75/keymaps/kloki/keymap.c b/keyboards/xd75/keymaps/kloki/keymap.c
index b9bb2c66d4..d9a67e8b75 100644
--- a/keyboards/xd75/keymaps/kloki/keymap.c
+++ b/keyboards/xd75/keymaps/kloki/keymap.c
@@ -26,43 +26,43 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_WO] = { /* WORKMAN */
- { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, MO(_FUN),TG(_NUM),TG(_QW),KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
- { KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_GRV, KC_LGUI, KC_QUOT, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS },
- { CTL_T(KC_ESC),KC_A,KC_S, KC_H, KC_T, KC_G, KC_EQL, KC_UP, KC_MINS, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_ENT },
- { KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_LEFT, KC_DOWN, KC_RGHT, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT },
- { KC_MEH,KC_LGUI,KC_LALT,KC_LEFT,KC_RGHT,LT(_SYM,KC_SPC),LGUI_T(KC_ENT),KC_SPC,LT(_SYM,KC_TAB),KC_BSPC,KC_DOWN,KC_UP,KC_LBRC,KC_RBRC,MO(_SYM)},
- },
+ [_WO] = LAYOUT_ortho_5x15( /* WORKMAN */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, MO(_FUN),TG(_NUM),TG(_QW),KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_GRV, KC_LGUI, KC_QUOT, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS,
+ CTL_T(KC_ESC),KC_A,KC_S, KC_H, KC_T, KC_G, KC_EQL, KC_UP, KC_MINS, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_LEFT, KC_DOWN, KC_RGHT, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_MEH,KC_LGUI,KC_LALT,KC_LEFT,KC_RGHT,LT(_SYM,KC_SPC),LGUI_T(KC_ENT),KC_SPC,LT(_SYM,KC_TAB),KC_BSPC,KC_DOWN,KC_UP,KC_LBRC,KC_RBRC,MO(_SYM)
+ ),
- [_QW] = { /* QWERTY */
- { _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______ },
- { _______, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, _______ },
- { _______, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______ },
- { _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______ },
- { _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ },
- },//
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
+ _______, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, _______,
+ _______, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______,
+ _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
+ _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______
+ ),//
- [_NUM] = { /* NUM */
- { _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ },
- { _______, _______, _______, _______, _______,_______,KC_7, KC_8, KC_9, _______,_______,_______, _______, _______, _______ },
- { _______, _______, _______, _______, _______,_______,KC_4, KC_5, KC_6, _______,_______,_______, _______, _______, _______ },
- { _______, _______, _______, _______, _______,_______,KC_1, KC_2, KC_3, _______,_______,_______, _______, _______, _______ },
- { _______, _______, _______, _______, _______,_______,_______, KC_0, _______, _______,_______,_______, _______, _______, _______ },
- },
- [_SYM] = { /* SYM */
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, },
- { _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR,KC_ASTR,_______, KC_F11, KC_F12, KC_LABK,KC_HOME,KC_UP, KC_PGUP, KC_ASTR, _______ },
- { _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN,KC_GRV, _______, _______, _______, KC_RABK,KC_LEFT,KC_DOWN, KC_RIGHT,KC_PLUS, _______ },
- { _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC,KC_TILD,_______, _______, _______, KC_AMPR,KC_END, KC_DOWN, KC_PGDN, KC_BSLS, _______ },
- { _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ },
- },
- [_FUN] = { /* FUN */
- { _______, RGB_RMOD,RGB_MOD, RGB_TOG, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, RESET },
- { _______, RGB_HUD, RGB_HUI, RGB_MODE_PLAIN, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ },
- { _______, RGB_SAD, RGB_SAI, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ },
- { _______, RGB_VAD, RGB_VAI, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ },
- { _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ },
- }
+ [_NUM] = LAYOUT_ortho_5x15( /* NUM */
+ _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
+ _______, _______, _______, _______, _______,_______,KC_7, KC_8, KC_9, _______,_______,_______, _______, _______, _______,
+ _______, _______, _______, _______, _______,_______,KC_4, KC_5, KC_6, _______,_______,_______, _______, _______, _______,
+ _______, _______, _______, _______, _______,_______,KC_1, KC_2, KC_3, _______,_______,_______, _______, _______, _______,
+ _______, _______, _______, _______, _______,_______,_______, KC_0, _______, _______,_______,_______, _______, _______, _______
+ ),
+ [_SYM] = LAYOUT_ortho_5x15( /* SYM */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR,KC_ASTR,_______, KC_F11, KC_F12, KC_LABK,KC_HOME,KC_UP, KC_PGUP, KC_ASTR, _______,
+ _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN,KC_GRV, _______, _______, _______, KC_RABK,KC_LEFT,KC_DOWN, KC_RIGHT,KC_PLUS, _______,
+ _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC,KC_TILD,_______, _______, _______, KC_AMPR,KC_END, KC_DOWN, KC_PGDN, KC_BSLS, _______,
+ _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______
+ ),
+ [_FUN] = LAYOUT_ortho_5x15( /* FUN */
+ _______, RGB_RMOD,RGB_MOD, RGB_TOG, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, RESET,
+ _______, RGB_HUD, RGB_HUI, RGB_MODE_PLAIN, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
+ _______, RGB_SAD, RGB_SAI, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
+ _______, RGB_VAD, RGB_VAI, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
+ _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______
+ )
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
diff --git a/keyboards/xd75/keymaps/markus/keymap.c b/keyboards/xd75/keymaps/markus/keymap.c
index 9b8ab52fc3..ab818318e7 100644
--- a/keyboards/xd75/keymaps/markus/keymap.c
+++ b/keyboards/xd75/keymaps/markus/keymap.c
@@ -59,13 +59,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Caps | Fn3 | LGUI | LAlt | Fn2 | Fn1 | Tab | Del | Enter | Space | Bksp | LAlt | LGUI | Fn3 | Ins |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[_QWZ] = {
-{ DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, KC_MUTE, KC_VOLD, KC_VOLU, DE_7, DE_8, DE_9, DE_0, DE_SS, DE_UE },
-{ KC_ESC, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_HOME, KC_MPLY, KC_END, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_AE },
-{ KC_LSFT, DE_A, DE_S, DE_D, DE_F, DE_G, KC_PGUP, KC_UP, KC_PGDN, DE_H, DE_J, DE_K, DE_L, DE_OE, KC_RSFT },
-{ KC_LCTL, DE_Y, DE_X, DE_C, DE_V, DE_B, KC_LEFT, KC_DOWN, KC_RIGHT, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_RCTL },
-{ KC_CAPS, MO(_FN3), KC_LGUI, KC_LALT, MO(_FN2), MO(_FN1), KC_TAB, KC_DEL, KC_ENT, KC_SPC, KC_BSPC, KC_LALT, KC_LGUI, MO(_FN3), KC_INS },
-},
+[_QWZ] = LAYOUT_ortho_5x15(
+DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, KC_MUTE, KC_VOLD, KC_VOLU, DE_7, DE_8, DE_9, DE_0, DE_SS, DE_UE,
+KC_ESC, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_HOME, KC_MPLY, KC_END, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_AE,
+KC_LSFT, DE_A, DE_S, DE_D, DE_F, DE_G, KC_PGUP, KC_UP, KC_PGDN, DE_H, DE_J, DE_K, DE_L, DE_OE, KC_RSFT,
+KC_LCTL, DE_Y, DE_X, DE_C, DE_V, DE_B, KC_LEFT, KC_DOWN, KC_RIGHT, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_RCTL,
+KC_CAPS, MO(_FN3), KC_LGUI, KC_LALT, MO(_FN2), MO(_FN1), KC_TAB, KC_DEL, KC_ENT, KC_SPC, KC_BSPC, KC_LALT, KC_LGUI, MO(_FN3), KC_INS
+),
/* QWERTY
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -80,13 +80,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[_QWY] = {
-{ DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, KC_MUTE, KC_VOLD, KC_VOLU, DE_7, DE_8, DE_9, DE_0, DE_SS, DE_UE },
-{ KC_ESC, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_HOME, KC_MPLY, KC_END, DE_Y, DE_U, DE_I, DE_O, DE_P, DE_AE },
-{ KC_LSFT, DE_A, DE_S, DE_D, DE_F, DE_G, KC_PGUP, KC_UP, KC_PGDN, DE_H, DE_J, DE_K, DE_L, DE_OE, KC_RSFT },
-{ KC_LCTL, DE_Z, DE_X, DE_C, DE_V, DE_B, KC_LEFT, KC_DOWN, KC_RIGHT, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_RCTL },
-{ KC_CAPS, MO(_FN3), KC_LGUI, KC_LALT, MO(_FN2), MO(_FN1), KC_TAB, KC_DEL, KC_ENT, KC_SPC, KC_BSPC, KC_LALT, KC_LGUI, MO(_FN3), KC_INS },
-},
+[_QWY] = LAYOUT_ortho_5x15(
+DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, KC_MUTE, KC_VOLD, KC_VOLU, DE_7, DE_8, DE_9, DE_0, DE_SS, DE_UE,
+KC_ESC, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_HOME, KC_MPLY, KC_END, DE_Y, DE_U, DE_I, DE_O, DE_P, DE_AE,
+KC_LSFT, DE_A, DE_S, DE_D, DE_F, DE_G, KC_PGUP, KC_UP, KC_PGDN, DE_H, DE_J, DE_K, DE_L, DE_OE, KC_RSFT,
+KC_LCTL, DE_Z, DE_X, DE_C, DE_V, DE_B, KC_LEFT, KC_DOWN, KC_RIGHT, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_RCTL,
+KC_CAPS, MO(_FN3), KC_LGUI, KC_LALT, MO(_FN2), MO(_FN1), KC_TAB, KC_DEL, KC_ENT, KC_SPC, KC_BSPC, KC_LALT, KC_LGUI, MO(_FN3), KC_INS
+),
/* GAMING
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -101,13 +101,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Fn2 | | | | Space | | | | | | | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[_GAM] = {
-{ DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, KC_MUTE, KC_VOLD, KC_VOLU, DE_7, DE_8, DE_9, DE_0, DE_SS, DE_UE },
-{ KC_ESC, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_HOME, KC_MPLY, KC_END, DE_Y, DE_U, DE_I, DE_O, DE_P, DE_AE },
-{ KC_LSFT, DE_A, DE_S, DE_D, DE_F, DE_G, KC_PGUP, KC_UP, KC_PGDN, DE_H, DE_J, DE_K, DE_L, DE_OE, KC_RSFT },
-{ KC_LCTL, DE_Z, DE_X, DE_C, DE_V, DE_B, KC_LEFT, KC_DOWN, KC_RIGHT, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_RCTL },
-{ MO(_FN2), MO(_FN3), KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_TAB, KC_DEL, KC_ENT, KC_SPC, KC_BSPC, KC_LALT, KC_LGUI, MO(_FN3), KC_INS },
-},
+[_GAM] = LAYOUT_ortho_5x15(
+DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, KC_MUTE, KC_VOLD, KC_VOLU, DE_7, DE_8, DE_9, DE_0, DE_SS, DE_UE,
+KC_ESC, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_HOME, KC_MPLY, KC_END, DE_Y, DE_U, DE_I, DE_O, DE_P, DE_AE,
+KC_LSFT, DE_A, DE_S, DE_D, DE_F, DE_G, KC_PGUP, KC_UP, KC_PGDN, DE_H, DE_J, DE_K, DE_L, DE_OE, KC_RSFT,
+KC_LCTL, DE_Z, DE_X, DE_C, DE_V, DE_B, KC_LEFT, KC_DOWN, KC_RIGHT, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_RCTL,
+MO(_FN2), MO(_FN3), KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_TAB, KC_DEL, KC_ENT, KC_SPC, KC_BSPC, KC_LALT, KC_LGUI, MO(_FN3), KC_INS
+),
/* FN1
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -122,13 +122,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | | | | | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[_FN1] = {
-{ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 },
-{ ________, DE_AT, DE_TILD, DE_EURO, DE_ACUT, DE_GRV, ________, ___xx___, ________, DE_BSLS, DE_LCBR, DE_RCBR, DE_PLUS, DE_ASTR, ___xx___ },
-{ ________, DE_DQOT, DE_QUOT, UC(L'‚'), UC(L'‘'), UC(L'’'), ________, ________, ________, DE_PIPE, DE_LBRC, DE_RBRC, DE_EXLM, DE_QST, ________ },
-{ ________, DE_RING, DE_CIRC, UC(L'„'), UC(L'“'), UC(L'â€'), ________, ________, ________, DE_HASH, DE_LESS, DE_MORE, UC(L'…'), UC(L'–'), ________ },
-{ ___xx___, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________ },
-},
+[_FN1] = LAYOUT_ortho_5x15(
+KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+________, DE_AT, DE_TILD, DE_EURO, DE_ACUT, DE_GRV, ________, ___xx___, ________, DE_BSLS, DE_LCBR, DE_RCBR, DE_PLUS, DE_ASTR, ___xx___,
+________, DE_DQOT, DE_QUOT, UC(L'‚'), UC(L'‘'), UC(L'’'), ________, ________, ________, DE_PIPE, DE_LBRC, DE_RBRC, DE_EXLM, DE_QST, ________,
+________, DE_RING, DE_CIRC, UC(L'„'), UC(L'“'), UC(L'â€'), ________, ________, ________, DE_HASH, DE_LESS, DE_MORE, UC(L'…'), UC(L'–'), ________,
+___xx___, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________
+),
/* FN2
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -143,13 +143,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Fn2 | | | | | PEnter | P0 | . : | P, | BTN1 | BTN2 | BTN3 | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[_FN2] = {
-{ ___xx___, ___xx___, ___xx___, ___xx___, DE_PERC, DE_LPRN, DE_RPRN, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_LSCR, KC_PAUS, UC(L'ẞ'), UC(L'−') },
-{ ________, ___xx___, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSPC, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_WH_U, KC_MS_U, KC_WH_D, UC(L'×'), UC(L'÷') },
-{ ________, KC_APP, KC_ACL2, KC_ACL1, KC_ACL0, KC_SPC, KC_P4, KC_P5, KC_P6, KC_WH_L, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_R, ________ },
-{ ________, ___xx___, KC_MPRV, KC_MPLY, KC_MNXT, KC_TAB, KC_P1, KC_P2, KC_P3, KC_PENT, KC_BTN1, KC_BTN2, KC_BTN3, UC(L'—'), ________ },
-{ MO(_FN2), ________, ________, ________, ________, KC_PENT, KC_P0, DE_DOT, KC_PDOT, KC_BTN1, KC_BTN2, KC_BTN3, ________, ________, ________ },
-},
+[_FN2] = LAYOUT_ortho_5x15(
+___xx___, ___xx___, ___xx___, ___xx___, DE_PERC, DE_LPRN, DE_RPRN, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_LSCR, KC_PAUS, UC(L'ẞ'), UC(L'−'),
+________, ___xx___, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSPC, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_WH_U, KC_MS_U, KC_WH_D, UC(L'×'), UC(L'÷'),
+________, KC_APP, KC_ACL2, KC_ACL1, KC_ACL0, KC_SPC, KC_P4, KC_P5, KC_P6, KC_WH_L, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_R, ________,
+________, ___xx___, KC_MPRV, KC_MPLY, KC_MNXT, KC_TAB, KC_P1, KC_P2, KC_P3, KC_PENT, KC_BTN1, KC_BTN2, KC_BTN3, UC(L'—'), ________,
+MO(_FN2), ________, ________, ________, ________, KC_PENT, KC_P0, DE_DOT, KC_PDOT, KC_BTN1, KC_BTN2, KC_BTN3, ________, ________, ________
+),
/* FN3
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -164,13 +164,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | Reset | | | | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[_FN3] = {
-{ KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, UNI_LNX, UNI_WIN, UNI_MAC, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24 },
-{ ________, QWERTZ, QWERTY, GAMING, ___xx___, ___xx___, RGB_TOG, RGB_M_P, RGB_MOD, ___xx___, KC_PGUP, KC_UP, KC_PGDN, ___xx___, ___xx___ },
-{ ________, ___xx___, ___xx___, UC(L'›'), UC(L'‹'), ___xx___, RGB_HUI, RGB_SAI, RGB_VAI, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, ________ },
-{ ________, ___xx___, ___xx___, UC(L'»'), UC(L'«'), ___xx___, RGB_HUD, RGB_SAD, RGB_VAD, UC(L' '), UC(L' '), UC(L' '), UC(L' '), UC(L'‑'), ________ },
-{ ___xx___, ________, ________, ________, ________, ________, ________, RESET, ________, ________, ________, ________, ________, ________, ________ },
-},
+[_FN3] = LAYOUT_ortho_5x15(
+KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, UNI_LNX, UNI_WIN, UNI_MAC, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
+________, QWERTZ, QWERTY, GAMING, ___xx___, ___xx___, RGB_TOG, RGB_M_P, RGB_MOD, ___xx___, KC_PGUP, KC_UP, KC_PGDN, ___xx___, ___xx___,
+________, ___xx___, ___xx___, UC(L'›'), UC(L'‹'), ___xx___, RGB_HUI, RGB_SAI, RGB_VAI, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, ________,
+________, ___xx___, ___xx___, UC(L'»'), UC(L'«'), ___xx___, RGB_HUD, RGB_SAD, RGB_VAD, UC(L' '), UC(L' '), UC(L' '), UC(L' '), UC(L'‑'), ________,
+___xx___, ________, ________, ________, ________, ________, ________, RESET, ________, ________, ________, ________, ________, ________, ________
+)
};
diff --git a/keyboards/xd75/keymaps/msiu/keymap.c b/keyboards/xd75/keymaps/msiu/keymap.c
index c4cc456a90..d1a4154ec1 100644
--- a/keyboards/xd75/keymaps/msiu/keymap.c
+++ b/keyboards/xd75/keymaps/msiu/keymap.c
@@ -43,23 +43,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_QW] = { /* QWERTY */
- { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PLUS, KC_MINS, KC_ASTR, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
- { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_7, KC_8, KC_9 , KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL },
- { LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_4, KC_5, KC_6 , KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT },
- { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_1, KC_2, KC_3 , KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
- { KC_LCTL, KC_HYPR, KC_LALT, KC_LGUI, MO(_LW), MO(_FN), KC_0, _______, KC_DOT , KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT },
- },
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PLUS, KC_MINS, KC_ASTR, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_7, KC_8, KC_9 , KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
+ LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_4, KC_5, KC_6 , KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_1, KC_2, KC_3 , KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ KC_LCTL, KC_HYPR, KC_LALT, KC_LGUI, MO(_LW), MO(_FN), KC_0, _______, KC_DOT , KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
/* Dvorak */
- [_DV] = { /* Dvorak */
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, _______, _______, KC_F, KC_G, KC_C, KC_R, KC_L, _______ },
- { _______, KC_A, KC_O, KC_E, KC_U, KC_I, _______, _______, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH },
- { _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, _______, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
+ [_DV] = LAYOUT_ortho_5x15( /* Dvorak */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, _______, _______, KC_F, KC_G, KC_C, KC_R, KC_L, _______,
+ _______, KC_A, KC_O, KC_E, KC_U, KC_I, _______, _______, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
+ _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, _______, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
/* LOWERED
@@ -76,13 +76,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_LW] = { /* LOWERED */
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL },
- { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, KC_VOLU, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MPRV, KC_MPLY, KC_MNXT, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE },
- { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_VOLD, _______, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE },
- { _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT },
- },
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, KC_VOLU, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MPRV, KC_MPLY, KC_MNXT, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_VOLD, _______, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE,
+ _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
+ ),
/* RAISED
* .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -98,23 +98,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
- [_RS] = { /* RAISED */
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL },
- { KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_VOLU, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL },
- { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MPRV, KC_MPLY, KC_MNXT, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS },
- { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_VOLD, _______, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE },
- { _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT },
- },
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_VOLU, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MPRV, KC_MPLY, KC_MNXT, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_VOLD, _______, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE,
+ _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
+ ),
/* FUNCTION */
- [_FN] = { /* FUNCTION */
- { RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______, _______, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, KC_PSCR, _______ },
- { _______, _______, _______, TO(_DV), TO(_QW), _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______ },
- { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- },
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, KC_PSCR, _______,
+ _______, _______, _______, TO(_DV), TO(_QW), _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
};
diff --git a/keyboards/xd75/keymaps/mtdjr/keymap.c b/keyboards/xd75/keymaps/mtdjr/keymap.c
index e56d918fd5..98e21cf32f 100644
--- a/keyboards/xd75/keymaps/mtdjr/keymap.c
+++ b/keyboards/xd75/keymaps/mtdjr/keymap.c
@@ -2,54 +2,36 @@
#include "mtdjr.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_ortho_5x15(
+ KC_EXC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PGUP, KC_MPNT, KC_PGDN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_INS, KC_HOME, KC_DEL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_EQL, KC_ELCK, KC_MINS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_BSLS, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ELCK,
+ KC_LOWR, KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, KC_SPC, KC_LOWR, KC_RASE, XXXXXXX, KC_SPC, KC_APP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
- [_QWERTY] = LAYOUT_kc(
-// .--------------------------------------------------------------------------.
- EXC, 1 , 2 , 3 , 4 , 5 ,PGUP,MPNT,PGDN, 6 , 7 , 8 , 9 , 0 ,BSPC,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- TAB, Q , W , E , R , T , INS,HOME, DEL, Y , U , I , O , P ,QUOT,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- LCTL, A , S , D , F , G , EQL,ELCK,MINS, H , J , K , L ,SCLN, ENT,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- LSFT, Z , X , C , V , B ,LBRC,BSLS,RBRC, N , M ,COMM, DOT,SLSH,ELCK,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- LOWR,LCTL,LALT,LGUI,xxxx, SPC,LOWR,RASE,xxxx, SPC, APP,LEFT,DOWN, UP,RGHT
-// '----+----+----+----+----+----+----+----+----+----+----+----+----+----+----'
-),
+ [_LOWER] = LAYOUT_ortho_5x15(
+ XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
+ XXXXXXX, KC_ROOT, KC_PPLY, KC_PSEF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, KC_MPLY, XXXXXXX, KC_MNXT, KC_VOLD, KC_VOLU, KC_MNXT
+ ),
- [_LOWER] = LAYOUT_kc(
-// .--------------------------------------------------------------------------.
- xxxx, F1 , F2 , F3 , F4 , F5 , F6 ,xxxx, F7 , F8 , F9 , F10, F11, F12, DEL,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- xxxx,ROOT,PPLY,PSEF,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,CALC,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,MUTE,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- ,xxxx,xxxx,xxxx,xxxx,xxxx, , ,xxxx,MPLY,xxxx,MNXT,VOLD,VOLU,MNXT
-// '----+----+----+----+----+----+----+----+----+----+----+----+----+----+----'
-),
-
-[_RAISE] = LAYOUT_kc(
-// .--------------------------------------------------------------------------.
- xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- xxxx,xxxx,xxxx,xxxx, RST,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- CAPS,xxxx,xxxx,xxxx,xxxx,xxxx, BLI,xxxx, BLD,xxxx,xxxx,xxxx,XLCK,xxxx,xxxx,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- RGB,RHUI,RHUD,RSAI,RSAD,RVAI,RVAD,xxxx,xxxx,xxxx,xxxx,xxxx,BTN1,MS_U,BTN2,
-// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
- ,xxxx,xxxx,xxxx,xxxx,xxxx, , ,xxxx,xxxx,xxxx,xxxx,MS_L,MS_D,MS_R
-// '----+----+----+----+----+----+----+----+----+----+----+----+----+----+----'
-)
+ [_RAISE] = LAYOUT_ortho_5x15(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BLI, XXXXXXX, KC_BLD, XXXXXXX, XXXXXXX, XXXXXXX, KC_XLCK, XXXXXXX, XXXXXXX,
+ KC_RGB, KC_RHUI, KC_RHUD, KC_RSAI, KC_RSAD, KC_RVAI, KC_RVAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_MS_U, KC_BTN2,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R
+ )
};
-void led_set_user(uint8_t usb_led) {
- if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+bool led_update_user(led_t led_state) {
+ if (led_state.caps_lock) {
capslock_led_on();
} else {
capslock_led_off();
}
+ return false;
}
diff --git a/keyboards/xd75/keymaps/tdl-jturner/keymap.c b/keyboards/xd75/keymaps/tdl-jturner/keymap.c
index 593e54f14d..0c51289b6d 100644
--- a/keyboards/xd75/keymaps/tdl-jturner/keymap.c
+++ b/keyboards/xd75/keymaps/tdl-jturner/keymap.c
@@ -65,99 +65,99 @@ qk_tap_dance_action_t tap_dance_actions[] = {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//QWERY - Base Layer
- [_QWERTY] = {
- {KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS},
- {KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T ,________ ,________,________, KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_BSDEL}, //Custom shift Codes. Backspace ^ Delete
-{LT(_LYMD,KC_ESC), KC_A , KC_S , KC_D , KC_F , KC_G ,________ ,________,________, KC_H , KC_J , KC_K , KC_L ,KC_SCLN ,KC_QUOT },
- {KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B ,________ ,________,________, KC_N , KC_M ,KC_CPIPE,KC_DOTQ ,KC_FBSLH,KC_RSPC }, // Custom Shift Codes. ,^| .^? /^|
- { KC_MEH ,KC_LCTL ,KC_LGUI ,KC_LALT ,MO(_LYNUM), KC_SPC ,________ ,________,________, KC_ENT ,MO(_LYNAV),TD(TD_CBR) ,TD(TD_BRC),TD(TD_ABK),TD(TD_LOCK_SLEEP)}
+ [_QWERTY] = LAYOUT_ortho_5x15(
+ KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS,
+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T ,________ ,________,________, KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_BSDEL, //Custom shift Codes. Backspace ^ Delete
+LT(_LYMD,KC_ESC), KC_A , KC_S , KC_D , KC_F , KC_G ,________ ,________,________, KC_H , KC_J , KC_K , KC_L ,KC_SCLN ,KC_QUOT,
+ KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B ,________ ,________,________, KC_N , KC_M ,KC_CPIPE,KC_DOTQ ,KC_FBSLH,KC_RSPC, // Custom Shift Codes. ,^| .^? /^|
+ KC_MEH ,KC_LCTL ,KC_LGUI ,KC_LALT ,MO(_LYNUM), KC_SPC ,________ ,________,________, KC_ENT ,MO(_LYNAV),TD(TD_CBR) ,TD(TD_BRC),TD(TD_ABK),TD(TD_LOCK_SLEEP)
- },
+ ),
//_COLEMAK - Colemak Layout - Identical to qwerty layer except for the layout changes
- [_COLEMAK] = {
- {KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS},
- {KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G ,________ ,________,________, KC_J , KC_L , KC_U , KC_Y ,KC_SCLN ,KC_BSDEL}, //Custom shift Codes. Backspace ^ Delete
-{LT(_LYMD,KC_ESC), KC_A , KC_R , KC_S , KC_T , KC_D ,________ ,________,________, KC_H , KC_N , KC_E , KC_I , KC_O ,KC_QUOT },
- {KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B ,________ ,________,________, KC_K , KC_M ,KC_CPIPE,KC_DOTQ ,KC_FBSLH,KC_RSPC }, // Custom Shift Codes. ,^| .^? /^|
- { KC_MEH ,KC_LCTL ,KC_LGUI ,KC_LALT ,MO(_LYNUM), KC_SPC ,________ ,________,________, KC_ENT ,MO(_LYNAV),TD(TD_CBR) ,TD(TD_BRC),TD(TD_ABK),TD(TD_LOCK_SLEEP)}
+ [_COLEMAK] = LAYOUT_ortho_5x15(
+ KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS,
+ KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G ,________ ,________,________, KC_J , KC_L , KC_U , KC_Y ,KC_SCLN ,KC_BSDEL, //Custom shift Codes. Backspace ^ Delete
+LT(_LYMD,KC_ESC), KC_A , KC_R , KC_S , KC_T , KC_D ,________ ,________,________, KC_H , KC_N , KC_E , KC_I , KC_O ,KC_QUOT,
+ KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B ,________ ,________,________, KC_K , KC_M ,KC_CPIPE,KC_DOTQ ,KC_FBSLH,KC_RSPC, // Custom Shift Codes. ,^| .^? /^|
+ KC_MEH ,KC_LCTL ,KC_LGUI ,KC_LALT ,MO(_LYNUM), KC_SPC ,________ ,________,________, KC_ENT ,MO(_LYNAV),TD(TD_CBR) ,TD(TD_BRC),TD(TD_ABK),TD(TD_LOCK_SLEEP)
- },
+ ),
// Decision Layer
[_LYMD] =
- {
- {________,________ ,________ ,________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___},
- {________,MO(_LYFK) ,MO(_LYMED),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________},
- {________,MO(_LYNUM),MO(_LYNAV),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___},
- {________,MO(_LYMOS),MO(_LYSYS),MO(_LYLT) ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___},
- {________,________ ,________ ,________ ,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___}
- },
+ LAYOUT_ortho_5x15(
+ ________,________ ,________ ,________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ ________,MO(_LYFK) ,MO(_LYMED),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________,
+ ________,MO(_LYNUM),MO(_LYNAV),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ ________,MO(_LYMOS),MO(_LYSYS),MO(_LYLT) ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ ________,________ ,________ ,________ ,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
+ ),
//F Keys
[_LYFK] =
- {
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___},
- {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F7 ,KC_F8 ,KC_F9 ,KC_F12 ,________},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F4 ,KC_F5 ,KC_F6 ,KC_F11 ,___XX___},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F1 ,KC_F2 ,KC_F3 ,KC_F10 ,___XX___},
- {________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___}
- },
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F7 ,KC_F8 ,KC_F9 ,KC_F12 ,________,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F4 ,KC_F5 ,KC_F6 ,KC_F11 ,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F1 ,KC_F2 ,KC_F3 ,KC_F10 ,___XX___,
+ ________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
+ ),
//Media Keys
[_LYMED] =
- {
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___},
- {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLU ,___XX___,___XX___,________},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPRV ,KC_MUTE ,KC_MNXT ,___XX___,___XX___},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLD ,___XX___,KC_MSTP ,___XX___},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPLY ,___XX___,___XX___,___XX___,___XX___}
- },
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLU ,___XX___,___XX___,________,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPRV ,KC_MUTE ,KC_MNXT ,___XX___,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLD ,___XX___,KC_MSTP ,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPLY ,___XX___,___XX___,___XX___,___XX___
+ ),
//Num Keys
[_LYNUM] =
- {
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_PEQL ,KC_PSLS ,KC_PAST ,KC_PMNS ,___XX___},
- {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_7 ,KC_8 ,KC_9 ,KC_MINUS,________},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_4 ,KC_5 ,KC_6 ,KC_PPLS ,KC_PSLS },
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_1 ,KC_2 ,KC_3 ,KC_PENT ,KC_PAST },
- {________,________,________,________,________,________,________,________,________,________,KC_0 ,KC_0 ,KC_PDOT ,KC_PEQL ,___XX___}
- },
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_PEQL ,KC_PSLS ,KC_PAST ,KC_PMNS ,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_7 ,KC_8 ,KC_9 ,KC_MINUS,________,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_4 ,KC_5 ,KC_6 ,KC_PPLS ,KC_PSLS,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_1 ,KC_2 ,KC_3 ,KC_PENT ,KC_PAST,
+ ________,________,________,________,________,________,________,________,________,________,KC_0 ,KC_0 ,KC_PDOT ,KC_PEQL ,___XX___
+ ),
//Navigation Keys
[_LYNAV] =
- {
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___},
- {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_HOME ,KC_UP ,KC_PGUP ,KC_PSCR ,________},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_LEFT ,KC_F5 ,KC_RIGHT,KC_SLCK ,___XX___},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_END ,KC_DOWN ,KC_PGDN ,KC_PAUS ,___XX___},
- {________,________,________,________,________,________,________,________,________,________,________,KC_INS ,KC_DEL ,___XX___,___XX___}
- },
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_HOME ,KC_UP ,KC_PGUP ,KC_PSCR ,________,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_LEFT ,KC_F5 ,KC_RIGHT,KC_SLCK ,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_END ,KC_DOWN ,KC_PGDN ,KC_PAUS ,___XX___,
+ ________,________,________,________,________,________,________,________,________,________,________,KC_INS ,KC_DEL ,___XX___,___XX___
+ ),
//Mouse Keys
[_LYMOS] =
- {
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___},
- {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_U ,KC_WH_U ,KC_ACL2 ,________},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MS_L ,KC_ACL0 ,KC_MS_R ,KC_ACL1 ,___XX___},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_D ,KC_WH_D ,KC_BTN2 ,___XX___},
- {________,________,________,________,________,________,________,________,________,________,KC_BTN1 ,KC_BTN3 ,KC_BTN4 ,___XX___,___XX___}
- },
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_U ,KC_WH_U ,KC_ACL2 ,________,
+ _______,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MS_L ,KC_ACL0 ,KC_MS_R ,KC_ACL1 ,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_D ,KC_WH_D ,KC_BTN2 ,___XX___,
+ ________,________,________,________,________,________,________,________,________,________,KC_BTN1 ,KC_BTN3 ,KC_BTN4 ,___XX___,___XX___
+ ),
//Systen Keys
[_LYSYS] =
- {
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___},
- {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,QWERTY ,COLEMAK ,___XX___,RESET },
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___},
- {________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___}
- },
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,QWERTY ,COLEMAK ,___XX___,RESET,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ ________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
+ ),
// Light Control
[_LYLT] =
- {
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___},
- {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,RGB_VAD ,RGB_VAI },
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_TOG ,RGB_RMOD,RGB_MOD ,___XX___,___XX___,___XX___},
- {________,________,________,________,________,________,___XX___,___XX___,___XX___,BL_TOGG ,BL_DEC ,BL_INC ,BL_BRTG ,___XX___,___XX___},
- {________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___}
- }
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,RGB_VAD ,RGB_VAI,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_TOG ,RGB_RMOD,RGB_MOD ,___XX___,___XX___,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,BL_TOGG ,BL_DEC ,BL_INC ,BL_BRTG ,___XX___,___XX___,
+ ________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
+ )
};
//Define layer colors
diff --git a/keyboards/xd75/keymaps/via/keymap.c b/keyboards/xd75/keymaps/via/keymap.c
index 32cf102d46..a868222671 100644
--- a/keyboards/xd75/keymaps/via/keymap.c
+++ b/keyboards/xd75/keymaps/via/keymap.c
@@ -13,67 +13,65 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | A | S | D | F | G | HOME | DEL | PG UP | H | J | K | L | ; | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | END | UP | PG DN | N | M | , | . | / | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | LEFT | DOWN | RIGHT | SPACE | SPACE | FN | RALT | RGUI | RCTRL |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [0] = LAYOUT_ortho_5x15(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL
+ ),
-/* QWERTY
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | ' |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
- * | CAP LK | A | S | D | F | G | HOME | DEL | PG UP | H | J | K | L | ; | ENTER |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
- * | LSHIFT | Z | X | C | V | B | END | UP | PG DN | N | M | , | . | / | RSHIFT |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
- * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | LEFT | DOWN | RIGHT | SPACE | SPACE | FN | RALT | RGUI | RCTRL |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [0] = LAYOUT_ortho_5x15( /* QWERTY */
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL
- ),
-
-/* FUNCTION
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | NUM LK | P/ | P* | F7 | F8 | F9 | F10 | F11 | F12 |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | SELECT | CALC | MYCOMP | MAIL | RGB HD | RGB HI | P7 | P8 | P9 | - | | | PR SCR | SCR LK | PAUSE |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | PREV | PLAY | NEXT | STOP | RGB SD | RGB SI | P4 | P5 | P6 | + | | RESET | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | VOL- | MUTE | VOL+ | APP | RGB VD | RGB VI | P1 | P2 | P3 | PENT | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | RGB TG | FN | RGB RMD| RGB MD | P0 | | P. | PENT | PENT | FN | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [1] = LAYOUT_ortho_5x15( /* FUNCTION */
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NLCK, KC_SLSH, KC_ASTR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,
- KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______,
- KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
- _______, _______, RGB_TOG, _______, RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, _______, _______, _______, _______
- ),
+ /* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | NUM LK | P/ | P* | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | SELECT | CALC | MYCOMP | MAIL | RGB HD | RGB HI | P7 | P8 | P9 | - | | | PR SCR | SCR LK | PAUSE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | PREV | PLAY | NEXT | STOP | RGB SD | RGB SI | P4 | P5 | P6 | + | | RESET | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | VOL- | MUTE | VOL+ | APP | RGB VD | RGB VI | P1 | P2 | P3 | PENT | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | RGB TG | FN | RGB RMD| RGB MD | P0 | | P. | PENT | PENT | FN | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [1] = LAYOUT_ortho_5x15(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NLCK, KC_SLSH, KC_ASTR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______,
+ KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
+ _______, _______, RGB_TOG, _______, RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, _______, _______, _______, _______
+ ),
- [2] = LAYOUT_ortho_5x15(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
+ [2] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
- [3] = LAYOUT_ortho_5x15(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
+ [3] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
};
diff --git a/keyboards/xd75/readme.md b/keyboards/xd75/readme.md
index fc5b8972c8..a71c852175 100644
--- a/keyboards/xd75/readme.md
+++ b/keyboards/xd75/readme.md
@@ -4,24 +4,23 @@
The XD75Re is a 15x5 full-grid ortholinear keyboard manufactured by XIUDI. This port of the QMK firmware is my first shot at using QMK, so if you see any features done wrong (or just plain missing), feel free to fix them and put in a pull request!
-Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
-Hardware Supported: XD75Re
-Hardware Availability: [KPrepublic](https://kprepublic.com/products/xd75re-xd75am-xd75-xiudi-60-custom-keyboard-pcb), [AliExpress](https://www.aliexpress.com/item/xd75re-Custom-Mechanical-Keyboard-75-keys-TKG-TOOLS-Underglow-RGB-PCB-GH60-60-programmed-gh60-kle/32818745981.html)
+* Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
+* Hardware Supported: XD75Re
+* Hardware Availability: [KPrepublic](https://kprepublic.com/products/xd75re-xd75am-xd75-xiudi-60-custom-keyboard-pcb), [AliExpress](https://www.aliexpress.com/item/xd75re-Custom-Mechanical-Keyboard-75-keys-TKG-TOOLS-Underglow-RGB-PCB-GH60-60-programmed-gh60-kle/32818745981.html)
Make example for this keyboard (after setting up your build environment):
make xd75:default
-Flashing example:
+Flashing example for this keyboard:
- make xd75:default:dfu
+ make xd75:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+## LED Control
-## LED control
-
-There are 3 individual LEDs that can be turned on and off, plus the keycap LEDs (which are all wired into the same pin). The functions are named according to how they're labeled on the PCB.
+There are 3 individual LEDs that can be turned on and off. The functions are named according to how they're labeled on the PCB.
TODO: it would be nice to have PWM support on these LEDs for fade-in/fade-out effects.
@@ -29,13 +28,9 @@ TODO: it would be nice to have PWM support on these LEDs for fade-in/fade-out ef
capslock_led_on();
gp100_led_on();
gp103_led_on();
-keycaps_led_on();
-
-// led_set_user example - you could also turn these on/off in response
-// to events in process_record_user or matrix_scan_user
-void led_set_user(uint8_t usb_led) {
- if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+bool led_update_user(led_t led_state) {
+ if (led_state.caps_lock) {
capslock_led_on();
} else {
capslock_led_off();
@@ -43,10 +38,11 @@ void led_set_user(uint8_t usb_led) {
if (some_custom_state) {
gp100_led_on();
- }
- else {
+ } else {
gp100_led_off();
}
+
+ return false;
}
```
@@ -55,6 +51,5 @@ For the curious:
```
CAPSLOCK_LED B2
GP103_LED F4
-KEYCAPS_LED F5
GP100_LED F7
```
diff --git a/keyboards/xd75/rules.mk b/keyboards/xd75/rules.mk
index e822f37eac..97d0f379fb 100644
--- a/keyboards/xd75/rules.mk
+++ b/keyboards/xd75/rules.mk
@@ -2,31 +2,23 @@
MCU = atmega32u4
# Bootloader selection
-# Teensy halfkay
-# Pro Micro caterina
-# Atmel DFU atmel-dfu
-# LUFA DFU lufa-dfu
-# QMK DFU qmk-dfu
-# ATmega32A bootloadHID
-# ATmega328P USBasp
BOOTLOADER = atmel-dfu
-# QMK Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
+# Build Options
+# change yes to no to disable
#
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
+BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI support
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no # Enable Bluetooth
+AUDIO_ENABLE = no # Audio output
LAYOUTS = ortho_5x15
diff --git a/keyboards/xd75/xd75.c b/keyboards/xd75/xd75.c
index dd0ec8a433..b016643572 100644
--- a/keyboards/xd75/xd75.c
+++ b/keyboards/xd75/xd75.c
@@ -13,93 +13,56 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "xd75.h"
-#define XD75_CAPSLOCK_LED 2 // B2
-#define XD75_GP103_LED 4 // F4
-#define XD75_KEYCAPS_LED 5 // F5
-#define XD75_GP100_LED 7 // F7
+#define XD75_CAPSLOCK_LED B2
+#define XD75_GP103_LED F4
+#define XD75_GP100_LED F7
void matrix_init_kb(void) {
- // put your keyboard start-up code here
- // runs once when the firmware starts up
-
- capslock_led_init();
- gp100_led_init();
- gp103_led_init();
- keycaps_led_init();
-
- matrix_init_user();
-}
-
-void matrix_scan_kb(void) {
- // put your looping keyboard code here
- // runs every cycle (a lot)
+ capslock_led_init();
+ gp100_led_init();
+ gp103_led_init();
- matrix_scan_user();
-}
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- // put your per-action keyboard code here
- // runs for every action, just before processing by the firmware
-
- return process_record_user(keycode, record);
-}
-
-void led_set_kb(uint8_t usb_led) {
- // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
-
- led_set_user(usb_led);
+ matrix_init_user();
}
void capslock_led_init(void) {
- DDRB |= (1 << XD75_CAPSLOCK_LED);
- capslock_led_off();
+ setPinOutput(XD75_CAPSLOCK_LED);
+ capslock_led_off();
}
void capslock_led_off(void) {
- PORTB |= (1 << XD75_CAPSLOCK_LED);
+ writePinHigh(XD75_CAPSLOCK_LED);
}
void capslock_led_on(void) {
- PORTB &= ~(1 << XD75_CAPSLOCK_LED);
+ writePinLow(XD75_CAPSLOCK_LED);
}
void gp100_led_init(void) {
- DDRF |= (1 << XD75_GP100_LED);
- gp100_led_off();
+ setPinOutput(XD75_GP100_LED);
+ gp100_led_off();
}
void gp100_led_off(void) {
- PORTF |= (1 << XD75_GP100_LED);
+ writePinHigh(XD75_GP100_LED);
}
void gp100_led_on(void) {
- PORTF &= ~(1 << XD75_GP100_LED);
+ writePinLow(XD75_GP100_LED);
}
void gp103_led_init(void) {
- DDRF |= (1 << XD75_GP103_LED);
- gp103_led_off();
+ setPinOutput(XD75_GP103_LED);
+ gp103_led_off();
}
void gp103_led_off(void) {
- PORTF &= ~(1 << XD75_GP103_LED);
+ writePinLow(XD75_GP103_LED);
}
void gp103_led_on(void) {
- PORTF |= (1 << XD75_GP103_LED);
-}
-
-void keycaps_led_init(void) {
- DDRF |= (1 << XD75_KEYCAPS_LED);
- keycaps_led_off();
-}
-
-void keycaps_led_off(void) {
- PORTF |= (1 << XD75_KEYCAPS_LED);
-}
-
-void keycaps_led_on(void) {
- PORTF &= ~(1 << XD75_KEYCAPS_LED);
+ writePinHigh(XD75_GP103_LED);
}
diff --git a/keyboards/xd75/xd75.h b/keyboards/xd75/xd75.h
index c27930a845..33f2ec92a5 100644
--- a/keyboards/xd75/xd75.h
+++ b/keyboards/xd75/xd75.h
@@ -13,15 +13,32 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#pragma once
#include "quantum.h"
-// This a shortcut to help you visually see your layout.
-// The following is an example using the Planck MIT layout
-// The first section contains all of the arguments
-// The second converts the arguments into a two-dimensional array
-#define LAYOUT( \
+void capslock_led_init(void);
+void capslock_led_off(void);
+void capslock_led_on(void);
+
+void gp100_led_init(void);
+void gp100_led_off(void);
+void gp100_led_on(void);
+
+void gp103_led_init(void);
+void gp103_led_off(void);
+void gp103_led_on(void);
+
+/* This is a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_ortho_5x15( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E,\
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,\
@@ -35,34 +52,4 @@
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E } \
}
-#define LAYOUT_kc( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E,\
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,\
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E,\
- K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E \
-) { \
- { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E }, \
- { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E }, \
- { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E }, \
- { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E }, \
- { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E } \
-}
-
-#define LAYOUT_ortho_5x15 LAYOUT
-
-void capslock_led_init(void);
-void capslock_led_off(void);
-void capslock_led_on(void);
-
-void gp100_led_init(void);
-void gp100_led_off(void);
-void gp100_led_on(void);
-
-void gp103_led_init(void);
-void gp103_led_off(void);
-void gp103_led_on(void);
-
-void keycaps_led_init(void);
-void keycaps_led_off(void);
-void keycaps_led_on(void);
+#define LAYOUT LAYOUT_ortho_5x15
diff --git a/keyboards/xd84/config.h b/keyboards/xd84/config.h
index 503cba3187..9a823669db 100644
--- a/keyboards/xd84/config.h
+++ b/keyboards/xd84/config.h
@@ -209,34 +209,6 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/xd84/rules.mk b/keyboards/xd84/rules.mk
index 590038622f..b857c29a9c 100644
--- a/keyboards/xd84/rules.mk
+++ b/keyboards/xd84/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LTO_ENABLE = yes
# custom matrix setup
diff --git a/keyboards/xd87/config.h b/keyboards/xd87/config.h
index 1caaa55844..8bfa860677 100644
--- a/keyboards/xd87/config.h
+++ b/keyboards/xd87/config.h
@@ -192,30 +192,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
diff --git a/keyboards/xd87/rules.mk b/keyboards/xd87/rules.mk
index 5797e535a9..8927a07a12 100644
--- a/keyboards/xd87/rules.mk
+++ b/keyboards/xd87/rules.mk
@@ -30,7 +30,6 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
# Supported layouts
LAYOUTS = tkl_ansi tkl_iso
diff --git a/keyboards/xd96/config.h b/keyboards/xd96/config.h
index cf6fec1b96..cb1c4e2654 100644
--- a/keyboards/xd96/config.h
+++ b/keyboards/xd96/config.h
@@ -211,34 +211,6 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/xd96/rules.mk b/keyboards/xd96/rules.mk
index 8d34a1f822..9d2cd1d1f9 100644
--- a/keyboards/xd96/rules.mk
+++ b/keyboards/xd96/rules.mk
@@ -25,8 +25,11 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-BLUETOOTH_ENABLE = no # Enable Bluetooth
-AUDIO_ENABLE = no # Audio output
+MIDI_ENABLE = no # MIDI support
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE = no # Audio output on port C6
+FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LTO_ENABLE = yes
# custom matrix setup
diff --git a/keyboards/xelus/dawn60/config.h b/keyboards/xelus/dawn60/config.h
index 59eb828fa6..ebd231ca97 100644
--- a/keyboards/xelus/dawn60/config.h
+++ b/keyboards/xelus/dawn60/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2017 Jason Williams (Wilba)
+/* Copyright 2020 Harrison Chan (Xelus)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -13,133 +13,5 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#pragma once
-
+
#include "config_common.h"
-
-// USB Device descriptor parameter
-#define VENDOR_ID 0x5845 // XE
-#define PRODUCT_ID 0x0060 // Dawn60
-#define DEVICE_VER 0x0001
-#define MANUFACTURER Xelus
-#define PRODUCT Dawn60
-#define DESCRIPTION Dawn60
-
-// key matrix size
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 14
-
-//no underglow - prototype
-//#define MATRIX_ROW_PINS { B1, B3, B7, F6, F7 }
-//#define MATRIX_COL_PINS { B0, D5, B2, F5, D2, D3, D4, D6, D7, B4, B5, B6, C6, C7 }
-//#define UNUSED_PINS
-
-//underglow
-#define MATRIX_ROW_PINS { B1, B3, F1, F6, F7 }
-#define MATRIX_COL_PINS { B0, D5, B2, F5, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4 }
-#define UNUSED_PINS
-
-// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define DRIVER_LED_TOTAL 64
-
-// COL2ROW or ROW2COL
-#define DIODE_DIRECTION COL2ROW
-
-// Set 0 if debouncing isn't needed
-#define DEBOUNCE 5
-
-// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
-#define LOCKING_SUPPORT_ENABLE
-// Locking resynchronize hack
-#define LOCKING_RESYNC_ENABLE
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-// disable debug print
-//#define NO_DEBUG
-
-// disable print
-//#define NO_PRINT
-
-// disable action features
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-#define RGB_BACKLIGHT_ENABLED 1
-
-// This conditionally compiles the backlight code for Dawn60 specifics
-#define RGB_BACKLIGHT_DAWN60
-
-//RGB Underglow defines
-#define RGB_DI_PIN F0
-#define WS2812_LED_TOTAL 20
-
-#define RGB_UNDERGLOW_ALPHA_TOP_START 0
-#define RGB_UNDERGLOW_ALPHA_TOP_END 6
-#define RGB_UNDERGLOW_ALPHA_BOT_START 12
-#define RGB_UNDERGLOW_ALPHA_BOT_END 15
-
-// enable/disable LEDs based on layout
-// switch between split backspace (1) or normal backspace(0)
-#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1
-// switch between Tsangan (1) or Arrows Bottom Row (0)
-#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
-// switch between standard split rshift (0) or arrows r shift (1)
-// .------------------. .-------------------.
-// | ? | Shift | Fn | vs | Shift | Up | Fn |
-// `------------------' `-------------------'
-#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1
-
-//not used
-#define RGB_BACKLIGHT_USE_ISO_ENTER 0
-#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
-#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
-
-// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
-#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
-
-// disable backlight after timeout in minutes, 0 = no timeout
-#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
-
-// the default brightness
-#define RGB_BACKLIGHT_BRIGHTNESS 255
-
-// the default effect (RGB test)
-#define RGB_BACKLIGHT_EFFECT 255
-
-// the default effect speed (0-3)
-#define RGB_BACKLIGHT_EFFECT_SPEED 0
-
-// the default color1 and color2
-#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
-#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
-
-// These define which keys in the matrix are alphas/mods
-// Used for backlight effects so colors are different for
-// alphas vs. mods
-// Each value is for a row, bit 0 is column 0
-// Alpha=0 Mod=1
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011111000011111
-
-#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
-#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
-#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
-#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
-
-// Backlight config starts after VIA's EEPROM usage,
-// dynamic keymaps start after this.
-#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
-
-// VIA lighting is handled by the keyboard-level code
-#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/xelus/dawn60/dawn60.c b/keyboards/xelus/dawn60/dawn60.c
index bce6eea9df..3e009b3bdf 100644
--- a/keyboards/xelus/dawn60/dawn60.c
+++ b/keyboards/xelus/dawn60/dawn60.c
@@ -1,18 +1 @@
-/* Copyright 2017 Jason Williams (Wilba)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#ifndef RGB_BACKLIGHT_DAWN60
-#error RGB_BACKLIGHT_DAWN60 not defined, you done goofed somehao, brah
-#endif
+#include "dawn60.h"
diff --git a/keyboards/xelus/dawn60/dawn60.h b/keyboards/xelus/dawn60/dawn60.h
index fe63de10fe..e663e3bbe7 100644
--- a/keyboards/xelus/dawn60/dawn60.h
+++ b/keyboards/xelus/dawn60/dawn60.h
@@ -1,4 +1,4 @@
-/* Copyright 2017 Jason Williams (Wilba)
+/* Copyright 2020 Harrison Chan (Xelus)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,21 +16,7 @@
#pragma once
#include "quantum.h"
-#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
-#include "via.h"
-#define XXX KC_NO
-
-#define LAYOUT_60_all( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B, K3C, K3D, \
- K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
- { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \
- { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D } \
-}
+#if defined(KEYBOARD_xelus_dawn60_rev1)
+ #include "rev1.h"
+#endif
diff --git a/keyboards/xelus/dawn60/readme.md b/keyboards/xelus/dawn60/readme.md
index 3409bac1ee..8e01381939 100644
--- a/keyboards/xelus/dawn60/readme.md
+++ b/keyboards/xelus/dawn60/readme.md
@@ -8,6 +8,6 @@ An in-switch RGB LED keyboard with RGB underglow.
Make example for this keyboard (after setting up your build environment):
- make xelus/dawn60:default
+ make xelus/dawn60/rev1:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/xelus/dawn60/rev1/config.h b/keyboards/xelus/dawn60/rev1/config.h
new file mode 100644
index 0000000000..375bea9486
--- /dev/null
+++ b/keyboards/xelus/dawn60/rev1/config.h
@@ -0,0 +1,143 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "config_common.h"
+
+// USB Device descriptor parameter
+#define VENDOR_ID 0x5845 // XE
+#define PRODUCT_ID 0x0060 // Dawn60
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Xelus
+#define PRODUCT Dawn60
+// key matrix size
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 14
+
+//no underglow - prototype
+//#define MATRIX_ROW_PINS { B1, B3, B7, F6, F7 }
+//#define MATRIX_COL_PINS { B0, D5, B2, F5, D2, D3, D4, D6, D7, B4, B5, B6, C6, C7 }
+//#define UNUSED_PINS
+
+//underglow
+#define MATRIX_ROW_PINS { B1, B3, F1, F6, F7 }
+#define MATRIX_COL_PINS { B0, D5, B2, F5, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4 }
+#define UNUSED_PINS
+
+// IS31FL3731 driver
+#define DRIVER_COUNT 2
+#define DRIVER_LED_TOTAL 64
+
+// COL2ROW or ROW2COL
+#define DIODE_DIRECTION COL2ROW
+
+// Set 0 if debouncing isn't needed
+#define DEBOUNCE 5
+
+// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
+#define LOCKING_SUPPORT_ENABLE
+// Locking resynchronize hack
+#define LOCKING_RESYNC_ENABLE
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+// disable debug print
+//#define NO_DEBUG
+
+// disable print
+//#define NO_PRINT
+
+// disable action features
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#define RGB_BACKLIGHT_ENABLED 1
+
+// This conditionally compiles the backlight code for Dawn60 specifics
+#define RGB_BACKLIGHT_DAWN60
+
+//RGB Underglow defines
+#define RGB_DI_PIN F0
+#define WS2812_LED_TOTAL 20
+
+#define RGB_UNDERGLOW_ALPHA_TOP_START 0
+#define RGB_UNDERGLOW_ALPHA_TOP_END 6
+#define RGB_UNDERGLOW_ALPHA_BOT_START 12
+#define RGB_UNDERGLOW_ALPHA_BOT_END 15
+
+// enable/disable LEDs based on layout
+// switch between split backspace (1) or normal backspace(0)
+#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1
+// switch between Tsangan (1) or Arrows Bottom Row (0)
+#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
+// switch between standard split rshift (0) or arrows r shift (1)
+// .------------------. .-------------------.
+// | ? | Shift | Fn | vs | Shift | Up | Fn |
+// `------------------' `-------------------'
+#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1
+
+//not used
+#define RGB_BACKLIGHT_USE_ISO_ENTER 0
+#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
+#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
+
+// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
+#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
+
+// disable backlight after timeout in minutes, 0 = no timeout
+#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
+
+// the default brightness
+#define RGB_BACKLIGHT_BRIGHTNESS 255
+
+// the default effect (RGB test)
+#define RGB_BACKLIGHT_EFFECT 255
+
+// the default effect speed (0-3)
+#define RGB_BACKLIGHT_EFFECT_SPEED 0
+
+// the default color1 and color2
+#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
+#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
+
+// These define which keys in the matrix are alphas/mods
+// Used for backlight effects so colors are different for
+// alphas vs. mods
+// Each value is for a row, bit 0 is column 0
+// Alpha=0 Mod=1
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
+#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011111000011111
+
+#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
+
+// Backlight config starts after VIA's EEPROM usage,
+// dynamic keymaps start after this.
+#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
+
+// VIA lighting is handled by the keyboard-level code
+#define VIA_CUSTOM_LIGHTING_ENABLE
diff --git a/keyboards/kbdfans/kbd66/keymaps/maartenwut/config.h b/keyboards/xelus/dawn60/rev1/rev1.c
index c7b3d6ecc3..2d0b465bcc 100644
--- a/keyboards/kbdfans/kbd66/keymaps/maartenwut/config.h
+++ b/keyboards/xelus/dawn60/rev1/rev1.c
@@ -1,4 +1,4 @@
-/* Copyright 2018 Alex Peters
+/* Copyright 2020 Harrison Chan (Xelus)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -13,12 +13,6 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "config_common.h"
-
-// place overrides here
-
+#ifndef RGB_BACKLIGHT_DAWN60
+#error RGB_BACKLIGHT_DAWN60 not defined, you done goofed somehao, brah
#endif
diff --git a/keyboards/xelus/dawn60/rev1/rev1.h b/keyboards/xelus/dawn60/rev1/rev1.h
new file mode 100644
index 0000000000..53d40e5499
--- /dev/null
+++ b/keyboards/xelus/dawn60/rev1/rev1.h
@@ -0,0 +1,36 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include "quantum.h"
+#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
+#include "via.h"
+
+#define XXX KC_NO
+
+#define LAYOUT_60_all( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B, K3C, K3D, \
+ K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
+) { \
+ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
+ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
+ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
+ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \
+ { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D } \
+}
diff --git a/keyboards/xelus/dawn60/rules.mk b/keyboards/xelus/dawn60/rev1/rules.mk
index 3ac5f9977d..3ac5f9977d 100644
--- a/keyboards/xelus/dawn60/rules.mk
+++ b/keyboards/xelus/dawn60/rev1/rules.mk
diff --git a/keyboards/xelus/valor/config.h b/keyboards/xelus/valor/rev1/config.h
index a45ecbc079..a45ecbc079 100644
--- a/keyboards/xelus/valor/config.h
+++ b/keyboards/xelus/valor/rev1/config.h
diff --git a/keyboards/xelus/valor/keymaps/default/keymap.c b/keyboards/xelus/valor/rev1/keymaps/default/keymap.c
index 3cf8111e97..3cf8111e97 100644
--- a/keyboards/xelus/valor/keymaps/default/keymap.c
+++ b/keyboards/xelus/valor/rev1/keymaps/default/keymap.c
diff --git a/keyboards/xelus/valor/keymaps/default/readme.md b/keyboards/xelus/valor/rev1/keymaps/default/readme.md
index d596c606c7..d596c606c7 100644
--- a/keyboards/xelus/valor/keymaps/default/readme.md
+++ b/keyboards/xelus/valor/rev1/keymaps/default/readme.md
diff --git a/keyboards/xelus/valor/keymaps/via/keymap.c b/keyboards/xelus/valor/rev1/keymaps/via/keymap.c
index b3395f1dfb..b3395f1dfb 100644
--- a/keyboards/xelus/valor/keymaps/via/keymap.c
+++ b/keyboards/xelus/valor/rev1/keymaps/via/keymap.c
diff --git a/keyboards/xelus/valor/keymaps/via/readme.md b/keyboards/xelus/valor/rev1/keymaps/via/readme.md
index 1efb713ba9..1efb713ba9 100644
--- a/keyboards/xelus/valor/keymaps/via/readme.md
+++ b/keyboards/xelus/valor/rev1/keymaps/via/readme.md
diff --git a/keyboards/maartenwut/ta65/keymaps/via/rules.mk b/keyboards/xelus/valor/rev1/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/maartenwut/ta65/keymaps/via/rules.mk
+++ b/keyboards/xelus/valor/rev1/keymaps/via/rules.mk
diff --git a/keyboards/xelus/valor/readme.md b/keyboards/xelus/valor/rev1/readme.md
index 85cc9ad723..decd1fe29f 100644
--- a/keyboards/xelus/valor/readme.md
+++ b/keyboards/xelus/valor/rev1/readme.md
@@ -8,6 +8,6 @@ An Alice replacement keyboard PCB.
Make example for this keyboard (after setting up your build environment):
- make xelus/valor:default
+ make xelus/valor/rev1:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/xelus/valor/valor.c b/keyboards/xelus/valor/rev1/rev1.c
index 5157a2c730..614899aaed 100644
--- a/keyboards/xelus/valor/valor.c
+++ b/keyboards/xelus/valor/rev1/rev1.c
@@ -16,4 +16,4 @@
// Nothing to see here, move along... ;-)
-#include "valor.h" \ No newline at end of file
+#include "rev1.h" \ No newline at end of file
diff --git a/keyboards/xelus/valor/valor.h b/keyboards/xelus/valor/rev1/rev1.h
index c43274605d..c43274605d 100644
--- a/keyboards/xelus/valor/valor.h
+++ b/keyboards/xelus/valor/rev1/rev1.h
diff --git a/keyboards/xelus/valor/rules.mk b/keyboards/xelus/valor/rev1/rules.mk
index f244afd31c..f244afd31c 100644
--- a/keyboards/xelus/valor/rules.mk
+++ b/keyboards/xelus/valor/rev1/rules.mk
diff --git a/keyboards/xelus/valor_frl_tkl/chconf.h b/keyboards/xelus/valor_frl_tkl/chconf.h
new file mode 100644
index 0000000000..03f63da36a
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/chconf.h
@@ -0,0 +1,714 @@
+/*
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file rt/templates/chconf.h
+ * @brief Configuration file template.
+ * @details A copy of this file must be placed in each project directory, it
+ * contains the application specific kernel settings.
+ *
+ * @addtogroup config
+ * @details Kernel related settings and hooks.
+ * @{
+ */
+
+#ifndef CHCONF_H
+#define CHCONF_H
+
+#define _CHIBIOS_RT_CONF_
+#define _CHIBIOS_RT_CONF_VER_6_0_
+
+/*===========================================================================*/
+/**
+ * @name System timers settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief System time counter resolution.
+ * @note Allowed values are 16 or 32 bits.
+ */
+#if !defined(CH_CFG_ST_RESOLUTION)
+#define CH_CFG_ST_RESOLUTION 32
+#endif
+
+/**
+ * @brief System tick frequency.
+ * @details Frequency of the system timer that drives the system ticks. This
+ * setting also defines the system tick time unit.
+ */
+#if !defined(CH_CFG_ST_FREQUENCY)
+#define CH_CFG_ST_FREQUENCY 10000
+#endif
+
+/**
+ * @brief Time intervals data size.
+ * @note Allowed values are 16, 32 or 64 bits.
+ */
+#if !defined(CH_CFG_INTERVALS_SIZE)
+#define CH_CFG_INTERVALS_SIZE 32
+#endif
+
+/**
+ * @brief Time types data size.
+ * @note Allowed values are 16 or 32 bits.
+ */
+#if !defined(CH_CFG_TIME_TYPES_SIZE)
+#define CH_CFG_TIME_TYPES_SIZE 32
+#endif
+
+/**
+ * @brief Time delta constant for the tick-less mode.
+ * @note If this value is zero then the system uses the classic
+ * periodic tick. This value represents the minimum number
+ * of ticks that is safe to specify in a timeout directive.
+ * The value one is not valid, timeouts are rounded up to
+ * this value.
+ */
+#if !defined(CH_CFG_ST_TIMEDELTA)
+#define CH_CFG_ST_TIMEDELTA 2
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel parameters and options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Round robin interval.
+ * @details This constant is the number of system ticks allowed for the
+ * threads before preemption occurs. Setting this value to zero
+ * disables the preemption for threads with equal priority and the
+ * round robin becomes cooperative. Note that higher priority
+ * threads can still preempt, the kernel is always preemptive.
+ * @note Disabling the round robin preemption makes the kernel more compact
+ * and generally faster.
+ * @note The round robin preemption is not supported in tickless mode and
+ * must be set to zero in that case.
+ */
+#if !defined(CH_CFG_TIME_QUANTUM)
+#define CH_CFG_TIME_QUANTUM 0
+#endif
+
+/**
+ * @brief Managed RAM size.
+ * @details Size of the RAM area to be managed by the OS. If set to zero
+ * then the whole available RAM is used. The core memory is made
+ * available to the heap allocator and/or can be used directly through
+ * the simplified core memory allocator.
+ *
+ * @note In order to let the OS manage the whole RAM the linker script must
+ * provide the @p __heap_base__ and @p __heap_end__ symbols.
+ * @note Requires @p CH_CFG_USE_MEMCORE.
+ */
+#if !defined(CH_CFG_MEMCORE_SIZE)
+#define CH_CFG_MEMCORE_SIZE 0
+#endif
+
+/**
+ * @brief Idle thread automatic spawn suppression.
+ * @details When this option is activated the function @p chSysInit()
+ * does not spawn the idle thread. The application @p main()
+ * function becomes the idle thread and must implement an
+ * infinite loop.
+ */
+#if !defined(CH_CFG_NO_IDLE_THREAD)
+#define CH_CFG_NO_IDLE_THREAD FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Performance options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief OS optimization.
+ * @details If enabled then time efficient rather than space efficient code
+ * is used when two possible implementations exist.
+ *
+ * @note This is not related to the compiler optimization options.
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_OPTIMIZE_SPEED)
+#define CH_CFG_OPTIMIZE_SPEED FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Subsystem options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Time Measurement APIs.
+ * @details If enabled then the time measurement APIs are included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_TM)
+#define CH_CFG_USE_TM FALSE
+#endif
+
+/**
+ * @brief Threads registry APIs.
+ * @details If enabled then the registry APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_REGISTRY)
+#define CH_CFG_USE_REGISTRY TRUE
+#endif
+
+/**
+ * @brief Threads synchronization APIs.
+ * @details If enabled then the @p chThdWait() function is included in
+ * the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_WAITEXIT)
+#define CH_CFG_USE_WAITEXIT TRUE
+#endif
+
+/**
+ * @brief Semaphores APIs.
+ * @details If enabled then the Semaphores APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_SEMAPHORES)
+#define CH_CFG_USE_SEMAPHORES TRUE
+#endif
+
+/**
+ * @brief Semaphores queuing mode.
+ * @details If enabled then the threads are enqueued on semaphores by
+ * priority rather than in FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
+#endif
+
+/**
+ * @brief Mutexes APIs.
+ * @details If enabled then the mutexes APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MUTEXES)
+#define CH_CFG_USE_MUTEXES TRUE
+#endif
+
+/**
+ * @brief Enables recursive behavior on mutexes.
+ * @note Recursive mutexes are heavier and have an increased
+ * memory footprint.
+ *
+ * @note The default is @p FALSE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
+#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
+#endif
+
+/**
+ * @brief Conditional Variables APIs.
+ * @details If enabled then the conditional variables APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MUTEXES.
+ */
+#if !defined(CH_CFG_USE_CONDVARS)
+#define CH_CFG_USE_CONDVARS TRUE
+#endif
+
+/**
+ * @brief Conditional Variables APIs with timeout.
+ * @details If enabled then the conditional variables APIs with timeout
+ * specification are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_CONDVARS.
+ */
+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
+#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
+#endif
+
+/**
+ * @brief Events Flags APIs.
+ * @details If enabled then the event flags APIs are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_EVENTS)
+#define CH_CFG_USE_EVENTS TRUE
+#endif
+
+/**
+ * @brief Events Flags APIs with timeout.
+ * @details If enabled then the events APIs with timeout specification
+ * are included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_EVENTS.
+ */
+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
+#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
+#endif
+
+/**
+ * @brief Synchronous Messages APIs.
+ * @details If enabled then the synchronous messages APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MESSAGES)
+#define CH_CFG_USE_MESSAGES TRUE
+#endif
+
+/**
+ * @brief Synchronous Messages queuing mode.
+ * @details If enabled then messages are served by priority rather than in
+ * FIFO order.
+ *
+ * @note The default is @p FALSE. Enable this if you have special
+ * requirements.
+ * @note Requires @p CH_CFG_USE_MESSAGES.
+ */
+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
+#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
+#endif
+
+/**
+ * @brief Mailboxes APIs.
+ * @details If enabled then the asynchronous messages (mailboxes) APIs are
+ * included in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
+ */
+#if !defined(CH_CFG_USE_MAILBOXES)
+#define CH_CFG_USE_MAILBOXES TRUE
+#endif
+
+/**
+ * @brief Core Memory Manager APIs.
+ * @details If enabled then the core memory manager APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MEMCORE)
+#define CH_CFG_USE_MEMCORE TRUE
+#endif
+
+/**
+ * @brief Heap Allocator APIs.
+ * @details If enabled then the memory heap allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
+ * @p CH_CFG_USE_SEMAPHORES.
+ * @note Mutexes are recommended.
+ */
+#if !defined(CH_CFG_USE_HEAP)
+#define CH_CFG_USE_HEAP FALSE
+#endif
+
+/**
+ * @brief Memory Pools Allocator APIs.
+ * @details If enabled then the memory pools allocator APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_MEMPOOLS)
+#define CH_CFG_USE_MEMPOOLS FALSE
+#endif
+
+/**
+ * @brief Objects FIFOs APIs.
+ * @details If enabled then the objects FIFOs APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_OBJ_FIFOS)
+#define CH_CFG_USE_OBJ_FIFOS FALSE
+#endif
+
+/**
+ * @brief Pipes APIs.
+ * @details If enabled then the pipes APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ */
+#if !defined(CH_CFG_USE_PIPES)
+#define CH_CFG_USE_PIPES FALSE
+#endif
+
+/**
+ * @brief Dynamic Threads APIs.
+ * @details If enabled then the dynamic threads creation APIs are included
+ * in the kernel.
+ *
+ * @note The default is @p TRUE.
+ * @note Requires @p CH_CFG_USE_WAITEXIT.
+ * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
+ */
+#if !defined(CH_CFG_USE_DYNAMIC)
+#define CH_CFG_USE_DYNAMIC FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Objects factory options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Objects Factory APIs.
+ * @details If enabled then the objects factory APIs are included in the
+ * kernel.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_CFG_USE_FACTORY)
+#define CH_CFG_USE_FACTORY FALSE
+#endif
+
+/**
+ * @brief Maximum length for object names.
+ * @details If the specified length is zero then the name is stored by
+ * pointer but this could have unintended side effects.
+ */
+#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH)
+#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8
+#endif
+
+/**
+ * @brief Enables the registry of generic objects.
+ */
+#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY)
+#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE
+#endif
+
+/**
+ * @brief Enables factory for generic buffers.
+ */
+#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS)
+#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE
+#endif
+
+/**
+ * @brief Enables factory for semaphores.
+ */
+#if !defined(CH_CFG_FACTORY_SEMAPHORES)
+#define CH_CFG_FACTORY_SEMAPHORES FALSE
+#endif
+
+/**
+ * @brief Enables factory for mailboxes.
+ */
+#if !defined(CH_CFG_FACTORY_MAILBOXES)
+#define CH_CFG_FACTORY_MAILBOXES FALSE
+#endif
+
+/**
+ * @brief Enables factory for objects FIFOs.
+ */
+#if !defined(CH_CFG_FACTORY_OBJ_FIFOS)
+#define CH_CFG_FACTORY_OBJ_FIFOS FALSE
+#endif
+
+/**
+ * @brief Enables factory for Pipes.
+ */
+#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__)
+#define CH_CFG_FACTORY_PIPES FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Debug options
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Debug option, kernel statistics.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_STATISTICS)
+#define CH_DBG_STATISTICS FALSE
+#endif
+
+/**
+ * @brief Debug option, system state check.
+ * @details If enabled the correct call protocol for system APIs is checked
+ * at runtime.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
+#define CH_DBG_SYSTEM_STATE_CHECK FALSE
+#endif
+
+/**
+ * @brief Debug option, parameters checks.
+ * @details If enabled then the checks on the API functions input
+ * parameters are activated.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_ENABLE_CHECKS)
+#define CH_DBG_ENABLE_CHECKS FALSE
+#endif
+
+/**
+ * @brief Debug option, consistency checks.
+ * @details If enabled then all the assertions in the kernel code are
+ * activated. This includes consistency checks inside the kernel,
+ * runtime anomalies and port-defined checks.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_ENABLE_ASSERTS)
+#define CH_DBG_ENABLE_ASSERTS FALSE
+#endif
+
+/**
+ * @brief Debug option, trace buffer.
+ * @details If enabled then the trace buffer is activated.
+ *
+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_MASK)
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
+#endif
+
+/**
+ * @brief Trace buffer entries.
+ * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
+ * different from @p CH_DBG_TRACE_MASK_DISABLED.
+ */
+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
+#define CH_DBG_TRACE_BUFFER_SIZE 128
+#endif
+
+/**
+ * @brief Debug option, stack checks.
+ * @details If enabled then a runtime stack check is performed.
+ *
+ * @note The default is @p FALSE.
+ * @note The stack check is performed in a architecture/port dependent way.
+ * It may not be implemented or some ports.
+ * @note The default failure mode is to halt the system with the global
+ * @p panic_msg variable set to @p NULL.
+ */
+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
+#define CH_DBG_ENABLE_STACK_CHECK FALSE
+#endif
+
+/**
+ * @brief Debug option, stacks initialization.
+ * @details If enabled then the threads working area is filled with a byte
+ * value when a thread is created. This can be useful for the
+ * runtime measurement of the used stack.
+ *
+ * @note The default is @p FALSE.
+ */
+#if !defined(CH_DBG_FILL_THREADS)
+#define CH_DBG_FILL_THREADS FALSE
+#endif
+
+/**
+ * @brief Debug option, threads profiling.
+ * @details If enabled then a field is added to the @p thread_t structure that
+ * counts the system ticks occurred while executing the thread.
+ *
+ * @note The default is @p FALSE.
+ * @note This debug option is not currently compatible with the
+ * tickless mode.
+ */
+#if !defined(CH_DBG_THREADS_PROFILING)
+#define CH_DBG_THREADS_PROFILING FALSE
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Kernel hooks
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief System structure extension.
+ * @details User fields added to the end of the @p ch_system_t structure.
+ */
+#define CH_CFG_SYSTEM_EXTRA_FIELDS \
+ /* Add threads custom fields here.*/
+
+/**
+ * @brief System initialization hook.
+ * @details User initialization code added to the @p chSysInit() function
+ * just before interrupts are enabled globally.
+ */
+#define CH_CFG_SYSTEM_INIT_HOOK() { \
+ /* Add threads initialization code here.*/ \
+}
+
+/**
+ * @brief Threads descriptor structure extension.
+ * @details User fields added to the end of the @p thread_t structure.
+ */
+#define CH_CFG_THREAD_EXTRA_FIELDS \
+ /* Add threads custom fields here.*/
+
+/**
+ * @brief Threads initialization hook.
+ * @details User initialization code added to the @p _thread_init() function.
+ *
+ * @note It is invoked from within @p _thread_init() and implicitly from all
+ * the threads creation APIs.
+ */
+#define CH_CFG_THREAD_INIT_HOOK(tp) { \
+ /* Add threads initialization code here.*/ \
+}
+
+/**
+ * @brief Threads finalization hook.
+ * @details User finalization code added to the @p chThdExit() API.
+ */
+#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
+ /* Add threads finalization code here.*/ \
+}
+
+/**
+ * @brief Context switch hook.
+ * @details This hook is invoked just before switching between threads.
+ */
+#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
+ /* Context switch code here.*/ \
+}
+
+/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
+
+/**
+ * @brief Idle thread enter hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to activate a power saving mode.
+ */
+#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
+}
+
+/**
+ * @brief Idle thread leave hook.
+ * @note This hook is invoked within a critical zone, no OS functions
+ * should be invoked from here.
+ * @note This macro can be used to deactivate a power saving mode.
+ */
+#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
+}
+
+/**
+ * @brief Idle Loop hook.
+ * @details This hook is continuously invoked by the idle thread loop.
+ */
+#define CH_CFG_IDLE_LOOP_HOOK() { \
+ /* Idle loop code here.*/ \
+}
+
+/**
+ * @brief System tick event hook.
+ * @details This hook is invoked in the system tick handler immediately
+ * after processing the virtual timers queue.
+ */
+#define CH_CFG_SYSTEM_TICK_HOOK() { \
+ /* System tick event code here.*/ \
+}
+
+/**
+ * @brief System halt hook.
+ * @details This hook is invoked in case to a system halting error before
+ * the system is halted.
+ */
+#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
+ /* System halt code here.*/ \
+}
+
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
+
+/** @} */
+
+/*===========================================================================*/
+/* Port-specific settings (override port settings defaulted in chcore.h). */
+/*===========================================================================*/
+
+#endif /* CHCONF_H */
+
+/** @} */
diff --git a/keyboards/xelus/valor_frl_tkl/config.h b/keyboards/xelus/valor_frl_tkl/config.h
new file mode 100644
index 0000000000..09af443dd5
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/config.h
@@ -0,0 +1,66 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x5845 // "XE"
+#define PRODUCT_ID 0x4654 // "FT"
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Xelus
+#define PRODUCT Xelus Valor FRL TKL
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 17
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { A15, A14, A1, B3, B4 }
+#define MATRIX_COL_PINS { A9, A8, B15, B14, B13, B12, A0, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCE 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+// I2C OLED defines
+#define I2C1_SCL 8
+#define I2C1_SDA 9
+
+#define I2C1_SCL_PAL_MODE 1
+#define I2C1_SDA_PAL_MODE 1
+
+#define I2C1_TIMINGR_PRESC 0U
+#define I2C1_TIMINGR_SCLDEL 3U
+#define I2C1_TIMINGR_SDADEL 1U
+#define I2C1_TIMINGR_SCLH 3U
+#define I2C1_TIMINGR_SCLL 9U
+
+// I2C EEPROM
+#define EEPROM_I2C_CAT24C512
+
+// Dynamic EEPROM
+#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 65535
diff --git a/keyboards/xelus/valor_frl_tkl/halconf.h b/keyboards/xelus/valor_frl_tkl/halconf.h
new file mode 100644
index 0000000000..de0f29ce6e
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/halconf.h
@@ -0,0 +1,525 @@
+/*
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @file templates/halconf.h
+ * @brief HAL configuration header.
+ * @details HAL configuration file, this file allows to enable or disable the
+ * various device drivers from your application. You may also use
+ * this file in order to override the device drivers default settings.
+ *
+ * @addtogroup HAL_CONF
+ * @{
+ */
+
+#ifndef HALCONF_H
+#define HALCONF_H
+
+#define _CHIBIOS_HAL_CONF_
+#define _CHIBIOS_HAL_CONF_VER_7_0_
+
+#include "mcuconf.h"
+
+/**
+ * @brief Enables the PAL subsystem.
+ */
+#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
+#define HAL_USE_PAL TRUE
+#endif
+
+/**
+ * @brief Enables the ADC subsystem.
+ */
+#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
+#define HAL_USE_ADC FALSE
+#endif
+
+/**
+ * @brief Enables the CAN subsystem.
+ */
+#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
+#define HAL_USE_CAN FALSE
+#endif
+
+/**
+ * @brief Enables the cryptographic subsystem.
+ */
+#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__)
+#define HAL_USE_CRY FALSE
+#endif
+
+/**
+ * @brief Enables the DAC subsystem.
+ */
+#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
+#define HAL_USE_DAC FALSE
+#endif
+
+/**
+ * @brief Enables the GPT subsystem.
+ */
+#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
+#define HAL_USE_GPT FALSE
+#endif
+
+/**
+ * @brief Enables the I2C subsystem.
+ */
+#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
+#define HAL_USE_I2C TRUE
+#endif
+
+/**
+ * @brief Enables the I2S subsystem.
+ */
+#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
+#define HAL_USE_I2S FALSE
+#endif
+
+/**
+ * @brief Enables the ICU subsystem.
+ */
+#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
+#define HAL_USE_ICU FALSE
+#endif
+
+/**
+ * @brief Enables the MAC subsystem.
+ */
+#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
+#define HAL_USE_MAC FALSE
+#endif
+
+/**
+ * @brief Enables the MMC_SPI subsystem.
+ */
+#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_MMC_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the PWM subsystem.
+ */
+#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
+#define HAL_USE_PWM FALSE
+#endif
+
+/**
+ * @brief Enables the RTC subsystem.
+ */
+#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
+#define HAL_USE_RTC FALSE
+#endif
+
+/**
+ * @brief Enables the SDC subsystem.
+ */
+#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
+#define HAL_USE_SDC FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL subsystem.
+ */
+#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL FALSE
+#endif
+
+/**
+ * @brief Enables the SERIAL over USB subsystem.
+ */
+#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
+#define HAL_USE_SERIAL_USB FALSE
+#endif
+
+/**
+ * @brief Enables the SIO subsystem.
+ */
+#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__)
+#define HAL_USE_SIO FALSE
+#endif
+
+/**
+ * @brief Enables the SPI subsystem.
+ */
+#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
+#define HAL_USE_SPI FALSE
+#endif
+
+/**
+ * @brief Enables the TRNG subsystem.
+ */
+#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__)
+#define HAL_USE_TRNG FALSE
+#endif
+
+/**
+ * @brief Enables the UART subsystem.
+ */
+#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
+#define HAL_USE_UART FALSE
+#endif
+
+/**
+ * @brief Enables the USB subsystem.
+ */
+#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
+#define HAL_USE_USB TRUE
+#endif
+
+/**
+ * @brief Enables the WDG subsystem.
+ */
+#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
+#define HAL_USE_WDG FALSE
+#endif
+
+/**
+ * @brief Enables the WSPI subsystem.
+ */
+#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__)
+#define HAL_USE_WSPI FALSE
+#endif
+
+/*===========================================================================*/
+/* PAL driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__)
+#define PAL_USE_CALLBACKS FALSE
+#endif
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__)
+#define PAL_USE_WAIT FALSE
+#endif
+
+/*===========================================================================*/
+/* ADC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
+#define ADC_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define ADC_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* CAN driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Sleep mode related APIs inclusion switch.
+ */
+#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
+#define CAN_USE_SLEEP_MODE TRUE
+#endif
+
+/**
+ * @brief Enforces the driver to use direct callbacks rather than OSAL events.
+ */
+#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__)
+#define CAN_ENFORCE_USE_CALLBACKS FALSE
+#endif
+
+/*===========================================================================*/
+/* CRY driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the SW fall-back of the cryptographic driver.
+ * @details When enabled, this option, activates a fall-back software
+ * implementation for algorithms not supported by the underlying
+ * hardware.
+ * @note Fall-back implementations may not be present for all algorithms.
+ */
+#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__)
+#define HAL_CRY_USE_FALLBACK FALSE
+#endif
+
+/**
+ * @brief Makes the driver forcibly use the fall-back implementations.
+ */
+#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__)
+#define HAL_CRY_ENFORCE_FALLBACK FALSE
+#endif
+
+/*===========================================================================*/
+/* DAC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__)
+#define DAC_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define DAC_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* I2C driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the mutual exclusion APIs on the I2C bus.
+ */
+#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define I2C_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/*===========================================================================*/
+/* MAC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the zero-copy API.
+ */
+#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
+#define MAC_USE_ZERO_COPY FALSE
+#endif
+
+/**
+ * @brief Enables an event sources for incoming packets.
+ */
+#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
+#define MAC_USE_EVENTS TRUE
+#endif
+
+/*===========================================================================*/
+/* MMC_SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ * This option is recommended also if the SPI driver does not
+ * use a DMA channel and heavily loads the CPU.
+ */
+#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
+#define MMC_NICE_WAITING TRUE
+#endif
+
+/*===========================================================================*/
+/* SDC driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Number of initialization attempts before rejecting the card.
+ * @note Attempts are performed at 10mS intervals.
+ */
+#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
+#define SDC_INIT_RETRY 100
+#endif
+
+/**
+ * @brief Include support for MMC cards.
+ * @note MMC support is not yet implemented so this option must be kept
+ * at @p FALSE.
+ */
+#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
+#define SDC_MMC_SUPPORT FALSE
+#endif
+
+/**
+ * @brief Delays insertions.
+ * @details If enabled this options inserts delays into the MMC waiting
+ * routines releasing some extra CPU time for the threads with
+ * lower priority, this may slow down the driver a bit however.
+ */
+#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
+#define SDC_NICE_WAITING TRUE
+#endif
+
+/**
+ * @brief OCR initialization constant for V20 cards.
+ */
+#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__)
+#define SDC_INIT_OCR_V20 0x50FF8000U
+#endif
+
+/**
+ * @brief OCR initialization constant for non-V20 cards.
+ */
+#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__)
+#define SDC_INIT_OCR 0x80100000U
+#endif
+
+/*===========================================================================*/
+/* SERIAL driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Default bit rate.
+ * @details Configuration parameter, this is the baud rate selected for the
+ * default configuration.
+ */
+#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
+#define SERIAL_DEFAULT_BITRATE 38400
+#endif
+
+/**
+ * @brief Serial buffers size.
+ * @details Configuration parameter, you can change the depth of the queue
+ * buffers depending on the requirements of your application.
+ * @note The default is 16 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_BUFFERS_SIZE 16
+#endif
+
+/*===========================================================================*/
+/* SERIAL_USB driver related setting. */
+/*===========================================================================*/
+
+/**
+ * @brief Serial over USB buffers size.
+ * @details Configuration parameter, the buffer size must be a multiple of
+ * the USB data endpoint maximum packet size.
+ * @note The default is 256 bytes for both the transmission and receive
+ * buffers.
+ */
+#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
+#define SERIAL_USB_BUFFERS_SIZE 1
+#endif
+
+/**
+ * @brief Serial over USB number of buffers.
+ * @note The default is 2 buffers.
+ */
+#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
+#define SERIAL_USB_BUFFERS_NUMBER 2
+#endif
+
+/*===========================================================================*/
+/* SPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
+#define SPI_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables circular transfers APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__)
+#define SPI_USE_CIRCULAR FALSE
+#endif
+
+
+/**
+ * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define SPI_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+/**
+ * @brief Handling method for SPI CS line.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__)
+#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
+#endif
+
+/*===========================================================================*/
+/* UART driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
+#define UART_USE_WAIT FALSE
+#endif
+
+/**
+ * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define UART_USE_MUTUAL_EXCLUSION FALSE
+#endif
+
+/*===========================================================================*/
+/* USB driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
+#define USB_USE_WAIT TRUE
+#endif
+
+/*===========================================================================*/
+/* WSPI driver related settings. */
+/*===========================================================================*/
+
+/**
+ * @brief Enables synchronous APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__)
+#define WSPI_USE_WAIT TRUE
+#endif
+
+/**
+ * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs.
+ * @note Disabling this option saves both code and data space.
+ */
+#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
+#define WSPI_USE_MUTUAL_EXCLUSION TRUE
+#endif
+
+#endif /* HALCONF_H */
+
+/** @} */
diff --git a/keyboards/xd75/keymaps/default/config.h b/keyboards/xelus/valor_frl_tkl/keymaps/default/config.h
index e6975da8a2..604c00df9f 100644
--- a/keyboards/xd75/keymaps/default/config.h
+++ b/keyboards/xelus/valor_frl_tkl/keymaps/default/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2017 Benjamin Kesselring
+/* Copyright 2020 Harrison Chan (Xelus)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -13,7 +13,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
#pragma once
-// place overrides here
+#define USB_POLLING_INTERVAL_MS 1
+#define QMK_KEYS_PER_SCAN 4
diff --git a/keyboards/xelus/valor_frl_tkl/keymaps/default/keymap.c b/keyboards/xelus/valor_frl_tkl/keymaps/default/keymap.c
new file mode 100644
index 0000000000..24c1571995
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/keymaps/default/keymap.c
@@ -0,0 +1,34 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGUI, KC_UP,
+ KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/xelus/valor_frl_tkl/keymaps/default/readme.md b/keyboards/xelus/valor_frl_tkl/keymaps/default/readme.md
new file mode 100644
index 0000000000..3f9d6dff5f
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/keymaps/default/readme.md
@@ -0,0 +1,2 @@
+# The Default Valor FRL TKL Layout
+
diff --git a/keyboards/xelus/valor_frl_tkl/keymaps/via/config.h b/keyboards/xelus/valor_frl_tkl/keymaps/via/config.h
new file mode 100644
index 0000000000..604c00df9f
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/keymaps/via/config.h
@@ -0,0 +1,19 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#define USB_POLLING_INTERVAL_MS 1
+#define QMK_KEYS_PER_SCAN 4
diff --git a/keyboards/xelus/valor_frl_tkl/keymaps/via/keymap.c b/keyboards/xelus/valor_frl_tkl/keymaps/via/keymap.c
new file mode 100644
index 0000000000..24d2627272
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/keymaps/via/keymap.c
@@ -0,0 +1,50 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_all(
+ KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGUI, KC_UP,
+ KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ [1] = LAYOUT_all(
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [2] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [3] = LAYOUT_all(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/xelus/valor_frl_tkl/keymaps/via/readme.md b/keyboards/xelus/valor_frl_tkl/keymaps/via/readme.md
new file mode 100644
index 0000000000..c1f633ac39
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/keymaps/via/readme.md
@@ -0,0 +1,2 @@
+# The VIA Valor FRL TKL Layout
+
diff --git a/keyboards/xelus/valor/keymaps/via/rules.mk b/keyboards/xelus/valor_frl_tkl/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/xelus/valor/keymaps/via/rules.mk
+++ b/keyboards/xelus/valor_frl_tkl/keymaps/via/rules.mk
diff --git a/keyboards/xelus/valor_frl_tkl/mcuconf.h b/keyboards/xelus/valor_frl_tkl/mcuconf.h
new file mode 100644
index 0000000000..8d706de2ae
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/mcuconf.h
@@ -0,0 +1,176 @@
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+/*
+ * STM32F0xx drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the whole
+ * driver is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 3...0 Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3 Lowest...Highest.
+ */
+
+#define STM32F0xx_MCUCONF
+// #define STM32F070xB
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_NO_INIT FALSE
+#define STM32_PVD_ENABLE FALSE
+#define STM32_PLS STM32_PLS_LEV0
+#define STM32_HSI_ENABLED TRUE
+#define STM32_HSI14_ENABLED TRUE
+#define STM32_HSI48_ENABLED FALSE
+#define STM32_LSI_ENABLED TRUE
+#define STM32_HSE_ENABLED FALSE
+#define STM32_LSE_ENABLED FALSE
+#define STM32_SW STM32_SW_PLL
+#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2
+#define STM32_PREDIV_VALUE 1
+#define STM32_PLLMUL_VALUE 12
+#define STM32_HPRE STM32_HPRE_DIV1
+#define STM32_PPRE STM32_PPRE_DIV1
+#define STM32_ADCSW STM32_ADCSW_HSI14
+#define STM32_ADCPRE STM32_ADCPRE_DIV4
+#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
+#define STM32_ADCPRE STM32_ADCPRE_DIV4
+#define STM32_ADCSW STM32_ADCSW_HSI14
+#define STM32_USBSW STM32_USBSW_HSI48
+#define STM32_CECSW STM32_CECSW_HSI
+#define STM32_I2C1SW STM32_I2C1SW_HSI
+#define STM32_USART1SW STM32_USART1SW_PCLK
+#define STM32_RTCSEL STM32_RTCSEL_LSI
+
+/*
+ * ADC driver system settings.
+ */
+#define STM32_ADC_USE_ADC1 FALSE
+#define STM32_ADC_ADC1_DMA_PRIORITY 2
+#define STM32_ADC_IRQ_PRIORITY 2
+#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2
+
+/*
+ * EXT driver system settings.
+ */
+#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI16_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI17_IRQ_PRIORITY 3
+
+/*
+ * GPT driver system settings.
+ */
+#define STM32_GPT_USE_TIM1 FALSE
+#define STM32_GPT_USE_TIM2 FALSE
+#define STM32_GPT_USE_TIM3 FALSE
+#define STM32_GPT_USE_TIM14 FALSE
+#define STM32_GPT_TIM1_IRQ_PRIORITY 2
+#define STM32_GPT_TIM2_IRQ_PRIORITY 2
+#define STM32_GPT_TIM3_IRQ_PRIORITY 2
+#define STM32_GPT_TIM14_IRQ_PRIORITY 2
+
+/*
+ * I2C driver system settings.
+ */
+#define STM32_I2C_USE_I2C1 TRUE
+#define STM32_I2C_USE_I2C2 FALSE
+#define STM32_I2C_BUSY_TIMEOUT 50
+#define STM32_I2C_I2C1_IRQ_PRIORITY 3
+#define STM32_I2C_I2C2_IRQ_PRIORITY 3
+#define STM32_I2C_USE_DMA TRUE
+#define STM32_I2C_I2C1_DMA_PRIORITY 1
+#define STM32_I2C_I2C2_DMA_PRIORITY 1
+#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
+#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
+#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
+
+/*
+ * ICU driver system settings.
+ */
+#define STM32_ICU_USE_TIM1 FALSE
+#define STM32_ICU_USE_TIM2 FALSE
+#define STM32_ICU_USE_TIM3 FALSE
+#define STM32_ICU_TIM1_IRQ_PRIORITY 3
+#define STM32_ICU_TIM2_IRQ_PRIORITY 3
+#define STM32_ICU_TIM3_IRQ_PRIORITY 3
+
+/*
+ * PWM driver system settings.
+ */
+#define STM32_PWM_USE_ADVANCED FALSE
+#define STM32_PWM_USE_TIM1 FALSE
+#define STM32_PWM_USE_TIM2 FALSE
+#define STM32_PWM_USE_TIM3 FALSE
+#define STM32_PWM_TIM1_IRQ_PRIORITY 3
+#define STM32_PWM_TIM2_IRQ_PRIORITY 3
+#define STM32_PWM_TIM3_IRQ_PRIORITY 3
+
+/*
+ * SERIAL driver system settings.
+ */
+#define STM32_SERIAL_USE_USART1 FALSE
+#define STM32_SERIAL_USE_USART2 FALSE
+#define STM32_SERIAL_USART1_PRIORITY 3
+#define STM32_SERIAL_USART2_PRIORITY 3
+
+/*
+ * SPI driver system settings.
+ */
+#define STM32_SPI_USE_SPI1 FALSE
+#define STM32_SPI_USE_SPI2 FALSE
+#define STM32_SPI_SPI1_DMA_PRIORITY 1
+#define STM32_SPI_SPI2_DMA_PRIORITY 1
+#define STM32_SPI_SPI1_IRQ_PRIORITY 2
+#define STM32_SPI_SPI2_IRQ_PRIORITY 2
+#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
+#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
+#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
+
+/*
+ * ST driver system settings.
+ */
+#define STM32_ST_IRQ_PRIORITY 2
+#define STM32_ST_USE_TIMER 2
+
+/*
+ * UART driver system settings.
+ */
+#define STM32_UART_USE_USART1 FALSE
+#define STM32_UART_USE_USART2 FALSE
+#define STM32_UART_USART1_IRQ_PRIORITY 3
+#define STM32_UART_USART2_IRQ_PRIORITY 3
+#define STM32_UART_USART1_DMA_PRIORITY 0
+#define STM32_UART_USART2_DMA_PRIORITY 0
+#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
+
+/*
+ * USB driver system settings.
+ */
+#define STM32_USB_USE_USB1 TRUE
+#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
+#define STM32_USB_USB1_LP_IRQ_PRIORITY 3
+
+#endif /* _MCUCONF_H_ */
diff --git a/keyboards/aeboards/ext65/rev2/readme.md b/keyboards/xelus/valor_frl_tkl/readme.md
index 0a0aa18af0..da85ebbd47 100644
--- a/keyboards/aeboards/ext65/rev2/readme.md
+++ b/keyboards/xelus/valor_frl_tkl/readme.md
@@ -1,13 +1,13 @@
-# Ext65Rev2
+# Valor FRL TKL
-Ext65Rev2 Keyboard
+An Alice-esque FRL TKL keyboard PCB.
* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
-* Hardware Supported: Ext65Rev2
-* Hardware Availability: [Keyboard Treehouse](https://keyboardtreehouse.com/collections/all/products/ext65-r2-pcb)
+* Hardware Supported: Valor FRL TKL
+* Hardware Availability: Custom keyboard group buys
Make example for this keyboard (after setting up your build environment):
- make aeboards/ext65/rev2:default
+ make xelus/valor_frl_tkl:default
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/xelus/valor_frl_tkl/rules.mk b/keyboards/xelus/valor_frl_tkl/rules.mk
new file mode 100644
index 0000000000..7165dd54f3
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/rules.mk
@@ -0,0 +1,24 @@
+# MCU name
+MCU = STM32F072
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no # Enable Bluetooth
+AUDIO_ENABLE = no # Audio output
+
+EEPROM_DRIVER = i2c
+
+# Enter lower-power sleep mode when on the ChibiOS idle thread
+OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/xelus/valor_frl_tkl/valor_frl_tkl.c b/keyboards/xelus/valor_frl_tkl/valor_frl_tkl.c
new file mode 100644
index 0000000000..08e08068b9
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/valor_frl_tkl.c
@@ -0,0 +1,24 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+// Nothing to see here, move along... ;-)
+
+#include "valor_frl_tkl.h"
+
+void board_init(void) {
+ SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
+ SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
+}
diff --git a/keyboards/xelus/valor_frl_tkl/valor_frl_tkl.h b/keyboards/xelus/valor_frl_tkl/valor_frl_tkl.h
new file mode 100644
index 0000000000..757f64adf9
--- /dev/null
+++ b/keyboards/xelus/valor_frl_tkl/valor_frl_tkl.h
@@ -0,0 +1,35 @@
+/* Copyright 2020 Harrison Chan (Xelus)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define ____ KC_NO
+
+#define LAYOUT_all( \
+ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, K014, K015, K016, \
+ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \
+ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
+ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
+ K400, K402, K404, K405, K407, K409, K412, K414, K415, K416 \
+) { \
+ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \
+ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \
+ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, ____, ____, ____ }, \
+ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, ____, K315, ____ }, \
+ { K400, ____, K402, ____, K404, K405, ____, K407, ____, K409, ____, ____, K412, ____, K414, K415, K416 } \
+}
diff --git a/keyboards/yatara/drink_me/rules.mk b/keyboards/yatara/drink_me/rules.mk
index f0edf97b88..990a907945 100644
--- a/keyboards/yatara/drink_me/rules.mk
+++ b/keyboards/yatara/drink_me/rules.mk
@@ -29,4 +29,3 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/yd60mq/rules.mk b/keyboards/yd60mq/rules.mk
index 615e4865a9..7a5062a703 100644
--- a/keyboards/yd60mq/rules.mk
+++ b/keyboards/yd60mq/rules.mk
@@ -29,7 +29,6 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_ansi_tsangan 60_hhkb 60_iso 60_iso_split_bs_rshift 60_iso_tsangan
diff --git a/keyboards/yd68/config.h b/keyboards/yd68/config.h
index 7b4a43bfde..5bd1ba5bd2 100644
--- a/keyboards/yd68/config.h
+++ b/keyboards/yd68/config.h
@@ -192,30 +192,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
diff --git a/keyboards/yd68/rules.mk b/keyboards/yd68/rules.mk
index 48283f1199..e6f094ed98 100644
--- a/keyboards/yd68/rules.mk
+++ b/keyboards/yd68/rules.mk
@@ -30,4 +30,3 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
diff --git a/keyboards/ymdk/ymd09/rules.mk b/keyboards/ymdk/ymd09/rules.mk
index be1811366e..519c23099c 100644
--- a/keyboards/ymdk/ymd09/rules.mk
+++ b/keyboards/ymdk/ymd09/rules.mk
@@ -29,5 +29,4 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LTO_ENABLE = yes # reduce firmware size
diff --git a/keyboards/yncognito/batpad/rules.mk b/keyboards/yncognito/batpad/rules.mk
index 71cf8ef3e9..7f5fd08084 100644
--- a/keyboards/yncognito/batpad/rules.mk
+++ b/keyboards/yncognito/batpad/rules.mk
@@ -24,7 +24,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
+RGB_MATRIX_DRIVER = WS2812
MIDI_ENABLE = no # MIDI support
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/yurei/config.h b/keyboards/yurei/config.h
index 24d6229bdd..57dc608e67 100644
--- a/keyboards/yurei/config.h
+++ b/keyboards/yurei/config.h
@@ -218,34 +218,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/yurei/rules.mk b/keyboards/yurei/rules.mk
index 37d7d6d4be..1b81d052b6 100644
--- a/keyboards/yurei/rules.mk
+++ b/keyboards/yurei/rules.mk
@@ -29,6 +29,5 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LAYOUTS = tkl_ansi
diff --git a/keyboards/yushakobo/quick7/config.h b/keyboards/yushakobo/quick7/config.h
index b9abd137b8..316d7f513c 100644
--- a/keyboards/yushakobo/quick7/config.h
+++ b/keyboards/yushakobo/quick7/config.h
@@ -219,34 +219,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
-/*
- * HD44780 LCD Display Configuration
- */
-/*
-#define LCD_LINES 2 //< number of visible lines of the display
-#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
-
-#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
-
-#if LCD_IO_MODE
-#define LCD_PORT PORTB //< port for the LCD lines
-#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
-#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
-#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
-#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
-#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
-#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
-#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
-#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
-#define LCD_RS_PORT LCD_PORT //< port for RS line
-#define LCD_RS_PIN 3 //< pin for RS line
-#define LCD_RW_PORT LCD_PORT //< port for RW line
-#define LCD_RW_PIN 2 //< pin for RW line
-#define LCD_E_PORT LCD_PORT //< port for Enable line
-#define LCD_E_PIN 1 //< pin for Enable line
-#endif
-*/
-
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/yushakobo/quick7/rules.mk b/keyboards/yushakobo/quick7/rules.mk
index 3812422e1c..e0de6f28fb 100644
--- a/keyboards/yushakobo/quick7/rules.mk
+++ b/keyboards/yushakobo/quick7/rules.mk
@@ -29,6 +29,5 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
ENCODER_ENABLE = yes # Enable support for Rotary Encoder
diff --git a/keyboards/zfrontier/big_switch/rules.mk b/keyboards/zfrontier/big_switch/rules.mk
index 17be8a47aa..abec407f6a 100644
--- a/keyboards/zfrontier/big_switch/rules.mk
+++ b/keyboards/zfrontier/big_switch/rules.mk
@@ -29,5 +29,4 @@ MIDI_ENABLE = no # MIDI support
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-HD44780_ENABLE = no # Enable support for HD44780 based LCDs
TAP_DANCE_ENABLE = no
diff --git a/keyboards/zinc/keymaps/default/rules.mk b/keyboards/zinc/keymaps/default/rules.mk
index 32e0f21610..7e3286f0fd 100644
--- a/keyboards/zinc/keymaps/default/rules.mk
+++ b/keyboards/zinc/keymaps/default/rules.mk
@@ -105,7 +105,7 @@ endif
ifeq ($(strip $(RGB_MATRIX)), yes)
RGBLIGHT_ENABLE = no
- RGB_MATRIX_ENABLE = WS2812
+ RGB_MATRIX_ENABLE = yes
endif
ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
diff --git a/keyboards/zinc/keymaps/toshi0383/rules.mk b/keyboards/zinc/keymaps/toshi0383/rules.mk
index 26ac02f3a0..530271f437 100644
--- a/keyboards/zinc/keymaps/toshi0383/rules.mk
+++ b/keyboards/zinc/keymaps/toshi0383/rules.mk
@@ -105,7 +105,7 @@ endif
ifeq ($(strip $(RGB_MATRIX)), yes)
RGBLIGHT_ENABLE = no
- RGB_MATRIX_ENABLE = WS2812
+ RGB_MATRIX_ENABLE = yes
endif
ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
diff --git a/keyboards/zinc/rules.mk b/keyboards/zinc/rules.mk
index 36e717d60a..45928af88c 100644
--- a/keyboards/zinc/rules.mk
+++ b/keyboards/zinc/rules.mk
@@ -28,7 +28,8 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
+RGB_MATRIX_ENABLE = no
+RGB_MATRIX_DRIVER = WS2812
DEFAULT_FOLDER = zinc/rev1
diff --git a/layouts/community/ortho_4x12/drashna/rules.mk b/layouts/community/ortho_4x12/drashna/rules.mk
index 3383cfd35f..2a9576758f 100644
--- a/layouts/community/ortho_4x12/drashna/rules.mk
+++ b/layouts/community/ortho_4x12/drashna/rules.mk
@@ -34,7 +34,7 @@ ifeq ($(strip $(KEYBOARD)), planck/ez)
RGBLIGHT_ENABLE = no
# SERIAL_LINK_ENABLE = yes
ENCODER_ENABLE = yes
- RGB_MATRIX_ENABLE = IS31FL3737
+ RGB_MATRIX_ENABLE = yes
INDICATOR_LIGHTS = yes
RGBLIGHT_TWINKLE = yes
RGBLIGHT_STARTUP_ANIMATION = yes
diff --git a/layouts/community/split_3x6_3/bcat/rules.mk b/layouts/community/split_3x6_3/bcat/rules.mk
index 3a9796673e..caf6ec7ece 100644
--- a/layouts/community/split_3x6_3/bcat/rules.mk
+++ b/layouts/community/split_3x6_3/bcat/rules.mk
@@ -6,5 +6,5 @@ ifeq ($(strip $(KEYBOARD)), crkbd/rev1/common)
else ifeq ($(strip $(KEYBOARD)), crkbd/rev1/legacy)
BOOTLOADER = atmel-dfu # Elite-C
- RGB_MATRIX_ENABLE = WS2812 # per-key RGB and underglow
+ RGB_MATRIX_ENABLE = yes # per-key RGB and underglow
endif
diff --git a/layouts/community/split_3x6_3/drashna/rules.mk b/layouts/community/split_3x6_3/drashna/rules.mk
index 6ac1554b33..46f543f4e8 100644
--- a/layouts/community/split_3x6_3/drashna/rules.mk
+++ b/layouts/community/split_3x6_3/drashna/rules.mk
@@ -22,7 +22,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifeq ($(strip $(KEYBOARD)), crkbd/rev1)
OLED_DRIVER_ENABLE = yes
- RGB_MATRIX_ENABLE = WS2812
+ RGB_MATRIX_ENABLE = yes
HAPTIC_ENABLE = SOLENOID
BOOTLOADER = qmk-dfu
endif
diff --git a/lib/python/milc.py b/lib/python/milc.py
deleted file mode 100644
index 0cdd43dc89..0000000000
--- a/lib/python/milc.py
+++ /dev/null
@@ -1,826 +0,0 @@
-#!/usr/bin/env python3
-# coding=utf-8
-"""MILC - A CLI Framework
-
-PYTHON_ARGCOMPLETE_OK
-
-MILC is an opinionated framework for writing CLI apps. It optimizes for the
-most common unix tool pattern- small tools that are run from the command
-line but generally do not feature any user interaction while they run.
-
-For more details see the MILC documentation:
-
- <https://github.com/clueboard/milc/tree/master/docs>
-"""
-from __future__ import division, print_function, unicode_literals
-import argparse
-import logging
-import os
-import re
-import shlex
-import subprocess
-import sys
-from decimal import Decimal
-from pathlib import Path
-from platform import platform
-from tempfile import NamedTemporaryFile
-from time import sleep
-
-try:
- from ConfigParser import RawConfigParser
-except ImportError:
- from configparser import RawConfigParser
-
-try:
- import thread
- import threading
-except ImportError:
- thread = None
-
-import argcomplete
-import colorama
-from appdirs import user_config_dir
-
-# Disable logging until we can configure it how the user wants
-logging.basicConfig(stream=os.devnull)
-
-# Log Level Representations
-EMOJI_LOGLEVELS = {
- 'CRITICAL': '{bg_red}{fg_white}¬_¬{style_reset_all}',
- 'ERROR': '{fg_red}☒{style_reset_all}',
- 'WARNING': '{fg_yellow}âš {style_reset_all}',
- 'INFO': '{fg_blue}ℹ{style_reset_all}',
- 'DEBUG': '{fg_cyan}â˜{style_reset_all}',
- 'NOTSET': '{style_reset_all}¯\\_(o_o)_/¯'
-}
-EMOJI_LOGLEVELS['FATAL'] = EMOJI_LOGLEVELS['CRITICAL']
-EMOJI_LOGLEVELS['WARN'] = EMOJI_LOGLEVELS['WARNING']
-UNICODE_SUPPORT = sys.stdout.encoding.lower().startswith('utf')
-
-# ANSI Color setup
-# Regex was gratefully borrowed from kfir on stackoverflow:
-# https://stackoverflow.com/a/45448194
-ansi_regex = r'\x1b(' \
- r'(\[\??\d+[hl])|' \
- r'([=<>a-kzNM78])|' \
- r'([\(\)][a-b0-2])|' \
- r'(\[\d{0,2}[ma-dgkjqi])|' \
- r'(\[\d+;\d+[hfy]?)|' \
- r'(\[;?[hf])|' \
- r'(#[3-68])|' \
- r'([01356]n)|' \
- r'(O[mlnp-z]?)|' \
- r'(/Z)|' \
- r'(\d+)|' \
- r'(\[\?\d;\d0c)|' \
- r'(\d;\dR))'
-ansi_escape = re.compile(ansi_regex, flags=re.IGNORECASE)
-ansi_styles = (
- ('fg', colorama.ansi.AnsiFore()),
- ('bg', colorama.ansi.AnsiBack()),
- ('style', colorama.ansi.AnsiStyle()),
-)
-ansi_colors = {}
-
-for prefix, obj in ansi_styles:
- for color in [x for x in obj.__dict__ if not x.startswith('_')]:
- ansi_colors[prefix + '_' + color.lower()] = getattr(obj, color)
-
-
-def format_ansi(text):
- """Return a copy of text with certain strings replaced with ansi.
- """
- # Avoid .format() so we don't have to worry about the log content
- for color in ansi_colors:
- text = text.replace('{%s}' % color, ansi_colors[color])
- return text + ansi_colors['style_reset_all']
-
-
-class ANSIFormatterMixin(object):
- """A log formatter mixin that inserts ANSI color.
- """
- def format(self, record):
- msg = super(ANSIFormatterMixin, self).format(record)
- return format_ansi(msg)
-
-
-class ANSIStrippingMixin(object):
- """A log formatter mixin that strips ANSI.
- """
- def format(self, record):
- msg = super(ANSIStrippingMixin, self).format(record)
- record.levelname = ansi_escape.sub('', record.levelname)
- return ansi_escape.sub('', msg)
-
-
-class EmojiLoglevelMixin(object):
- """A log formatter mixin that makes the loglevel an emoji on UTF capable terminals.
- """
- def format(self, record):
- if UNICODE_SUPPORT:
- record.levelname = EMOJI_LOGLEVELS[record.levelname].format(**ansi_colors)
- return super(EmojiLoglevelMixin, self).format(record)
-
-
-class ANSIFormatter(ANSIFormatterMixin, logging.Formatter):
- """A log formatter that colorizes output.
- """
- pass
-
-
-class ANSIStrippingFormatter(ANSIStrippingMixin, ANSIFormatterMixin, logging.Formatter):
- """A log formatter that strips ANSI
- """
- pass
-
-
-class ANSIEmojiLoglevelFormatter(EmojiLoglevelMixin, ANSIFormatterMixin, logging.Formatter):
- """A log formatter that adds Emoji and ANSI
- """
- pass
-
-
-class ANSIStrippingEmojiLoglevelFormatter(ANSIStrippingMixin, EmojiLoglevelMixin, ANSIFormatterMixin, logging.Formatter):
- """A log formatter that adds Emoji and strips ANSI
- """
- pass
-
-
-class Configuration(object):
- """Represents the running configuration.
-
- This class never raises IndexError, instead it will return None if a
- section or option does not yet exist.
- """
- def __contains__(self, key):
- return self._config.__contains__(key)
-
- def __iter__(self):
- return self._config.__iter__()
-
- def __len__(self):
- return self._config.__len__()
-
- def __repr__(self):
- return self._config.__repr__()
-
- def keys(self):
- return self._config.keys()
-
- def items(self):
- return self._config.items()
-
- def values(self):
- return self._config.values()
-
- def __init__(self, *args, **kwargs):
- self._config = {}
-
- def __getattr__(self, key):
- return self.__getitem__(key)
-
- def __getitem__(self, key):
- """Returns a config section, creating it if it doesn't exist yet.
- """
- if key not in self._config:
- self.__dict__[key] = self._config[key] = ConfigurationSection(self)
-
- return self._config[key]
-
- def __setitem__(self, key, value):
- self.__dict__[key] = value
- self._config[key] = value
-
- def __delitem__(self, key):
- if key in self.__dict__ and key[0] != '_':
- del self.__dict__[key]
- if key in self._config:
- del self._config[key]
-
-
-class ConfigurationSection(Configuration):
- def __init__(self, parent, *args, **kwargs):
- super(ConfigurationSection, self).__init__(*args, **kwargs)
- self.parent = parent
-
- def __getitem__(self, key):
- """Returns a config value, pulling from the `user` section as a fallback.
- This is called when the attribute is accessed either via the get method or through [ ] index.
- """
- if key in self._config and self._config.get(key) is not None:
- return self._config[key]
-
- elif key in self.parent.user:
- return self.parent.user[key]
-
- return None
-
- def __getattr__(self, key):
- """Returns the config value from the `user` section.
- This is called when the attribute is accessed via dot notation but does not exists.
- """
- if key in self.parent.user:
- return self.parent.user[key]
-
- return None
-
-
-def handle_store_boolean(self, *args, **kwargs):
- """Does the add_argument for action='store_boolean'.
- """
- disabled_args = None
- disabled_kwargs = kwargs.copy()
- disabled_kwargs['action'] = 'store_false'
- disabled_kwargs['dest'] = self.get_argument_name(*args, **kwargs)
- disabled_kwargs['help'] = 'Disable ' + kwargs['help']
- kwargs['action'] = 'store_true'
- kwargs['help'] = 'Enable ' + kwargs['help']
-
- for flag in args:
- if flag[:2] == '--':
- disabled_args = ('--no-' + flag[2:],)
- break
-
- self.add_argument(*args, **kwargs)
- self.add_argument(*disabled_args, **disabled_kwargs)
-
- return (args, kwargs, disabled_args, disabled_kwargs)
-
-
-class SubparserWrapper(object):
- """Wrap subparsers so we can track what options the user passed.
- """
- def __init__(self, cli, submodule, subparser):
- self.cli = cli
- self.submodule = submodule
- self.subparser = subparser
-
- for attr in dir(subparser):
- if not hasattr(self, attr):
- setattr(self, attr, getattr(subparser, attr))
-
- def completer(self, completer):
- """Add an arpcomplete completer to this subcommand.
- """
- self.subparser.completer = completer
-
- def add_argument(self, *args, **kwargs):
- """Add an argument for this subcommand.
-
- This also stores the default for the argument in `self.cli.default_arguments`.
- """
- if kwargs.get('action') == 'store_boolean':
- # Store boolean will call us again with the enable/disable flag arguments
- return handle_store_boolean(self, *args, **kwargs)
-
- self.cli.acquire_lock()
- argument_name = self.cli.get_argument_name(*args, **kwargs)
-
- self.subparser.add_argument(*args, **kwargs)
-
- if kwargs.get('action') == 'store_false':
- self.cli._config_store_false.append(argument_name)
-
- if kwargs.get('action') == 'store_true':
- self.cli._config_store_true.append(argument_name)
-
- if self.submodule not in self.cli.default_arguments:
- self.cli.default_arguments[self.submodule] = {}
- self.cli.default_arguments[self.submodule][argument_name] = kwargs.get('default')
- self.cli.release_lock()
-
-
-class MILC(object):
- """MILC - An Opinionated Batteries Included Framework
- """
- def __init__(self):
- """Initialize the MILC object.
-
- version
- The version string to associate with your CLI program
- """
- # Setup a lock for thread safety
- self._lock = threading.RLock() if thread else None
-
- # Define some basic info
- self.acquire_lock()
- self._config_store_true = []
- self._config_store_false = []
- self._description = None
- self._entrypoint = None
- self._inside_context_manager = False
- self.ansi = ansi_colors
- self.arg_only = {}
- self.config = self.config_source = None
- self.config_file = None
- self.default_arguments = {}
- self.version = 'unknown'
- self.platform = platform()
-
- # Figure out our program name
- self.prog_name = sys.argv[0][:-3] if sys.argv[0].endswith('.py') else sys.argv[0]
- self.prog_name = self.prog_name.split('/')[-1]
- self.release_lock()
-
- # Initialize all the things
- self.read_config_file()
- self.initialize_argparse()
- self.initialize_logging()
-
- @property
- def description(self):
- return self._description
-
- @description.setter
- def description(self, value):
- self._description = self._arg_parser.description = value
-
- def echo(self, text, *args, **kwargs):
- """Print colorized text to stdout.
-
- ANSI color strings (such as {fg-blue}) will be converted into ANSI
- escape sequences, and the ANSI reset sequence will be added to all
- strings.
-
- If *args or **kwargs are passed they will be used to %-format the strings.
-
- If `self.config.general.color` is False any ANSI escape sequences in the text will be stripped.
- """
- if args and kwargs:
- raise RuntimeError('You can only specify *args or **kwargs, not both!')
-
- args = args or kwargs
- text = format_ansi(text)
-
- if not self.config.general.color:
- text = ansi_escape.sub('', text)
-
- print(text % args)
-
- def run(self, command, *args, **kwargs):
- """Run a command with subprocess.run
- The *args and **kwargs arguments get passed directly to `subprocess.run`.
- """
- if isinstance(command, str):
- raise TypeError('`command` must be a non-text sequence such as list or tuple.')
-
- if 'windows' in self.platform.lower():
- safecmd = map(shlex.quote, command)
- safecmd = ' '.join(safecmd)
- command = [os.environ['SHELL'], '-c', safecmd]
-
- self.log.debug('Running command: %s', command)
-
- return subprocess.run(command, *args, **kwargs)
-
- def initialize_argparse(self):
- """Prepare to process arguments from sys.argv.
- """
- kwargs = {
- 'fromfile_prefix_chars': '@',
- 'conflict_handler': 'resolve',
- }
-
- self.acquire_lock()
- self.subcommands = {}
- self._subparsers = None
- self.argwarn = argcomplete.warn
- self.args = None
- self._arg_parser = argparse.ArgumentParser(**kwargs)
- self.set_defaults = self._arg_parser.set_defaults
- self.print_usage = self._arg_parser.print_usage
- self.print_help = self._arg_parser.print_help
- self.release_lock()
-
- def completer(self, completer):
- """Add an argcomplete completer to this subcommand.
- """
- self._arg_parser.completer = completer
-
- def add_argument(self, *args, **kwargs):
- """Wrapper to add arguments and track whether they were passed on the command line.
- """
- if 'action' in kwargs and kwargs['action'] == 'store_boolean':
- return handle_store_boolean(self, *args, **kwargs)
-
- self.acquire_lock()
-
- self._arg_parser.add_argument(*args, **kwargs)
- if 'general' not in self.default_arguments:
- self.default_arguments['general'] = {}
- self.default_arguments['general'][self.get_argument_name(*args, **kwargs)] = kwargs.get('default')
-
- self.release_lock()
-
- def initialize_logging(self):
- """Prepare the defaults for the logging infrastructure.
- """
- self.acquire_lock()
- self.log_file = None
- self.log_file_mode = 'a'
- self.log_file_handler = None
- self.log_print = True
- self.log_print_to = sys.stderr
- self.log_print_level = logging.INFO
- self.log_file_level = logging.DEBUG
- self.log_level = logging.INFO
- self.log = logging.getLogger(self.__class__.__name__)
- self.log.setLevel(logging.DEBUG)
- logging.root.setLevel(logging.DEBUG)
- self.release_lock()
-
- self.add_argument('-V', '--version', version=self.version, action='version', help='Display the version and exit')
- self.add_argument('-v', '--verbose', action='store_true', help='Make the logging more verbose')
- self.add_argument('--datetime-fmt', default='%Y-%m-%d %H:%M:%S', help='Format string for datetimes')
- self.add_argument('--log-fmt', default='%(levelname)s %(message)s', help='Format string for printed log output')
- self.add_argument('--log-file-fmt', default='[%(levelname)s] [%(asctime)s] [file:%(pathname)s] [line:%(lineno)d] %(message)s', help='Format string for log file.')
- self.add_argument('--log-file', help='File to write log messages to')
- self.add_argument('--color', action='store_boolean', default=True, help='color in output')
- self.add_argument('--config-file', help='The location for the configuration file')
- self.arg_only['config_file'] = ['general']
-
- def add_subparsers(self, title='Sub-commands', **kwargs):
- if self._inside_context_manager:
- raise RuntimeError('You must run this before the with statement!')
-
- self.acquire_lock()
- self._subparsers = self._arg_parser.add_subparsers(title=title, dest='subparsers', **kwargs)
- self.release_lock()
-
- def acquire_lock(self):
- """Acquire the MILC lock for exclusive access to properties.
- """
- if self._lock:
- self._lock.acquire()
-
- def release_lock(self):
- """Release the MILC lock.
- """
- if self._lock:
- self._lock.release()
-
- def find_config_file(self):
- """Locate the config file.
- """
- if self.config_file:
- return self.config_file
-
- if '--config-file' in sys.argv:
- return Path(sys.argv[sys.argv.index('--config-file') + 1]).expanduser().resolve()
-
- filedir = user_config_dir(appname='qmk', appauthor='QMK')
- filename = '%s.ini' % self.prog_name
- return Path(filedir) / filename
-
- def get_argument_name(self, *args, **kwargs):
- """Takes argparse arguments and returns the dest name.
- """
- try:
- return self._arg_parser._get_optional_kwargs(*args, **kwargs)['dest']
- except ValueError:
- return self._arg_parser._get_positional_kwargs(*args, **kwargs)['dest']
-
- def argument(self, *args, **kwargs):
- """Decorator to call self.add_argument or self.<subcommand>.add_argument.
- """
- if self._inside_context_manager:
- raise RuntimeError('You must run this before the with statement!')
-
- def argument_function(handler):
- subcommand_name = handler.__name__.replace("_", "-")
-
- if kwargs.get('arg_only'):
- arg_name = self.get_argument_name(*args, **kwargs)
- if arg_name not in self.arg_only:
- self.arg_only[arg_name] = []
- self.arg_only[arg_name].append(subcommand_name)
- del kwargs['arg_only']
-
- if handler is self._entrypoint:
- self.add_argument(*args, **kwargs)
-
- elif subcommand_name in self.subcommands:
- self.subcommands[subcommand_name].add_argument(*args, **kwargs)
-
- else:
- raise RuntimeError('Decorated function is not entrypoint or subcommand!')
-
- return handler
-
- return argument_function
-
- def arg_passed(self, arg):
- """Returns True if arg was passed on the command line.
- """
- return self.default_arguments.get(arg) != self.args[arg]
-
- def parse_args(self):
- """Parse the CLI args.
- """
- if self.args:
- self.log.debug('Warning: Arguments have already been parsed, ignoring duplicate attempt!')
- return
-
- argcomplete.autocomplete(self._arg_parser)
-
- self.acquire_lock()
- self.args = self._arg_parser.parse_args()
-
- if 'entrypoint' in self.args:
- self._entrypoint = self.args.entrypoint
-
- self.release_lock()
-
- def read_config_file(self):
- """Read in the configuration file and store it in self.config.
- """
- self.acquire_lock()
- self.config = Configuration()
- self.config_source = Configuration()
- self.config_file = self.find_config_file()
-
- if self.config_file and self.config_file.exists():
- config = RawConfigParser(self.config)
- config.read(str(self.config_file))
-
- # Iterate over the config file options and write them into self.config
- for section in config.sections():
- for option in config.options(section):
- value = config.get(section, option)
-
- # Coerce values into useful datatypes
- if value.lower() in ['1', 'yes', 'true', 'on']:
- value = True
- elif value.lower() in ['0', 'no', 'false', 'off']:
- value = False
- elif value.lower() in ['none']:
- continue
- elif value.replace('.', '').isdigit():
- if '.' in value:
- value = Decimal(value)
- else:
- value = int(value)
-
- self.config[section][option] = value
- self.config_source[section][option] = 'config_file'
-
- self.release_lock()
-
- def merge_args_into_config(self):
- """Merge CLI arguments into self.config to create the runtime configuration.
- """
- self.acquire_lock()
- for argument in vars(self.args):
- if argument in ('subparsers', 'entrypoint'):
- continue
-
- # Find the argument's section
- # Underscores in command's names are converted to dashes during initialization.
- # TODO(Erovia) Find a better solution
- entrypoint_name = self._entrypoint.__name__.replace("_", "-")
- if entrypoint_name in self.default_arguments and argument in self.default_arguments[entrypoint_name]:
- argument_found = True
- section = self._entrypoint.__name__
- if argument in self.default_arguments['general']:
- argument_found = True
- section = 'general'
-
- if not argument_found:
- raise RuntimeError('Could not find argument in `self.default_arguments`. This should be impossible!')
- exit(1)
-
- if argument not in self.arg_only or section not in self.arg_only[argument]:
- # Determine the arg value and source
- arg_value = getattr(self.args, argument)
- if argument in self._config_store_true and arg_value:
- passed_on_cmdline = True
- elif argument in self._config_store_false and not arg_value:
- passed_on_cmdline = True
- elif arg_value is not None:
- passed_on_cmdline = True
- else:
- passed_on_cmdline = False
-
- # Merge this argument into self.config
- if passed_on_cmdline and (argument in self.default_arguments['general'] or argument in self.default_arguments[entrypoint_name] or argument not in self.config[entrypoint_name]):
- self.config[section][argument] = arg_value
- self.config_source[section][argument] = 'argument'
-
- self.release_lock()
-
- def save_config(self):
- """Save the current configuration to the config file.
- """
- self.log.debug("Saving config file to '%s'", str(self.config_file))
-
- if not self.config_file:
- self.log.warning('%s.config_file file not set, not saving config!', self.__class__.__name__)
- return
-
- self.acquire_lock()
-
- # Generate a sanitized version of our running configuration
- config = RawConfigParser()
- for section_name, section in self.config._config.items():
- config.add_section(section_name)
- for option_name, value in section.items():
- if section_name == 'general':
- if option_name in ['config_file']:
- continue
- if value is not None:
- config.set(section_name, option_name, str(value))
-
- # Write out the config file
- config_dir = self.config_file.parent
- if not config_dir.exists():
- config_dir.mkdir(parents=True, exist_ok=True)
-
- with NamedTemporaryFile(mode='w', dir=str(config_dir), delete=False) as tmpfile:
- config.write(tmpfile)
-
- # Move the new config file into place atomically
- if os.path.getsize(tmpfile.name) > 0:
- os.replace(tmpfile.name, str(self.config_file))
- else:
- self.log.warning('Config file saving failed, not replacing %s with %s.', str(self.config_file), tmpfile.name)
-
- # Housekeeping
- self.release_lock()
- cli.log.info('Wrote configuration to %s', shlex.quote(str(self.config_file)))
-
- def __call__(self):
- """Execute the entrypoint function.
- """
- if not self._inside_context_manager:
- # If they didn't use the context manager use it ourselves
- with self:
- return self.__call__()
-
- if not self._entrypoint:
- raise RuntimeError('No entrypoint provided!')
-
- return self._entrypoint(self)
-
- def entrypoint(self, description):
- """Set the entrypoint for when no subcommand is provided.
- """
- if self._inside_context_manager:
- raise RuntimeError('You must run this before cli()!')
-
- self.acquire_lock()
- self.description = description
- self.release_lock()
-
- def entrypoint_func(handler):
- self.acquire_lock()
- self._entrypoint = handler
- self.release_lock()
-
- return handler
-
- return entrypoint_func
-
- def add_subcommand(self, handler, description, name=None, hidden=False, **kwargs):
- """Register a subcommand.
-
- If name is not provided we use `handler.__name__`.
- """
-
- if self._inside_context_manager:
- raise RuntimeError('You must run this before the with statement!')
-
- if self._subparsers is None:
- self.add_subparsers(metavar="")
-
- if not name:
- name = handler.__name__.replace("_", "-")
-
- self.acquire_lock()
- if not hidden:
- self._subparsers.metavar = "{%s,%s}" % (self._subparsers.metavar[1:-1], name) if self._subparsers.metavar else "{%s%s}" % (self._subparsers.metavar[1:-1], name)
- kwargs['help'] = description
- self.subcommands[name] = SubparserWrapper(self, name, self._subparsers.add_parser(name, **kwargs))
- self.subcommands[name].set_defaults(entrypoint=handler)
-
- self.release_lock()
-
- return handler
-
- def subcommand(self, description, hidden=False, **kwargs):
- """Decorator to register a subcommand.
- """
- def subcommand_function(handler):
- return self.add_subcommand(handler, description, hidden=hidden, **kwargs)
-
- return subcommand_function
-
- def setup_logging(self):
- """Called by __enter__() to setup the logging configuration.
- """
- if len(logging.root.handlers) != 0:
- # MILC is the only thing that should have root log handlers
- logging.root.handlers = []
-
- self.acquire_lock()
-
- if self.config['general']['verbose']:
- self.log_print_level = logging.DEBUG
-
- self.log_file = self.config['general']['log_file'] or self.log_file
- self.log_file_format = ANSIStrippingFormatter(self.config['general']['log_file_fmt'], self.config['general']['datetime_fmt'])
- self.log_format = self.config['general']['log_fmt']
-
- if self.config.general.color:
- self.log_format = ANSIEmojiLoglevelFormatter(self.config.general.log_fmt, self.config.general.datetime_fmt)
- else:
- self.log_format = ANSIStrippingEmojiLoglevelFormatter(self.config.general.log_fmt, self.config.general.datetime_fmt)
-
- if self.log_file:
- self.log_file_handler = logging.FileHandler(self.log_file, self.log_file_mode)
- self.log_file_handler.setLevel(self.log_file_level)
- self.log_file_handler.setFormatter(self.log_file_format)
- logging.root.addHandler(self.log_file_handler)
-
- if self.log_print:
- self.log_print_handler = logging.StreamHandler(self.log_print_to)
- self.log_print_handler.setLevel(self.log_print_level)
- self.log_print_handler.setFormatter(self.log_format)
- logging.root.addHandler(self.log_print_handler)
-
- self.release_lock()
-
- def __enter__(self):
- if self._inside_context_manager:
- self.log.debug('Warning: context manager was entered again. This usually means that self.__call__() was called before the with statement. You probably do not want to do that.')
- return
-
- self.acquire_lock()
- self._inside_context_manager = True
- self.release_lock()
-
- colorama.init()
- self.parse_args()
- self.merge_args_into_config()
- self.setup_logging()
-
- return self
-
- def __exit__(self, exc_type, exc_val, exc_tb):
- self.acquire_lock()
- self._inside_context_manager = False
- self.release_lock()
-
- if exc_type is not None and not isinstance(SystemExit(), exc_type):
- print(exc_type)
- logging.exception(exc_val)
- exit(255)
-
-
-cli = MILC()
-
-if __name__ == '__main__':
-
- @cli.argument('-c', '--comma', help='comma in output', default=True, action='store_boolean')
- @cli.entrypoint('My useful CLI tool with subcommands.')
- def main(cli):
- comma = ',' if cli.config.general.comma else ''
- cli.log.info('{bg_green}{fg_red}Hello%s World!', comma)
-
- @cli.argument('-n', '--name', help='Name to greet', default='World')
- @cli.subcommand('Description of hello subcommand here.')
- def hello(cli):
- comma = ',' if cli.config.general.comma else ''
- cli.log.info('{fg_blue}Hello%s %s!', comma, cli.config.hello.name)
-
- def goodbye(cli):
- comma = ',' if cli.config.general.comma else ''
- cli.log.info('{bg_red}Goodbye%s %s!', comma, cli.config.goodbye.name)
-
- @cli.argument('-n', '--name', help='Name to greet', default='World')
- @cli.subcommand('Think a bit before greeting the user.')
- def thinking(cli):
- comma = ',' if cli.config.general.comma else ''
- spinner = cli.spinner(text='Just a moment...', spinner='earth')
- spinner.start()
- sleep(2)
- spinner.stop()
-
- with cli.spinner(text='Almost there!', spinner='moon'):
- sleep(2)
-
- cli.log.info('{fg_cyan}Hello%s %s!', comma, cli.config.thinking.name)
-
- @cli.subcommand('Show off our ANSI colors.')
- def pride(cli):
- cli.echo('{bg_red} ')
- cli.echo('{bg_lightred_ex} ')
- cli.echo('{bg_lightyellow_ex} ')
- cli.echo('{bg_green} ')
- cli.echo('{bg_blue} ')
- cli.echo('{bg_magenta} ')
-
- # You can register subcommands using decorators as seen above, or using functions like like this:
- cli.add_subcommand(goodbye, 'This will show up in --help output.')
- cli.goodbye.add_argument('-n', '--name', help='Name to bid farewell to', default='World')
-
- cli() # Automatically picks between main(), hello() and goodbye()
diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py
index 77724a2448..10536bb230 100644
--- a/lib/python/qmk/cli/__init__.py
+++ b/lib/python/qmk/cli/__init__.py
@@ -8,6 +8,7 @@ from milc import cli
from . import c2json
from . import cformat
+from . import chibios
from . import clean
from . import compile
from . import config
diff --git a/lib/python/qmk/cli/chibios/__init__.py b/lib/python/qmk/cli/chibios/__init__.py
new file mode 100644
index 0000000000..4301837def
--- /dev/null
+++ b/lib/python/qmk/cli/chibios/__init__.py
@@ -0,0 +1 @@
+from . import confmigrate
diff --git a/lib/python/qmk/cli/chibios/confmigrate.py b/lib/python/qmk/cli/chibios/confmigrate.py
new file mode 100644
index 0000000000..eae294a0c6
--- /dev/null
+++ b/lib/python/qmk/cli/chibios/confmigrate.py
@@ -0,0 +1,161 @@
+"""This script automates the copying of the default keymap into your own keymap.
+"""
+import re
+import sys
+import os
+
+from qmk.constants import QMK_FIRMWARE
+from qmk.path import normpath
+from milc import cli
+
+
+def eprint(*args, **kwargs):
+ print(*args, file=sys.stderr, **kwargs)
+
+
+fileHeader = """\
+/* Copyright 2020 QMK
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * This file was auto-generated by:
+ * `qmk chibios-confupdate -i {0} -r {1}`
+ */
+
+#pragma once
+"""
+
+
+def collect_defines(filepath):
+ with open(filepath, 'r') as f:
+ content = f.read()
+ define_search = re.compile(r'(?m)^#\s*define\s+(?:.*\\\r?\n)*.*$', re.MULTILINE)
+ value_search = re.compile(r'^#\s*define\s+(?P<name>[a-zA-Z0-9_]+(\([^\)]*\))?)\s*(?P<value>.*)', re.DOTALL)
+ define_matches = define_search.findall(content)
+
+ defines = {"keys": [], "dict": {}}
+ for define_match in define_matches:
+ value_match = value_search.search(define_match)
+ defines["keys"].append(value_match.group("name"))
+ defines["dict"][value_match.group("name")] = value_match.group("value")
+ return defines
+
+
+def check_diffs(input_defs, reference_defs):
+ not_present_in_input = []
+ not_present_in_reference = []
+ to_override = []
+
+ for key in reference_defs["keys"]:
+ if key not in input_defs["dict"]:
+ not_present_in_input.append(key)
+ continue
+
+ for key in input_defs["keys"]:
+ if key not in input_defs["dict"]:
+ not_present_in_input.append(key)
+ continue
+
+ for key in input_defs["keys"]:
+ if key in reference_defs["keys"] and input_defs["dict"][key] != reference_defs["dict"][key]:
+ to_override.append((key, input_defs["dict"][key]))
+
+ return (to_override, not_present_in_input, not_present_in_reference)
+
+
+def migrate_chconf_h(to_override, outfile):
+ print(fileHeader.format(cli.args.input.relative_to(QMK_FIRMWARE), cli.args.reference.relative_to(QMK_FIRMWARE)), file=outfile)
+
+ for override in to_override:
+ print("#define %s %s" % (override[0], override[1]), file=outfile)
+ print("", file=outfile)
+
+ print("#include_next <chconf.h>\n", file=outfile)
+
+
+def migrate_halconf_h(to_override, outfile):
+ print(fileHeader.format(cli.args.input.relative_to(QMK_FIRMWARE), cli.args.reference.relative_to(QMK_FIRMWARE)), file=outfile)
+
+ for override in to_override:
+ print("#define %s %s" % (override[0], override[1]), file=outfile)
+ print("", file=outfile)
+
+ print("#include_next <halconf.h>\n", file=outfile)
+
+
+def migrate_mcuconf_h(to_override, outfile):
+ print(fileHeader.format(cli.args.input.relative_to(QMK_FIRMWARE), cli.args.reference.relative_to(QMK_FIRMWARE)), file=outfile)
+
+ print("#include_next <mcuconf.h>\n", file=outfile)
+
+ for override in to_override:
+ print("#undef %s" % (override[0]), file=outfile)
+ print("#define %s %s" % (override[0], override[1]), file=outfile)
+ print("", file=outfile)
+
+
+@cli.argument('-i', '--input', type=normpath, arg_only=True, help='Specify input config file.')
+@cli.argument('-r', '--reference', type=normpath, arg_only=True, help='Specify the reference file to compare against')
+@cli.argument('-o', '--overwrite', arg_only=True, action='store_true', help='Overwrites the input file during migration.')
+@cli.argument('-d', '--delete', arg_only=True, action='store_true', help='If the file has no overrides, migration will delete the input file.')
+@cli.subcommand('Generates a migrated ChibiOS configuration file, as a result of comparing the input against a reference')
+def chibios_confmigrate(cli):
+ """Generates a usable ChibiOS replacement configuration file, based on a fully-defined conf and a reference config.
+ """
+
+ input_defs = collect_defines(cli.args.input)
+ reference_defs = collect_defines(cli.args.reference)
+
+ (to_override, not_present_in_input, not_present_in_reference) = check_diffs(input_defs, reference_defs)
+
+ if len(not_present_in_input) > 0:
+ eprint("Keys not in input, but present inside reference (potential manual migration required):")
+ for key in not_present_in_input:
+ eprint(" %s" % (key))
+
+ if len(not_present_in_reference) > 0:
+ eprint("Keys not in reference, but present inside input (potential manual migration required):")
+ for key in not_present_in_reference:
+ eprint(" %s" % (key))
+
+ if len(to_override) == 0:
+ eprint('No overrides found! If there were no missing keys above, it should be safe to delete the input file.')
+ if cli.args.delete:
+ os.remove(cli.args.input)
+ else:
+ eprint('Overrides found:')
+ for override in to_override:
+ eprint("%40s: %s -> %s" % (override[0], reference_defs["dict"][override[0]].encode('unicode_escape').decode("utf-8"), override[1].encode('unicode_escape').decode("utf-8")))
+
+ eprint('--------------------------------------')
+
+ if "CHCONF_H" in input_defs["dict"] or "_CHCONF_H_" in input_defs["dict"]:
+ migrate_chconf_h(to_override, outfile=sys.stdout)
+ if cli.args.overwrite:
+ with open(cli.args.input, "w") as out_file:
+ migrate_chconf_h(to_override, outfile=out_file)
+
+ elif "HALCONF_H" in input_defs["dict"] or "_HALCONF_H_" in input_defs["dict"]:
+ migrate_halconf_h(to_override, outfile=sys.stdout)
+ if cli.args.overwrite:
+ with open(cli.args.input, "w") as out_file:
+ migrate_halconf_h(to_override, outfile=out_file)
+
+ elif "MCUCONF_H" in input_defs["dict"] or "_MCUCONF_H_" in input_defs["dict"]:
+ migrate_mcuconf_h(to_override, outfile=sys.stdout)
+ if cli.args.overwrite:
+ with open(cli.args.input, "w") as out_file:
+ migrate_mcuconf_h(to_override, outfile=out_file)
diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py
index a5eda555f0..4fe318b636 100755
--- a/lib/python/qmk/cli/doctor.py
+++ b/lib/python/qmk/cli/doctor.py
@@ -10,9 +10,9 @@ from pathlib import Path
from enum import Enum
from milc import cli
+from milc.questions import yesno
from qmk import submodules
from qmk.constants import QMK_FIRMWARE
-from qmk.questions import yesno
from qmk.commands import run
diff --git a/lib/python/qmk/questions.py b/lib/python/qmk/questions.py
deleted file mode 100644
index 865c6bbdc5..0000000000
--- a/lib/python/qmk/questions.py
+++ /dev/null
@@ -1,183 +0,0 @@
-"""Functions to collect user input.
-"""
-
-from milc import cli
-
-try:
- from milc import format_ansi
-except ImportError:
- from milc.ansi import format_ansi
-
-
-def yesno(prompt, *args, default=None, **kwargs):
- """Displays prompt to the user and gets a yes or no response.
-
- Returns True for a yes and False for a no.
-
- If you add `--yes` and `--no` arguments to your program the user can answer questions by passing command line flags.
-
- @add_argument('-y', '--yes', action='store_true', arg_only=True, help='Answer yes to all questions.')
- @add_argument('-n', '--no', action='store_true', arg_only=True, help='Answer no to all questions.')
-
- Arguments:
- prompt
- The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
-
- default
- Whether to default to a Yes or No when the user presses enter.
-
- None- force the user to enter Y or N
-
- True- Default to yes
-
- False- Default to no
- """
- if not args and kwargs:
- args = kwargs
-
- if 'no' in cli.args and cli.args.no:
- return False
-
- if 'yes' in cli.args and cli.args.yes:
- return True
-
- if default is not None:
- if default:
- prompt = prompt + ' [Y/n] '
- else:
- prompt = prompt + ' [y/N] '
-
- while True:
- cli.echo('')
- answer = input(format_ansi(prompt % args))
- cli.echo('')
-
- if not answer and prompt is not None:
- return default
-
- elif answer.lower() in ['y', 'yes']:
- return True
-
- elif answer.lower() in ['n', 'no']:
- return False
-
-
-def question(prompt, *args, default=None, confirm=False, answer_type=str, validate=None, **kwargs):
- """Prompt the user to answer a question with a free-form input.
-
- Arguments:
- prompt
- The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
-
- default
- The value to return when the user doesn't enter any value. Use None to prompt until they enter a value.
-
- confirm
- Present the user with a confirmation dialog before accepting their answer.
-
- answer_type
- Specify a type function for the answer. Will re-prompt the user if the function raises any errors. Common choices here include int, float, and decimal.Decimal.
-
- validate
- This is an optional function that can be used to validate the answer. It should return True or False and have the following signature:
-
- def function_name(answer, *args, **kwargs):
- """
- if not args and kwargs:
- args = kwargs
-
- if default is not None:
- prompt = '%s [%s] ' % (prompt, default)
-
- while True:
- cli.echo('')
- answer = input(format_ansi(prompt % args))
- cli.echo('')
-
- if answer:
- if validate is not None and not validate(answer, *args, **kwargs):
- continue
-
- elif confirm:
- if yesno('Is the answer "%s" correct?', answer, default=True):
- try:
- return answer_type(answer)
- except Exception as e:
- cli.log.error('Could not convert answer (%s) to type %s: %s', answer, answer_type.__name__, str(e))
-
- else:
- try:
- return answer_type(answer)
- except Exception as e:
- cli.log.error('Could not convert answer (%s) to type %s: %s', answer, answer_type.__name__, str(e))
-
- elif default is not None:
- return default
-
-
-def choice(heading, options, *args, default=None, confirm=False, prompt='Please enter your choice: ', **kwargs):
- """Present the user with a list of options and let them pick one.
-
- Users can enter either the number or the text of their choice.
-
- This will return the value of the item they choose, not the numerical index.
-
- Arguments:
- heading
- The text to place above the list of options.
-
- options
- A sequence of items to choose from.
-
- default
- The index of the item to return when the user doesn't enter any value. Use None to prompt until they enter a value.
-
- confirm
- Present the user with a confirmation dialog before accepting their answer.
-
- prompt
- The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
- """
- if not args and kwargs:
- args = kwargs
-
- if prompt and default:
- prompt = prompt + ' [%s] ' % (default + 1,)
-
- while True:
- # Prompt for an answer.
- cli.echo('')
- cli.echo(heading % args)
- cli.echo('')
- for i, option in enumerate(options, 1):
- cli.echo('\t{fg_cyan}%d.{fg_reset} %s', i, option)
-
- cli.echo('')
- answer = input(format_ansi(prompt))
- cli.echo('')
-
- # If the user types in one of the options exactly use that
- if answer in options:
- return answer
-
- # Massage the answer into a valid integer
- if answer == '' and default:
- answer = default
- else:
- try:
- answer = int(answer) - 1
- except Exception:
- # Normally we would log the exception here, but in the interest of clean UI we do not.
- cli.log.error('Invalid choice: %s', answer + 1)
- continue
-
- # Validate the answer
- if answer >= len(options) or answer < 0:
- cli.log.error('Invalid choice: %s', answer + 1)
- continue
-
- if confirm and not yesno('Is the answer "%s" correct?', answer + 1, default=True):
- continue
-
- # Return the answer they chose.
- return options[answer]
diff --git a/message.mk b/message.mk
index be04fa9b81..84b23c1ba8 100644
--- a/message.mk
+++ b/message.mk
@@ -5,6 +5,7 @@ ifeq ($(COLOR),true)
OK_COLOR=\033[32;01m
ERROR_COLOR=\033[31;01m
WARN_COLOR=\033[33;01m
+ SKIPPED_COLOR=\033[36;01m
BLUE=\033[0;34m
BOLD=\033[1m
endif
@@ -20,6 +21,7 @@ ON_ERROR ?= exit 1
OK_STRING=$(OK_COLOR)[OK]$(NO_COLOR)\n
ERROR_STRING=$(ERROR_COLOR)[ERRORS]$(NO_COLOR)\n
WARN_STRING=$(WARN_COLOR)[WARNINGS]$(NO_COLOR)\n
+SKIPPED_STRING=$(SKIPPED_COLOR)[SKIPPED]$(NO_COLOR)\n
TAB_LOG = printf "\n%s\n\n" "$$LOG" | $(AWK) '{ sub(/^/," | "); print }'
TAB_LOG_PLAIN = printf "%s\n" "$$LOG"
@@ -29,6 +31,7 @@ PRINT_ERROR = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_L
PRINT_WARNING = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG)
PRINT_ERROR_PLAIN = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN) && $(ON_ERROR)
PRINT_WARNING_PLAIN = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN)
+PRINT_SKIPPED_PLAIN = ($(SILENT) || printf " $(SKIPPED_STRING)" | $(AWK_STATUS))
PRINT_OK = $(SILENT) || printf " $(OK_STRING)" | $(AWK_STATUS)
BUILD_CMD = LOG=$$($(CMD) 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING); else $(PRINT_OK); fi;
MAKE_MSG_FORMAT = $(AWK) '{ printf "%-118s", $$0;}'
diff --git a/platforms/chibios/BLACKPILL_STM32_F401/configs/config.h b/platforms/chibios/BLACKPILL_STM32_F401/configs/config.h
index eb73e72ef2..1c9d9c6126 100644
--- a/platforms/chibios/BLACKPILL_STM32_F401/configs/config.h
+++ b/platforms/chibios/BLACKPILL_STM32_F401/configs/config.h
@@ -20,4 +20,6 @@
#define STM32_LSECLK 32768U
#define STM32_HSECLK 25000000U
-#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
+# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+#endif
diff --git a/platforms/chibios/BLACKPILL_STM32_F411/configs/config.h b/platforms/chibios/BLACKPILL_STM32_F411/configs/config.h
index eb73e72ef2..1c9d9c6126 100644
--- a/platforms/chibios/BLACKPILL_STM32_F411/configs/config.h
+++ b/platforms/chibios/BLACKPILL_STM32_F411/configs/config.h
@@ -20,4 +20,6 @@
#define STM32_LSECLK 32768U
#define STM32_HSECLK 25000000U
-#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
+# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+#endif
diff --git a/platforms/chibios/GENERIC_STM32_F042X6/configs/mcuconf.h b/platforms/chibios/GENERIC_STM32_F042X6/configs/mcuconf.h
new file mode 100644
index 0000000000..4643e9f92e
--- /dev/null
+++ b/platforms/chibios/GENERIC_STM32_F042X6/configs/mcuconf.h
@@ -0,0 +1,168 @@
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+/*
+ * STM32F0xx drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the whole
+ * driver is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 3...0 Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3 Lowest...Highest.
+ */
+
+#define STM32F0xx_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_NO_INIT FALSE
+#define STM32_PVD_ENABLE FALSE
+#define STM32_PLS STM32_PLS_LEV0
+#define STM32_HSI_ENABLED TRUE
+#define STM32_HSI14_ENABLED TRUE
+#define STM32_HSI48_ENABLED FALSE
+#define STM32_LSI_ENABLED TRUE
+#define STM32_HSE_ENABLED FALSE
+#define STM32_LSE_ENABLED FALSE
+#define STM32_SW STM32_SW_PLL
+#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2
+#define STM32_PREDIV_VALUE 1
+#define STM32_PLLMUL_VALUE 12
+#define STM32_HPRE STM32_HPRE_DIV1
+#define STM32_PPRE STM32_PPRE_DIV1
+#define STM32_ADCSW STM32_ADCSW_HSI14
+#define STM32_ADCPRE STM32_ADCPRE_DIV4
+#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
+#define STM32_ADCPRE STM32_ADCPRE_DIV4
+#define STM32_ADCSW STM32_ADCSW_HSI14
+#define STM32_USBSW STM32_USBSW_HSI48
+#define STM32_CECSW STM32_CECSW_HSI
+#define STM32_I2C1SW STM32_I2C1SW_HSI
+#define STM32_USART1SW STM32_USART1SW_PCLK
+#define STM32_RTCSEL STM32_RTCSEL_LSI
+
+/*
+ * ADC driver system settings.
+ */
+#define STM32_ADC_USE_ADC1 FALSE
+#define STM32_ADC_ADC1_DMA_PRIORITY 2
+#define STM32_ADC_IRQ_PRIORITY 2
+#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2
+
+/*
+ * EXT driver system settings.
+ */
+#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI16_IRQ_PRIORITY 3
+#define STM32_EXT_EXTI17_IRQ_PRIORITY 3
+
+/*
+ * GPT driver system settings.
+ */
+#define STM32_GPT_USE_TIM1 FALSE
+#define STM32_GPT_USE_TIM2 FALSE
+#define STM32_GPT_USE_TIM3 FALSE
+#define STM32_GPT_USE_TIM14 FALSE
+#define STM32_GPT_TIM1_IRQ_PRIORITY 2
+#define STM32_GPT_TIM2_IRQ_PRIORITY 2
+#define STM32_GPT_TIM3_IRQ_PRIORITY 2
+#define STM32_GPT_TIM14_IRQ_PRIORITY 2
+
+/*
+ * I2C driver system settings.
+ */
+#define STM32_I2C_USE_I2C1 FALSE
+#define STM32_I2C_USE_I2C2 FALSE
+#define STM32_I2C_BUSY_TIMEOUT 50
+#define STM32_I2C_I2C1_IRQ_PRIORITY 3
+#define STM32_I2C_I2C2_IRQ_PRIORITY 3
+#define STM32_I2C_USE_DMA TRUE
+#define STM32_I2C_I2C1_DMA_PRIORITY 1
+#define STM32_I2C_I2C2_DMA_PRIORITY 1
+#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
+
+/*
+ * ICU driver system settings.
+ */
+#define STM32_ICU_USE_TIM1 FALSE
+#define STM32_ICU_USE_TIM2 FALSE
+#define STM32_ICU_USE_TIM3 FALSE
+#define STM32_ICU_TIM1_IRQ_PRIORITY 3
+#define STM32_ICU_TIM2_IRQ_PRIORITY 3
+#define STM32_ICU_TIM3_IRQ_PRIORITY 3
+
+/*
+ * PWM driver system settings.
+ */
+#define STM32_PWM_USE_ADVANCED FALSE
+#define STM32_PWM_USE_TIM1 FALSE
+#define STM32_PWM_USE_TIM2 FALSE
+#define STM32_PWM_USE_TIM3 FALSE
+#define STM32_PWM_TIM1_IRQ_PRIORITY 3
+#define STM32_PWM_TIM2_IRQ_PRIORITY 3
+#define STM32_PWM_TIM3_IRQ_PRIORITY 3
+
+/*
+ * SERIAL driver system settings.
+ */
+#define STM32_SERIAL_USE_USART1 FALSE
+#define STM32_SERIAL_USE_USART2 FALSE
+#define STM32_SERIAL_USART1_PRIORITY 3
+#define STM32_SERIAL_USART2_PRIORITY 3
+
+/*
+ * SPI driver system settings.
+ */
+#define STM32_SPI_USE_SPI1 FALSE
+#define STM32_SPI_USE_SPI2 FALSE
+#define STM32_SPI_SPI1_DMA_PRIORITY 1
+#define STM32_SPI_SPI2_DMA_PRIORITY 1
+#define STM32_SPI_SPI1_IRQ_PRIORITY 2
+#define STM32_SPI_SPI2_IRQ_PRIORITY 2
+#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
+
+/*
+ * ST driver system settings.
+ */
+#define STM32_ST_IRQ_PRIORITY 2
+#define STM32_ST_USE_TIMER 2
+
+/*
+ * UART driver system settings.
+ */
+#define STM32_UART_USE_USART1 FALSE
+#define STM32_UART_USE_USART2 FALSE
+#define STM32_UART_USART1_IRQ_PRIORITY 3
+#define STM32_UART_USART2_IRQ_PRIORITY 3
+#define STM32_UART_USART1_DMA_PRIORITY 0
+#define STM32_UART_USART2_DMA_PRIORITY 0
+#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
+
+/*
+ * USB driver system settings.
+ */
+#define STM32_USB_USE_USB1 TRUE
+#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
+#define STM32_USB_USB1_LP_IRQ_PRIORITY 3
+
+#endif /* _MCUCONF_H_ */ \ No newline at end of file
diff --git a/platforms/chibios/GENERIC_STM32_F072XB/board/board.c b/platforms/chibios/GENERIC_STM32_F072XB/board/board.c
deleted file mode 100644
index c91136e8f6..0000000000
--- a/platforms/chibios/GENERIC_STM32_F072XB/board/board.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * This file has been automatically generated using ChibiStudio board
- * generator plugin. Do not edit manually.
- */
-
-#include "hal.h"
-#include "stm32_gpio.h"
-
-/*===========================================================================*/
-/* Driver local definitions. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver exported variables. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver local variables and types. */
-/*===========================================================================*/
-
-/**
- * @brief Type of STM32 GPIO port setup.
- */
-typedef struct {
- uint32_t moder;
- uint32_t otyper;
- uint32_t ospeedr;
- uint32_t pupdr;
- uint32_t odr;
- uint32_t afrl;
- uint32_t afrh;
-} gpio_setup_t;
-
-/**
- * @brief Type of STM32 GPIO initialization data.
- */
-typedef struct {
-#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
- gpio_setup_t PAData;
-#endif
-#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
- gpio_setup_t PBData;
-#endif
-#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
- gpio_setup_t PCData;
-#endif
-#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
- gpio_setup_t PDData;
-#endif
-#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
- gpio_setup_t PEData;
-#endif
-#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
- gpio_setup_t PFData;
-#endif
-#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
- gpio_setup_t PGData;
-#endif
-#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
- gpio_setup_t PHData;
-#endif
-#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
- gpio_setup_t PIData;
-#endif
-#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
- gpio_setup_t PJData;
-#endif
-#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
- gpio_setup_t PKData;
-#endif
-} gpio_config_t;
-
-/**
- * @brief STM32 GPIO static initialization data.
- */
-static const gpio_config_t gpio_default_config = {
-#if STM32_HAS_GPIOA
- {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
-#endif
-#if STM32_HAS_GPIOB
- {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
-#endif
-#if STM32_HAS_GPIOC
- {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
-#endif
-#if STM32_HAS_GPIOD
- {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
-#endif
-#if STM32_HAS_GPIOE
- {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
-#endif
-#if STM32_HAS_GPIOF
- {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
-#endif
-#if STM32_HAS_GPIOG
- {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
-#endif
-#if STM32_HAS_GPIOH
- {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
-#endif
-#if STM32_HAS_GPIOI
- {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
-#endif
-#if STM32_HAS_GPIOJ
- {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR, VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
-#endif
-#if STM32_HAS_GPIOK
- {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR, VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
-#endif
-};
-
-/*===========================================================================*/
-/* Driver local functions. */
-/*===========================================================================*/
-
-static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
- gpiop->OTYPER = config->otyper;
- gpiop->OSPEEDR = config->ospeedr;
- gpiop->PUPDR = config->pupdr;
- gpiop->ODR = config->odr;
- gpiop->AFRL = config->afrl;
- gpiop->AFRH = config->afrh;
- gpiop->MODER = config->moder;
-}
-
-static void stm32_gpio_init(void) {
- /* Enabling GPIO-related clocks, the mask comes from the
- registry header file.*/
- rccResetAHB(STM32_GPIO_EN_MASK);
- rccEnableAHB(STM32_GPIO_EN_MASK, true);
-
- /* Initializing all the defined GPIO ports.*/
-#if STM32_HAS_GPIOA
- gpio_init(GPIOA, &gpio_default_config.PAData);
-#endif
-#if STM32_HAS_GPIOB
- gpio_init(GPIOB, &gpio_default_config.PBData);
-#endif
-#if STM32_HAS_GPIOC
- gpio_init(GPIOC, &gpio_default_config.PCData);
-#endif
-#if STM32_HAS_GPIOD
- gpio_init(GPIOD, &gpio_default_config.PDData);
-#endif
-#if STM32_HAS_GPIOE
- gpio_init(GPIOE, &gpio_default_config.PEData);
-#endif
-#if STM32_HAS_GPIOF
- gpio_init(GPIOF, &gpio_default_config.PFData);
-#endif
-#if STM32_HAS_GPIOG
- gpio_init(GPIOG, &gpio_default_config.PGData);
-#endif
-#if STM32_HAS_GPIOH
- gpio_init(GPIOH, &gpio_default_config.PHData);
-#endif
-#if STM32_HAS_GPIOI
- gpio_init(GPIOI, &gpio_default_config.PIData);
-#endif
-#if STM32_HAS_GPIOJ
- gpio_init(GPIOJ, &gpio_default_config.PJData);
-#endif
-#if STM32_HAS_GPIOK
- gpio_init(GPIOK, &gpio_default_config.PKData);
-#endif
-}
-
-/*===========================================================================*/
-/* Driver interrupt handlers. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver exported functions. */
-/*===========================================================================*/
-
-__attribute__((weak)) void enter_bootloader_mode_if_requested(void) {}
-
-/**
- * @brief Early initialization code.
- * @details GPIO ports and system clocks are initialized before everything
- * else.
- */
-void __early_init(void) {
- enter_bootloader_mode_if_requested();
-
- stm32_gpio_init();
- stm32_clock_init();
-}
-
-#if HAL_USE_SDC || defined(__DOXYGEN__)
-/**
- * @brief SDC card detection.
- */
-bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
- (void)sdcp;
- /* TODO: Fill the implementation.*/
- return true;
-}
-
-/**
- * @brief SDC card write protection detection.
- */
-bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
- (void)sdcp;
- /* TODO: Fill the implementation.*/
- return false;
-}
-#endif /* HAL_USE_SDC */
-
-#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
-/**
- * @brief MMC_SPI card detection.
- */
-bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
- (void)mmcp;
- /* TODO: Fill the implementation.*/
- return true;
-}
-
-/**
- * @brief MMC_SPI card write protection detection.
- */
-bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
- (void)mmcp;
- /* TODO: Fill the implementation.*/
- return false;
-}
-#endif
-
-/**
- * @brief Board-specific initialization code.
- * @todo Add your board-specific code, if any.
- */
-void boardInit(void) {}
diff --git a/platforms/chibios/GENERIC_STM32_F072XB/board/board.h b/platforms/chibios/GENERIC_STM32_F072XB/board/board.h
deleted file mode 100644
index 87570e62d2..0000000000
--- a/platforms/chibios/GENERIC_STM32_F072XB/board/board.h
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/*
- * This file has been automatically generated using ChibiStudio board
- * generator plugin. Do not edit manually.
- */
-
-#ifndef BOARD_H
-#define BOARD_H
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-/*
- * Setup for Generic STM32_F072 Board
- */
-
-/*
- * Board identifier.
- */
-#define BOARD_GENERIC_STM32_F072XB
-#define BOARD_NAME "STM32_F072"
-
-/*
- * Board oscillators-related settings.
- * NOTE: LSE not fitted.
- * NOTE: HSE not fitted.
- */
-#if !defined(STM32_LSECLK)
-# define STM32_LSECLK 0U
-#endif
-
-#define STM32_LSEDRV (3U << 3U)
-
-#if !defined(STM32_HSECLK)
-# define STM32_HSECLK 0U
-#endif
-
-#define STM32_HSE_BYPASS
-
-/*
- * MCU type as defined in the ST header.
- */
-#define STM32F072xB
-
-/*
- * IO pins assignments.
- */
-#define GPIOA_BUTTON 0U
-#define GPIOA_PIN1 1U
-#define GPIOA_PIN2 2U
-#define GPIOA_PIN3 3U
-#define GPIOA_PIN4 4U
-#define GPIOA_PIN5 5U
-#define GPIOA_PIN6 6U
-#define GPIOA_PIN7 7U
-#define GPIOA_PIN8 8U
-#define GPIOA_PIN9 9U
-#define GPIOA_PIN10 10U
-#define GPIOA_USB_DM 11U
-#define GPIOA_USB_DP 12U
-#define GPIOA_SWDIO 13U
-#define GPIOA_SWCLK 14U
-#define GPIOA_PIN15 15U
-
-#define GPIOB_PIN0 0U
-#define GPIOB_PIN1 1U
-#define GPIOB_PIN2 2U
-#define GPIOB_PIN3 3U
-#define GPIOB_PIN4 4U
-#define GPIOB_PIN5 5U
-#define GPIOB_PIN6 6U
-#define GPIOB_PIN7 7U
-#define GPIOB_PIN8 8U
-#define GPIOB_PIN9 9U
-#define GPIOB_PIN10 10U
-#define GPIOB_PIN11 11U
-#define GPIOB_PIN12 12U
-#define GPIOB_SPI2_SCK 13U
-#define GPIOB_SPI2_MISO 14U
-#define GPIOB_SPI2_MOSI 15U
-
-#define GPIOC_MEMS_CS 0U
-#define GPIOC_PIN1 1U
-#define GPIOC_PIN2 2U
-#define GPIOC_PIN3 3U
-#define GPIOC_PIN4 4U
-#define GPIOC_PIN5 5U
-#define GPIOC_LED_RED 6U
-#define GPIOC_LED_BLUE 7U
-#define GPIOC_LED_ORANGE 8U
-#define GPIOC_LED_GREEN 9U
-#define GPIOC_PIN10 10U
-#define GPIOC_PIN11 11U
-#define GPIOC_PIN12 12U
-#define GPIOC_PIN13 13U
-#define GPIOC_OSC32_IN 14U
-#define GPIOC_OSC32_OUT 15U
-
-#define GPIOD_PIN0 0U
-#define GPIOD_PIN1 1U
-#define GPIOD_PIN2 2U
-#define GPIOD_PIN3 3U
-#define GPIOD_PIN4 4U
-#define GPIOD_PIN5 5U
-#define GPIOD_PIN6 6U
-#define GPIOD_PIN7 7U
-#define GPIOD_PIN8 8U
-#define GPIOD_PIN9 9U
-#define GPIOD_PIN10 10U
-#define GPIOD_PIN11 11U
-#define GPIOD_PIN12 12U
-#define GPIOD_PIN13 13U
-#define GPIOD_PIN14 14U
-#define GPIOD_PIN15 15U
-
-#define GPIOE_PIN0 0U
-#define GPIOE_PIN1 1U
-#define GPIOE_PIN2 2U
-#define GPIOE_PIN3 3U
-#define GPIOE_PIN4 4U
-#define GPIOE_PIN5 5U
-#define GPIOE_PIN6 6U
-#define GPIOE_PIN7 7U
-#define GPIOE_PIN8 8U
-#define GPIOE_PIN9 9U
-#define GPIOE_PIN10 10U
-#define GPIOE_PIN11 11U
-#define GPIOE_PIN12 12U
-#define GPIOE_PIN13 13U
-#define GPIOE_PIN14 14U
-#define GPIOE_PIN15 15U
-
-#define GPIOF_OSC_IN 0U
-#define GPIOF_OSC_OUT 1U
-#define GPIOF_PIN2 2U
-#define GPIOF_PIN3 3U
-#define GPIOF_PIN4 4U
-#define GPIOF_PIN5 5U
-#define GPIOF_PIN6 6U
-#define GPIOF_PIN7 7U
-#define GPIOF_PIN8 8U
-#define GPIOF_PIN9 9U
-#define GPIOF_PIN10 10U
-#define GPIOF_PIN11 11U
-#define GPIOF_PIN12 12U
-#define GPIOF_PIN13 13U
-#define GPIOF_PIN14 14U
-#define GPIOF_PIN15 15U
-
-/*
- * IO lines assignments.
- */
-#define LINE_BUTTON PAL_LINE(GPIOA, 0U)
-#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
-#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
-#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
-#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
-#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U)
-#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U)
-#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U)
-#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U)
-#define LINE_LED_RED PAL_LINE(GPIOC, 6U)
-#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U)
-#define LINE_LED_ORANGE PAL_LINE(GPIOC, 8U)
-#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U)
-#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U)
-#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U)
-#define LINE_OSC_IN PAL_LINE(GPIOF, 0U)
-#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U)
-
-/*===========================================================================*/
-/* Driver pre-compile time settings. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Derived constants and error checks. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver data structures and types. */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Driver macros. */
-/*===========================================================================*/
-
-/*
- * I/O ports initial setup, this configuration is established soon after reset
- * in the initialization code.
- * Please refer to the STM32 Reference Manual for details.
- */
-#define PIN_MODE_INPUT(n) (0U << ((n)*2U))
-#define PIN_MODE_OUTPUT(n) (1U << ((n)*2U))
-#define PIN_MODE_ALTERNATE(n) (2U << ((n)*2U))
-#define PIN_MODE_ANALOG(n) (3U << ((n)*2U))
-#define PIN_ODR_LOW(n) (0U << (n))
-#define PIN_ODR_HIGH(n) (1U << (n))
-#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
-#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
-#define PIN_OSPEED_VERYLOW(n) (0U << ((n)*2U))
-#define PIN_OSPEED_LOW(n) (1U << ((n)*2U))
-#define PIN_OSPEED_MEDIUM(n) (2U << ((n)*2U))
-#define PIN_OSPEED_HIGH(n) (3U << ((n)*2U))
-#define PIN_PUPDR_FLOATING(n) (0U << ((n)*2U))
-#define PIN_PUPDR_PULLUP(n) (1U << ((n)*2U))
-#define PIN_PUPDR_PULLDOWN(n) (2U << ((n)*2U))
-#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
-
-/*
- * GPIOA setup:
- *
- * PA0 - BUTTON (input floating).
- * PA1 - PIN1 (input pullup).
- * PA2 - PIN2 (input pullup).
- * PA3 - PIN3 (input pullup).
- * PA4 - PIN4 (input pullup).
- * PA5 - PIN5 (input pullup).
- * PA6 - PIN6 (input pullup).
- * PA7 - PIN7 (input pullup).
- * PA8 - PIN8 (input pullup).
- * PA9 - PIN9 (input pullup).
- * PA10 - PIN10 (input pullup).
- * PA11 - USB_DM (input floating).
- * PA12 - USB_DP (input floating).
- * PA13 - SWDIO (alternate 0).
- * PA14 - SWCLK (alternate 0).
- * PA15 - PIN15 (input pullup).
- */
-#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | PIN_MODE_INPUT(GPIOA_PIN1) | PIN_MODE_INPUT(GPIOA_PIN2) | PIN_MODE_INPUT(GPIOA_PIN3) | PIN_MODE_INPUT(GPIOA_PIN4) | PIN_MODE_INPUT(GPIOA_PIN5) | PIN_MODE_INPUT(GPIOA_PIN6) | PIN_MODE_INPUT(GPIOA_PIN7) | PIN_MODE_INPUT(GPIOA_PIN8) | PIN_MODE_INPUT(GPIOA_PIN9) | PIN_MODE_INPUT(GPIOA_PIN10) | PIN_MODE_INPUT(GPIOA_USB_DM) | PIN_MODE_INPUT(GPIOA_USB_DP) | PIN_MODE_ALTERNATE(GPIOA_SWDIO) | PIN_MODE_ALTERNATE(GPIOA_SWCLK) | PIN_MODE_INPUT(GPIOA_PIN15))
-#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
-#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_BUTTON) | PIN_OSPEED_VERYLOW(GPIOA_PIN1) | PIN_OSPEED_VERYLOW(GPIOA_PIN2) | PIN_OSPEED_VERYLOW(GPIOA_PIN3) | PIN_OSPEED_VERYLOW(GPIOA_PIN4) | PIN_OSPEED_VERYLOW(GPIOA_PIN5) | PIN_OSPEED_VERYLOW(GPIOA_PIN6) | PIN_OSPEED_VERYLOW(GPIOA_PIN7) | PIN_OSPEED_VERYLOW(GPIOA_PIN8) | PIN_OSPEED_VERYLOW(GPIOA_PIN9) | PIN_OSPEED_VERYLOW(GPIOA_PIN10) | PIN_OSPEED_VERYLOW(GPIOA_USB_DM) | PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | PIN_OSPEED_HIGH(GPIOA_SWDIO) | PIN_OSPEED_HIGH(GPIOA_SWCLK) | PIN_OSPEED_HIGH(GPIOA_PIN15))
-#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | PIN_PUPDR_PULLUP(GPIOA_PIN1) | PIN_PUPDR_PULLUP(GPIOA_PIN2) | PIN_PUPDR_PULLUP(GPIOA_PIN3) | PIN_PUPDR_PULLUP(GPIOA_PIN4) | PIN_PUPDR_PULLUP(GPIOA_PIN5) | PIN_PUPDR_PULLUP(GPIOA_PIN6) | PIN_PUPDR_PULLUP(GPIOA_PIN7) | PIN_PUPDR_PULLUP(GPIOA_PIN8) | PIN_PUPDR_PULLUP(GPIOA_PIN9) | PIN_PUPDR_PULLUP(GPIOA_PIN10) | PIN_PUPDR_FLOATING(GPIOA_USB_DM) | PIN_PUPDR_FLOATING(GPIOA_USB_DP) | PIN_PUPDR_PULLUP(GPIOA_SWDIO) | PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | PIN_PUPDR_PULLUP(GPIOA_PIN15))
-#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | PIN_ODR_HIGH(GPIOA_PIN1) | PIN_ODR_HIGH(GPIOA_PIN2) | PIN_ODR_HIGH(GPIOA_PIN3) | PIN_ODR_HIGH(GPIOA_PIN4) | PIN_ODR_HIGH(GPIOA_PIN5) | PIN_ODR_HIGH(GPIOA_PIN6) | PIN_ODR_HIGH(GPIOA_PIN7) | PIN_ODR_HIGH(GPIOA_PIN8) | PIN_ODR_HIGH(GPIOA_PIN9) | PIN_ODR_HIGH(GPIOA_PIN10) | PIN_ODR_HIGH(GPIOA_USB_DM) | PIN_ODR_HIGH(GPIOA_USB_DP) | PIN_ODR_HIGH(GPIOA_SWDIO) | PIN_ODR_HIGH(GPIOA_SWCLK) | PIN_ODR_HIGH(GPIOA_PIN15))
-#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | PIN_AFIO_AF(GPIOA_PIN1, 0U) | PIN_AFIO_AF(GPIOA_PIN2, 0U) | PIN_AFIO_AF(GPIOA_PIN3, 0U) | PIN_AFIO_AF(GPIOA_PIN4, 0U) | PIN_AFIO_AF(GPIOA_PIN5, 0U) | PIN_AFIO_AF(GPIOA_PIN6, 0U) | PIN_AFIO_AF(GPIOA_PIN7, 0U))
-#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0U) | PIN_AFIO_AF(GPIOA_PIN9, 0U) | PIN_AFIO_AF(GPIOA_PIN10, 0U) | PIN_AFIO_AF(GPIOA_USB_DM, 0U) | PIN_AFIO_AF(GPIOA_USB_DP, 0U) | PIN_AFIO_AF(GPIOA_SWDIO, 0U) | PIN_AFIO_AF(GPIOA_SWCLK, 0U) | PIN_AFIO_AF(GPIOA_PIN15, 0U))
-
-/*
- * GPIOB setup:
- *
- * PB0 - PIN0 (input pullup).
- * PB1 - PIN1 (input pullup).
- * PB2 - PIN2 (input pullup).
- * PB3 - PIN3 (input pullup).
- * PB4 - PIN4 (input pullup).
- * PB5 - PIN5 (input pullup).
- * PB6 - PIN6 (input pullup).
- * PB7 - PIN7 (input pullup).
- * PB8 - PIN8 (input pullup).
- * PB9 - PIN9 (input pullup).
- * PB10 - PIN10 (input pullup).
- * PB11 - PIN11 (input pullup).
- * PB12 - PIN12 (input pullup).
- * PB13 - SPI2_SCK (alternate 0).
- * PB14 - SPI2_MISO (alternate 0).
- * PB15 - SPI2_MOSI (alternate 0).
- */
-#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | PIN_MODE_INPUT(GPIOB_PIN1) | PIN_MODE_INPUT(GPIOB_PIN2) | PIN_MODE_INPUT(GPIOB_PIN3) | PIN_MODE_INPUT(GPIOB_PIN4) | PIN_MODE_INPUT(GPIOB_PIN5) | PIN_MODE_INPUT(GPIOB_PIN6) | PIN_MODE_INPUT(GPIOB_PIN7) | PIN_MODE_INPUT(GPIOB_PIN8) | PIN_MODE_INPUT(GPIOB_PIN9) | PIN_MODE_INPUT(GPIOB_PIN10) | PIN_MODE_INPUT(GPIOB_PIN11) | PIN_MODE_INPUT(GPIOB_PIN12) | PIN_MODE_ALTERNATE(GPIOB_SPI2_SCK) | PIN_MODE_ALTERNATE(GPIOB_SPI2_MISO) | PIN_MODE_ALTERNATE(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SCK) | PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MISO) | PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | PIN_OSPEED_VERYLOW(GPIOB_PIN1) | PIN_OSPEED_HIGH(GPIOB_PIN2) | PIN_OSPEED_HIGH(GPIOB_PIN3) | PIN_OSPEED_HIGH(GPIOB_PIN4) | PIN_OSPEED_VERYLOW(GPIOB_PIN5) | PIN_OSPEED_VERYLOW(GPIOB_PIN6) | PIN_OSPEED_VERYLOW(GPIOB_PIN7) | PIN_OSPEED_VERYLOW(GPIOB_PIN8) | PIN_OSPEED_VERYLOW(GPIOB_PIN9) | PIN_OSPEED_VERYLOW(GPIOB_PIN10) | PIN_OSPEED_VERYLOW(GPIOB_PIN11) | PIN_OSPEED_VERYLOW(GPIOB_PIN12) | PIN_OSPEED_VERYLOW(GPIOB_SPI2_SCK) | PIN_OSPEED_VERYLOW(GPIOB_SPI2_MISO) | PIN_OSPEED_VERYLOW(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | PIN_PUPDR_PULLUP(GPIOB_PIN1) | PIN_PUPDR_PULLUP(GPIOB_PIN2) | PIN_PUPDR_PULLUP(GPIOB_PIN3) | PIN_PUPDR_PULLUP(GPIOB_PIN4) | PIN_PUPDR_PULLUP(GPIOB_PIN5) | PIN_PUPDR_PULLUP(GPIOB_PIN6) | PIN_PUPDR_PULLUP(GPIOB_PIN7) | PIN_PUPDR_PULLUP(GPIOB_PIN8) | PIN_PUPDR_PULLUP(GPIOB_PIN9) | PIN_PUPDR_PULLUP(GPIOB_PIN10) | PIN_PUPDR_PULLUP(GPIOB_PIN11) | PIN_PUPDR_PULLUP(GPIOB_PIN12) | PIN_PUPDR_FLOATING(GPIOB_SPI2_SCK) | PIN_PUPDR_FLOATING(GPIOB_SPI2_MISO) | PIN_PUPDR_FLOATING(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | PIN_ODR_HIGH(GPIOB_PIN1) | PIN_ODR_HIGH(GPIOB_PIN2) | PIN_ODR_HIGH(GPIOB_PIN3) | PIN_ODR_HIGH(GPIOB_PIN4) | PIN_ODR_HIGH(GPIOB_PIN5) | PIN_ODR_HIGH(GPIOB_PIN6) | PIN_ODR_HIGH(GPIOB_PIN7) | PIN_ODR_HIGH(GPIOB_PIN8) | PIN_ODR_HIGH(GPIOB_PIN9) | PIN_ODR_HIGH(GPIOB_PIN10) | PIN_ODR_HIGH(GPIOB_PIN11) | PIN_ODR_HIGH(GPIOB_PIN12) | PIN_ODR_HIGH(GPIOB_SPI2_SCK) | PIN_ODR_HIGH(GPIOB_SPI2_MISO) | PIN_ODR_HIGH(GPIOB_SPI2_MOSI))
-#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | PIN_AFIO_AF(GPIOB_PIN1, 0U) | PIN_AFIO_AF(GPIOB_PIN2, 0U) | PIN_AFIO_AF(GPIOB_PIN3, 0U) | PIN_AFIO_AF(GPIOB_PIN4, 0U) | PIN_AFIO_AF(GPIOB_PIN5, 0U) | PIN_AFIO_AF(GPIOB_PIN6, 0U) | PIN_AFIO_AF(GPIOB_PIN7, 0U))
-#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | PIN_AFIO_AF(GPIOB_PIN9, 0U) | PIN_AFIO_AF(GPIOB_PIN10, 0U) | PIN_AFIO_AF(GPIOB_PIN11, 0U) | PIN_AFIO_AF(GPIOB_PIN12, 0U) | PIN_AFIO_AF(GPIOB_SPI2_SCK, 0U) | PIN_AFIO_AF(GPIOB_SPI2_MISO, 0U) | PIN_AFIO_AF(GPIOB_SPI2_MOSI, 0U))
-
-/*
- * GPIOC setup:
- *
- * PC0 - MEMS_CS (output pushpull maximum).
- * PC1 - PIN1 (input pullup).
- * PC2 - PIN2 (input pullup).
- * PC3 - PIN3 (input pullup).
- * PC4 - PIN4 (input pullup).
- * PC5 - PIN5 (input pullup).
- * PC6 - LED_RED (output pushpull maximum).
- * PC7 - LED_BLUE (output pushpull maximum).
- * PC8 - LED_ORANGE (output pushpull maximum).
- * PC9 - LED_GREEN (output pushpull maximum).
- * PC10 - PIN10 (input pullup).
- * PC11 - PIN11 (input pullup).
- * PC12 - PIN12 (input pullup).
- * PC13 - PIN13 (input pullup).
- * PC14 - OSC32_IN (input floating).
- * PC15 - OSC32_OUT (input floating).
- */
-#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_MEMS_CS) | PIN_MODE_INPUT(GPIOC_PIN1) | PIN_MODE_INPUT(GPIOC_PIN2) | PIN_MODE_INPUT(GPIOC_PIN3) | PIN_MODE_INPUT(GPIOC_PIN4) | PIN_MODE_INPUT(GPIOC_PIN5) | PIN_MODE_OUTPUT(GPIOC_LED_RED) | PIN_MODE_OUTPUT(GPIOC_LED_BLUE) | PIN_MODE_OUTPUT(GPIOC_LED_ORANGE) | PIN_MODE_OUTPUT(GPIOC_LED_GREEN) | PIN_MODE_INPUT(GPIOC_PIN10) | PIN_MODE_INPUT(GPIOC_PIN11) | PIN_MODE_INPUT(GPIOC_PIN12) | PIN_MODE_INPUT(GPIOC_PIN13) | PIN_MODE_INPUT(GPIOC_OSC32_IN) | PIN_MODE_INPUT(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_MEMS_CS) | PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | PIN_OTYPE_PUSHPULL(GPIOC_LED_RED) | PIN_OTYPE_PUSHPULL(GPIOC_LED_BLUE) | PIN_OTYPE_PUSHPULL(GPIOC_LED_ORANGE) | PIN_OTYPE_PUSHPULL(GPIOC_LED_GREEN) | PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_MEMS_CS) | PIN_OSPEED_VERYLOW(GPIOC_PIN1) | PIN_OSPEED_VERYLOW(GPIOC_PIN2) | PIN_OSPEED_VERYLOW(GPIOC_PIN3) | PIN_OSPEED_VERYLOW(GPIOC_PIN4) | PIN_OSPEED_VERYLOW(GPIOC_PIN5) | PIN_OSPEED_HIGH(GPIOC_LED_RED) | PIN_OSPEED_HIGH(GPIOC_LED_BLUE) | PIN_OSPEED_HIGH(GPIOC_LED_ORANGE) | PIN_OSPEED_HIGH(GPIOC_LED_GREEN) | PIN_OSPEED_VERYLOW(GPIOC_PIN10) | PIN_OSPEED_VERYLOW(GPIOC_PIN11) | PIN_OSPEED_VERYLOW(GPIOC_PIN12) | PIN_OSPEED_VERYLOW(GPIOC_PIN13) | PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | PIN_OSPEED_HIGH(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_MEMS_CS) | PIN_PUPDR_PULLUP(GPIOC_PIN1) | PIN_PUPDR_PULLUP(GPIOC_PIN2) | PIN_PUPDR_PULLUP(GPIOC_PIN3) | PIN_PUPDR_PULLUP(GPIOC_PIN4) | PIN_PUPDR_PULLUP(GPIOC_PIN5) | PIN_PUPDR_FLOATING(GPIOC_LED_RED) | PIN_PUPDR_FLOATING(GPIOC_LED_BLUE) | PIN_PUPDR_FLOATING(GPIOC_LED_ORANGE) | PIN_PUPDR_FLOATING(GPIOC_LED_GREEN) | PIN_PUPDR_PULLUP(GPIOC_PIN10) | PIN_PUPDR_PULLUP(GPIOC_PIN11) | PIN_PUPDR_PULLUP(GPIOC_PIN12) | PIN_PUPDR_PULLUP(GPIOC_PIN13) | PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_MEMS_CS) | PIN_ODR_HIGH(GPIOC_PIN1) | PIN_ODR_HIGH(GPIOC_PIN2) | PIN_ODR_HIGH(GPIOC_PIN3) | PIN_ODR_HIGH(GPIOC_PIN4) | PIN_ODR_HIGH(GPIOC_PIN5) | PIN_ODR_LOW(GPIOC_LED_RED) | PIN_ODR_LOW(GPIOC_LED_BLUE) | PIN_ODR_LOW(GPIOC_LED_ORANGE) | PIN_ODR_LOW(GPIOC_LED_GREEN) | PIN_ODR_HIGH(GPIOC_PIN10) | PIN_ODR_HIGH(GPIOC_PIN11) | PIN_ODR_HIGH(GPIOC_PIN12) | PIN_ODR_HIGH(GPIOC_PIN13) | PIN_ODR_HIGH(GPIOC_OSC32_IN) | PIN_ODR_HIGH(GPIOC_OSC32_OUT))
-#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_MEMS_CS, 0U) | PIN_AFIO_AF(GPIOC_PIN1, 0U) | PIN_AFIO_AF(GPIOC_PIN2, 0U) | PIN_AFIO_AF(GPIOC_PIN3, 0U) | PIN_AFIO_AF(GPIOC_PIN4, 0U) | PIN_AFIO_AF(GPIOC_PIN5, 0U) | PIN_AFIO_AF(GPIOC_LED_RED, 0U) | PIN_AFIO_AF(GPIOC_LED_BLUE, 0U))
-#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_LED_ORANGE, 0U) | PIN_AFIO_AF(GPIOC_LED_GREEN, 0U) | PIN_AFIO_AF(GPIOC_PIN10, 0U) | PIN_AFIO_AF(GPIOC_PIN11, 0U) | PIN_AFIO_AF(GPIOC_PIN12, 0U) | PIN_AFIO_AF(GPIOC_PIN13, 0U) | PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U))
-
-/*
- * GPIOD setup:
- *
- * PD0 - PIN0 (input pullup).
- * PD1 - PIN1 (input pullup).
- * PD2 - PIN2 (input pullup).
- * PD3 - PIN3 (input pullup).
- * PD4 - PIN4 (input pullup).
- * PD5 - PIN5 (input pullup).
- * PD6 - PIN6 (input pullup).
- * PD7 - PIN7 (input pullup).
- * PD8 - PIN8 (input pullup).
- * PD9 - PIN9 (input pullup).
- * PD10 - PIN10 (input pullup).
- * PD11 - PIN11 (input pullup).
- * PD12 - PIN12 (input pullup).
- * PD13 - PIN13 (input pullup).
- * PD14 - PIN14 (input pullup).
- * PD15 - PIN15 (input pullup).
- */
-#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | PIN_MODE_INPUT(GPIOD_PIN1) | PIN_MODE_INPUT(GPIOD_PIN2) | PIN_MODE_INPUT(GPIOD_PIN3) | PIN_MODE_INPUT(GPIOD_PIN4) | PIN_MODE_INPUT(GPIOD_PIN5) | PIN_MODE_INPUT(GPIOD_PIN6) | PIN_MODE_INPUT(GPIOD_PIN7) | PIN_MODE_INPUT(GPIOD_PIN8) | PIN_MODE_INPUT(GPIOD_PIN9) | PIN_MODE_INPUT(GPIOD_PIN10) | PIN_MODE_INPUT(GPIOD_PIN11) | PIN_MODE_INPUT(GPIOD_PIN12) | PIN_MODE_INPUT(GPIOD_PIN13) | PIN_MODE_INPUT(GPIOD_PIN14) | PIN_MODE_INPUT(GPIOD_PIN15))
-#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
-#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | PIN_OSPEED_VERYLOW(GPIOD_PIN1) | PIN_OSPEED_VERYLOW(GPIOD_PIN2) | PIN_OSPEED_VERYLOW(GPIOD_PIN3) | PIN_OSPEED_VERYLOW(GPIOD_PIN4) | PIN_OSPEED_VERYLOW(GPIOD_PIN5) | PIN_OSPEED_VERYLOW(GPIOD_PIN6) | PIN_OSPEED_VERYLOW(GPIOD_PIN7) | PIN_OSPEED_VERYLOW(GPIOD_PIN8) | PIN_OSPEED_VERYLOW(GPIOD_PIN9) | PIN_OSPEED_VERYLOW(GPIOD_PIN10) | PIN_OSPEED_VERYLOW(GPIOD_PIN11) | PIN_OSPEED_VERYLOW(GPIOD_PIN12) | PIN_OSPEED_VERYLOW(GPIOD_PIN13) | PIN_OSPEED_VERYLOW(GPIOD_PIN14) | PIN_OSPEED_VERYLOW(GPIOD_PIN15))
-#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | PIN_PUPDR_PULLUP(GPIOD_PIN1) | PIN_PUPDR_PULLUP(GPIOD_PIN2) | PIN_PUPDR_PULLUP(GPIOD_PIN3) | PIN_PUPDR_PULLUP(GPIOD_PIN4) | PIN_PUPDR_PULLUP(GPIOD_PIN5) | PIN_PUPDR_PULLUP(GPIOD_PIN6) | PIN_PUPDR_PULLUP(GPIOD_PIN7) | PIN_PUPDR_PULLUP(GPIOD_PIN8) | PIN_PUPDR_PULLUP(GPIOD_PIN9) | PIN_PUPDR_PULLUP(GPIOD_PIN10) | PIN_PUPDR_PULLUP(GPIOD_PIN11) | PIN_PUPDR_PULLUP(GPIOD_PIN12) | PIN_PUPDR_PULLUP(GPIOD_PIN13) | PIN_PUPDR_PULLUP(GPIOD_PIN14) | PIN_PUPDR_PULLUP(GPIOD_PIN15))
-#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | PIN_ODR_HIGH(GPIOD_PIN1) | PIN_ODR_HIGH(GPIOD_PIN2) | PIN_ODR_HIGH(GPIOD_PIN3) | PIN_ODR_HIGH(GPIOD_PIN4) | PIN_ODR_HIGH(GPIOD_PIN5) | PIN_ODR_HIGH(GPIOD_PIN6) | PIN_ODR_HIGH(GPIOD_PIN7) | PIN_ODR_HIGH(GPIOD_PIN8) | PIN_ODR_HIGH(GPIOD_PIN9) | PIN_ODR_HIGH(GPIOD_PIN10) | PIN_ODR_HIGH(GPIOD_PIN11) | PIN_ODR_HIGH(GPIOD_PIN12) | PIN_ODR_HIGH(GPIOD_PIN13) | PIN_ODR_HIGH(GPIOD_PIN14) | PIN_ODR_HIGH(GPIOD_PIN15))
-#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | PIN_AFIO_AF(GPIOD_PIN1, 0U) | PIN_AFIO_AF(GPIOD_PIN2, 0U) | PIN_AFIO_AF(GPIOD_PIN3, 0U) | PIN_AFIO_AF(GPIOD_PIN4, 0U) | PIN_AFIO_AF(GPIOD_PIN5, 0U) | PIN_AFIO_AF(GPIOD_PIN6, 0U) | PIN_AFIO_AF(GPIOD_PIN7, 0U))
-#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | PIN_AFIO_AF(GPIOD_PIN9, 0U) | PIN_AFIO_AF(GPIOD_PIN10, 0U) | PIN_AFIO_AF(GPIOD_PIN11, 0U) | PIN_AFIO_AF(GPIOD_PIN12, 0U) | PIN_AFIO_AF(GPIOD_PIN13, 0U) | PIN_AFIO_AF(GPIOD_PIN14, 0U) | PIN_AFIO_AF(GPIOD_PIN15, 0U))
-
-/*
- * GPIOE setup:
- *
- * PE0 - PIN0 (input pullup).
- * PE1 - PIN1 (input pullup).
- * PE2 - PIN2 (input pullup).
- * PE3 - PIN3 (input pullup).
- * PE4 - PIN4 (input pullup).
- * PE5 - PIN5 (input pullup).
- * PE6 - PIN6 (input pullup).
- * PE7 - PIN7 (input pullup).
- * PE8 - PIN8 (input pullup).
- * PE9 - PIN9 (input pullup).
- * PE10 - PIN10 (input pullup).
- * PE11 - PIN11 (input pullup).
- * PE12 - PIN12 (input pullup).
- * PE13 - PIN13 (input pullup).
- * PE14 - PIN14 (input pullup).
- * PE15 - PIN15 (input pullup).
- */
-#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | PIN_MODE_INPUT(GPIOE_PIN1) | PIN_MODE_INPUT(GPIOE_PIN2) | PIN_MODE_INPUT(GPIOE_PIN3) | PIN_MODE_INPUT(GPIOE_PIN4) | PIN_MODE_INPUT(GPIOE_PIN5) | PIN_MODE_INPUT(GPIOE_PIN6) | PIN_MODE_INPUT(GPIOE_PIN7) | PIN_MODE_INPUT(GPIOE_PIN8) | PIN_MODE_INPUT(GPIOE_PIN9) | PIN_MODE_INPUT(GPIOE_PIN10) | PIN_MODE_INPUT(GPIOE_PIN11) | PIN_MODE_INPUT(GPIOE_PIN12) | PIN_MODE_INPUT(GPIOE_PIN13) | PIN_MODE_INPUT(GPIOE_PIN14) | PIN_MODE_INPUT(GPIOE_PIN15))
-#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
-#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) | PIN_OSPEED_VERYLOW(GPIOE_PIN1) | PIN_OSPEED_VERYLOW(GPIOE_PIN2) | PIN_OSPEED_VERYLOW(GPIOE_PIN3) | PIN_OSPEED_VERYLOW(GPIOE_PIN4) | PIN_OSPEED_VERYLOW(GPIOE_PIN5) | PIN_OSPEED_VERYLOW(GPIOE_PIN6) | PIN_OSPEED_VERYLOW(GPIOE_PIN7) | PIN_OSPEED_VERYLOW(GPIOE_PIN8) | PIN_OSPEED_VERYLOW(GPIOE_PIN9) | PIN_OSPEED_VERYLOW(GPIOE_PIN10) | PIN_OSPEED_VERYLOW(GPIOE_PIN11) | PIN_OSPEED_VERYLOW(GPIOE_PIN12) | PIN_OSPEED_VERYLOW(GPIOE_PIN13) | PIN_OSPEED_VERYLOW(GPIOE_PIN14) | PIN_OSPEED_VERYLOW(GPIOE_PIN15))
-#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | PIN_PUPDR_PULLUP(GPIOE_PIN1) | PIN_PUPDR_PULLUP(GPIOE_PIN2) | PIN_PUPDR_PULLUP(GPIOE_PIN3) | PIN_PUPDR_PULLUP(GPIOE_PIN4) | PIN_PUPDR_PULLUP(GPIOE_PIN5) | PIN_PUPDR_PULLUP(GPIOE_PIN6) | PIN_PUPDR_PULLUP(GPIOE_PIN7) | PIN_PUPDR_PULLUP(GPIOE_PIN8) | PIN_PUPDR_PULLUP(GPIOE_PIN9) | PIN_PUPDR_PULLUP(GPIOE_PIN10) | PIN_PUPDR_PULLUP(GPIOE_PIN11) | PIN_PUPDR_PULLUP(GPIOE_PIN12) | PIN_PUPDR_PULLUP(GPIOE_PIN13) | PIN_PUPDR_PULLUP(GPIOE_PIN14) | PIN_PUPDR_PULLUP(GPIOE_PIN15))
-#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | PIN_ODR_HIGH(GPIOE_PIN1) | PIN_ODR_HIGH(GPIOE_PIN2) | PIN_ODR_HIGH(GPIOE_PIN3) | PIN_ODR_HIGH(GPIOE_PIN4) | PIN_ODR_HIGH(GPIOE_PIN5) | PIN_ODR_HIGH(GPIOE_PIN6) | PIN_ODR_HIGH(GPIOE_PIN7) | PIN_ODR_HIGH(GPIOE_PIN8) | PIN_ODR_HIGH(GPIOE_PIN9) | PIN_ODR_HIGH(GPIOE_PIN10) | PIN_ODR_HIGH(GPIOE_PIN11) | PIN_ODR_HIGH(GPIOE_PIN12) | PIN_ODR_HIGH(GPIOE_PIN13) | PIN_ODR_HIGH(GPIOE_PIN14) | PIN_ODR_HIGH(GPIOE_PIN15))
-#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | PIN_AFIO_AF(GPIOE_PIN1, 0U) | PIN_AFIO_AF(GPIOE_PIN2, 0U) | PIN_AFIO_AF(GPIOE_PIN3, 0U) | PIN_AFIO_AF(GPIOE_PIN4, 0U) | PIN_AFIO_AF(GPIOE_PIN5, 0U) | PIN_AFIO_AF(GPIOE_PIN6, 0U) | PIN_AFIO_AF(GPIOE_PIN7, 0U))
-#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | PIN_AFIO_AF(GPIOE_PIN9, 0U) | PIN_AFIO_AF(GPIOE_PIN10, 0U) | PIN_AFIO_AF(GPIOE_PIN11, 0U) | PIN_AFIO_AF(GPIOE_PIN12, 0U) | PIN_AFIO_AF(GPIOE_PIN13, 0U) | PIN_AFIO_AF(GPIOE_PIN14, 0U) | PIN_AFIO_AF(GPIOE_PIN15, 0U))
-
-/*
- * GPIOF setup:
- *
- * PF0 - OSC_IN (input floating).
- * PF1 - OSC_OUT (input floating).
- * PF2 - PIN2 (input pullup).
- * PF3 - PIN3 (input pullup).
- * PF4 - PIN4 (input pullup).
- * PF5 - PIN5 (input pullup).
- * PF6 - PIN6 (input pullup).
- * PF7 - PIN7 (input pullup).
- * PF8 - PIN8 (input pullup).
- * PF9 - PIN9 (input pullup).
- * PF10 - PIN10 (input pullup).
- * PF11 - PIN11 (input pullup).
- * PF12 - PIN12 (input pullup).
- * PF13 - PIN13 (input pullup).
- * PF14 - PIN14 (input pullup).
- * PF15 - PIN15 (input pullup).
- */
-#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_OSC_IN) | PIN_MODE_INPUT(GPIOF_OSC_OUT) | PIN_MODE_INPUT(GPIOF_PIN2) | PIN_MODE_INPUT(GPIOF_PIN3) | PIN_MODE_INPUT(GPIOF_PIN4) | PIN_MODE_INPUT(GPIOF_PIN5) | PIN_MODE_INPUT(GPIOF_PIN6) | PIN_MODE_INPUT(GPIOF_PIN7) | PIN_MODE_INPUT(GPIOF_PIN8) | PIN_MODE_INPUT(GPIOF_PIN9) | PIN_MODE_INPUT(GPIOF_PIN10) | PIN_MODE_INPUT(GPIOF_PIN11) | PIN_MODE_INPUT(GPIOF_PIN12) | PIN_MODE_INPUT(GPIOF_PIN13) | PIN_MODE_INPUT(GPIOF_PIN14) | PIN_MODE_INPUT(GPIOF_PIN15))
-#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) | PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) | PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
-#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOF_OSC_IN) | PIN_OSPEED_VERYLOW(GPIOF_OSC_OUT) | PIN_OSPEED_VERYLOW(GPIOF_PIN2) | PIN_OSPEED_VERYLOW(GPIOF_PIN3) | PIN_OSPEED_VERYLOW(GPIOF_PIN4) | PIN_OSPEED_VERYLOW(GPIOF_PIN5) | PIN_OSPEED_VERYLOW(GPIOF_PIN6) | PIN_OSPEED_VERYLOW(GPIOF_PIN7) | PIN_OSPEED_VERYLOW(GPIOF_PIN8) | PIN_OSPEED_VERYLOW(GPIOF_PIN9) | PIN_OSPEED_VERYLOW(GPIOF_PIN10) | PIN_OSPEED_VERYLOW(GPIOF_PIN11) | PIN_OSPEED_VERYLOW(GPIOF_PIN12) | PIN_OSPEED_VERYLOW(GPIOF_PIN13) | PIN_OSPEED_VERYLOW(GPIOF_PIN14) | PIN_OSPEED_VERYLOW(GPIOF_PIN15))
-#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) | PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) | PIN_PUPDR_PULLUP(GPIOF_PIN2) | PIN_PUPDR_PULLUP(GPIOF_PIN3) | PIN_PUPDR_PULLUP(GPIOF_PIN4) | PIN_PUPDR_PULLUP(GPIOF_PIN5) | PIN_PUPDR_PULLUP(GPIOF_PIN6) | PIN_PUPDR_PULLUP(GPIOF_PIN7) | PIN_PUPDR_PULLUP(GPIOF_PIN8) | PIN_PUPDR_PULLUP(GPIOF_PIN9) | PIN_PUPDR_PULLUP(GPIOF_PIN10) | PIN_PUPDR_PULLUP(GPIOF_PIN11) | PIN_PUPDR_PULLUP(GPIOF_PIN12) | PIN_PUPDR_PULLUP(GPIOF_PIN13) | PIN_PUPDR_PULLUP(GPIOF_PIN14) | PIN_PUPDR_PULLUP(GPIOF_PIN15))
-#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_OSC_IN) | PIN_ODR_HIGH(GPIOF_OSC_OUT) | PIN_ODR_HIGH(GPIOF_PIN2) | PIN_ODR_HIGH(GPIOF_PIN3) | PIN_ODR_HIGH(GPIOF_PIN4) | PIN_ODR_HIGH(GPIOF_PIN5) | PIN_ODR_HIGH(GPIOF_PIN6) | PIN_ODR_HIGH(GPIOF_PIN7) | PIN_ODR_HIGH(GPIOF_PIN8) | PIN_ODR_HIGH(GPIOF_PIN9) | PIN_ODR_HIGH(GPIOF_PIN10) | PIN_ODR_HIGH(GPIOF_PIN11) | PIN_ODR_HIGH(GPIOF_PIN12) | PIN_ODR_HIGH(GPIOF_PIN13) | PIN_ODR_HIGH(GPIOF_PIN14) | PIN_ODR_HIGH(GPIOF_PIN15))
-#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_OSC_IN, 0U) | PIN_AFIO_AF(GPIOF_OSC_OUT, 0U) | PIN_AFIO_AF(GPIOF_PIN2, 0U) | PIN_AFIO_AF(GPIOF_PIN3, 0U) | PIN_AFIO_AF(GPIOF_PIN4, 0U) | PIN_AFIO_AF(GPIOF_PIN5, 0U) | PIN_AFIO_AF(GPIOF_PIN6, 0U) | PIN_AFIO_AF(GPIOF_PIN7, 0U))
-#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | PIN_AFIO_AF(GPIOF_PIN9, 0U) | PIN_AFIO_AF(GPIOF_PIN10, 0U) | PIN_AFIO_AF(GPIOF_PIN11, 0U) | PIN_AFIO_AF(GPIOF_PIN12, 0U) | PIN_AFIO_AF(GPIOF_PIN13, 0U) | PIN_AFIO_AF(GPIOF_PIN14, 0U) | PIN_AFIO_AF(GPIOF_PIN15, 0U))
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#if !defined(_FROM_ASM_)
-# ifdef __cplusplus
-extern "C" {
-# endif
-void boardInit(void);
-# ifdef __cplusplus
-}
-# endif
-#endif /* _FROM_ASM_ */
-
-#endif /* BOARD_H */
diff --git a/platforms/chibios/GENERIC_STM32_F072XB/board/board.mk b/platforms/chibios/GENERIC_STM32_F072XB/board/board.mk
index 842e335905..3f0e6c46e8 100644
--- a/platforms/chibios/GENERIC_STM32_F072XB/board/board.mk
+++ b/platforms/chibios/GENERIC_STM32_F072XB/board/board.mk
@@ -1,8 +1,8 @@
# List of all the board related files.
-BOARDSRC = $(BOARD_PATH)/board/board.c
+BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F072RB/board.c
# Required include directories
-BOARDINC = $(BOARD_PATH)/board
+BOARDINC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F072RB
# Shared variables
ALLCSRC += $(BOARDSRC)
diff --git a/platforms/chibios/GENERIC_STM32_F072XB/configs/board.h b/platforms/chibios/GENERIC_STM32_F072XB/configs/board.h
new file mode 100644
index 0000000000..30af6b0c86
--- /dev/null
+++ b/platforms/chibios/GENERIC_STM32_F072XB/configs/board.h
@@ -0,0 +1,20 @@
+/* Copyright 2020 Nick Brassel (tzarc)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+#pragma once
+
+#include_next "board.h"
+
+#undef STM32_HSE_BYPASS
diff --git a/platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h b/platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h
new file mode 100644
index 0000000000..688350e9ce
--- /dev/null
+++ b/platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h
@@ -0,0 +1,177 @@
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+/*
+ * STM32F0xx drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the whole
+ * driver is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 3...0 Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3 Lowest...Highest.
+ */
+
+#define STM32F0xx_MCUCONF
+// #define STM32F070xB
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_NO_INIT FALSE
+#define STM32_PVD_ENABLE FALSE
+#define STM32_PLS STM32_PLS_LEV0
+#define STM32_HSI_ENABLED TRUE
+#define STM32_HSI14_ENABLED TRUE
+#define STM32_HSI48_ENABLED FALSE
+#define STM32_LSI_ENABLED TRUE
+#define STM32_HSE_ENABLED FALSE
+#define STM32_LSE_ENABLED FALSE
+#define STM32_SW STM32_SW_PLL
+#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2
+#define STM32_PREDIV_VALUE 1
+#define STM32_PLLMUL_VALUE 12
+#define STM32_HPRE STM32_HPRE_DIV1
+#define STM32_PPRE STM32_PPRE_DIV1
+#define STM32_ADCSW STM32_ADCSW_HSI14
+#define STM32_ADCPRE STM32_ADCPRE_DIV4
+#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
+#define STM32_ADCPRE STM32_ADCPRE_DIV4
+#define STM32_ADCSW STM32_ADCSW_HSI14
+#define STM32_USBSW STM32_USBSW_HSI48
+#define STM32_CECSW STM32_CECSW_HSI
+#define STM32_I2C1SW STM32_I2C1SW_HSI
+#define STM32_USART1SW STM32_USART1SW_PCLK
+#define STM32_RTCSEL STM32_RTCSEL_LSI
+
+/*
+ * IRQ system settings.
+ */
+#define STM32_IRQ_EXTI0_1_IRQ_PRIORITY 3
+#define STM32_IRQ_EXTI2_3_IRQ_PRIORITY 3
+#define STM32_IRQ_EXTI4_15_IRQ_PRIORITY 3
+#define STM32_IRQ_EXTI16_IRQ_PRIORITY 3
+#define STM32_IRQ_EXTI17_20_IRQ_PRIORITY 3
+#define STM32_IRQ_EXTI21_22_IRQ_PRIORITY 3
+
+/*
+ * ADC driver system settings.
+ */
+#define STM32_ADC_USE_ADC1 FALSE
+#define STM32_ADC_ADC1_DMA_PRIORITY 2
+#define STM32_ADC_IRQ_PRIORITY 2
+#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2
+
+/*
+ * GPT driver system settings.
+ */
+#define STM32_GPT_USE_TIM1 FALSE
+#define STM32_GPT_USE_TIM2 FALSE
+#define STM32_GPT_USE_TIM3 FALSE
+#define STM32_GPT_USE_TIM14 FALSE
+#define STM32_GPT_TIM1_IRQ_PRIORITY 2
+#define STM32_GPT_TIM2_IRQ_PRIORITY 2
+#define STM32_GPT_TIM3_IRQ_PRIORITY 2
+#define STM32_GPT_TIM14_IRQ_PRIORITY 2
+
+/*
+ * I2C driver system settings.
+ */
+#define STM32_I2C_USE_I2C1 FALSE
+#define STM32_I2C_USE_I2C2 FALSE
+#define STM32_I2C_BUSY_TIMEOUT 50
+#define STM32_I2C_I2C1_IRQ_PRIORITY 3
+#define STM32_I2C_I2C2_IRQ_PRIORITY 3
+#define STM32_I2C_USE_DMA TRUE
+#define STM32_I2C_I2C1_DMA_PRIORITY 1
+#define STM32_I2C_I2C2_DMA_PRIORITY 1
+#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
+#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
+#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
+
+/*
+ * ICU driver system settings.
+ */
+#define STM32_ICU_USE_TIM1 FALSE
+#define STM32_ICU_USE_TIM2 FALSE
+#define STM32_ICU_USE_TIM3 FALSE
+#define STM32_ICU_TIM1_IRQ_PRIORITY 3
+#define STM32_ICU_TIM2_IRQ_PRIORITY 3
+#define STM32_ICU_TIM3_IRQ_PRIORITY 3
+
+/*
+ * PWM driver system settings.
+ */
+#define STM32_PWM_USE_ADVANCED FALSE
+#define STM32_PWM_USE_TIM1 FALSE
+#define STM32_PWM_USE_TIM2 FALSE
+#define STM32_PWM_USE_TIM3 TRUE
+#define STM32_PWM_TIM1_IRQ_PRIORITY 3
+#define STM32_PWM_TIM2_IRQ_PRIORITY 3
+#define STM32_PWM_TIM3_IRQ_PRIORITY 3
+
+/*
+ * SERIAL driver system settings.
+ */
+#define STM32_SERIAL_USE_USART1 FALSE
+#define STM32_SERIAL_USE_USART2 FALSE
+#define STM32_SERIAL_USART1_PRIORITY 3
+#define STM32_SERIAL_USART2_PRIORITY 3
+
+/*
+ * SPI driver system settings.
+ */
+#define STM32_SPI_USE_SPI1 FALSE
+#define STM32_SPI_USE_SPI2 TRUE
+#define STM32_SPI_SPI1_DMA_PRIORITY 1
+#define STM32_SPI_SPI2_DMA_PRIORITY 1
+#define STM32_SPI_SPI1_IRQ_PRIORITY 2
+#define STM32_SPI_SPI2_IRQ_PRIORITY 2
+#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
+#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
+#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
+
+/*
+ * ST driver system settings.
+ */
+#define STM32_ST_IRQ_PRIORITY 2
+#define STM32_ST_USE_TIMER 2
+
+/*
+ * UART driver system settings.
+ */
+#define STM32_UART_USE_USART1 FALSE
+#define STM32_UART_USE_USART2 FALSE
+#define STM32_UART_USART1_IRQ_PRIORITY 3
+#define STM32_UART_USART2_IRQ_PRIORITY 3
+#define STM32_UART_USART1_DMA_PRIORITY 0
+#define STM32_UART_USART2_DMA_PRIORITY 0
+#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
+
+/*
+ * USB driver system settings.
+ */
+#define STM32_USB_USE_USB1 TRUE
+#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
+#define STM32_USB_USB1_LP_IRQ_PRIORITY 3
+
+#endif /* _MCUCONF_H_ */
diff --git a/platforms/chibios/GENERIC_STM32_F303XC/configs/config.h b/platforms/chibios/GENERIC_STM32_F303XC/configs/config.h
index 48a7a90093..a73f0c0b47 100644
--- a/platforms/chibios/GENERIC_STM32_F303XC/configs/config.h
+++ b/platforms/chibios/GENERIC_STM32_F303XC/configs/config.h
@@ -15,4 +15,6 @@
*/
#pragma once
-#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
+# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+#endif
diff --git a/platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h b/platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h
new file mode 100644
index 0000000000..9945e7408d
--- /dev/null
+++ b/platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h
@@ -0,0 +1,209 @@
+/*
+ ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+#define STM32F103_MCUCONF
+
+/*
+ * STM32F103 drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the whole
+ * driver is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 15...0 Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3 Lowest...Highest.
+ */
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_NO_INIT FALSE
+#define STM32_HSI_ENABLED TRUE
+#define STM32_LSI_ENABLED FALSE
+#define STM32_HSE_ENABLED TRUE
+#define STM32_LSE_ENABLED FALSE
+#define STM32_SW STM32_SW_PLL
+#define STM32_PLLSRC STM32_PLLSRC_HSE
+#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1
+#define STM32_PLLMUL_VALUE 9
+#define STM32_HPRE STM32_HPRE_DIV1
+#define STM32_PPRE1 STM32_PPRE1_DIV2
+#define STM32_PPRE2 STM32_PPRE2_DIV2
+#define STM32_ADCPRE STM32_ADCPRE_DIV4
+#define STM32_USB_CLOCK_REQUIRED TRUE
+#define STM32_USBPRE STM32_USBPRE_DIV1P5
+#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
+#define STM32_RTCSEL STM32_RTCSEL_HSEDIV
+#define STM32_PVD_ENABLE FALSE
+#define STM32_PLS STM32_PLS_LEV0
+
+/*
+ * ADC driver system settings.
+ */
+#define STM32_ADC_USE_ADC1 FALSE
+#define STM32_ADC_ADC1_DMA_PRIORITY 2
+#define STM32_ADC_ADC1_IRQ_PRIORITY 6
+
+/*
+ * CAN driver system settings.
+ */
+#define STM32_CAN_USE_CAN1 FALSE
+#define STM32_CAN_CAN1_IRQ_PRIORITY 11
+
+/*
+ * EXT driver system settings.
+ */
+#define STM32_EXT_EXTI0_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI1_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI2_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI3_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI4_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI16_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI17_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI18_IRQ_PRIORITY 6
+#define STM32_EXT_EXTI19_IRQ_PRIORITY 6
+
+/*
+ * GPT driver system settings.
+ */
+#define STM32_GPT_USE_TIM1 FALSE
+#define STM32_GPT_USE_TIM2 FALSE
+#define STM32_GPT_USE_TIM3 FALSE
+#define STM32_GPT_USE_TIM4 FALSE
+#define STM32_GPT_USE_TIM5 FALSE
+#define STM32_GPT_USE_TIM8 FALSE
+#define STM32_GPT_TIM1_IRQ_PRIORITY 7
+#define STM32_GPT_TIM2_IRQ_PRIORITY 7
+#define STM32_GPT_TIM3_IRQ_PRIORITY 7
+#define STM32_GPT_TIM4_IRQ_PRIORITY 7
+#define STM32_GPT_TIM5_IRQ_PRIORITY 7
+#define STM32_GPT_TIM8_IRQ_PRIORITY 7
+
+/*
+ * I2C driver system settings.
+ */
+#define STM32_I2C_USE_I2C1 FALSE
+#define STM32_I2C_USE_I2C2 FALSE
+#define STM32_I2C_BUSY_TIMEOUT 50
+#define STM32_I2C_I2C1_IRQ_PRIORITY 5
+#define STM32_I2C_I2C2_IRQ_PRIORITY 5
+#define STM32_I2C_I2C1_DMA_PRIORITY 3
+#define STM32_I2C_I2C2_DMA_PRIORITY 3
+#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
+
+/*
+ * ICU driver system settings.
+ */
+#define STM32_ICU_USE_TIM1 FALSE
+#define STM32_ICU_USE_TIM2 FALSE
+#define STM32_ICU_USE_TIM3 FALSE
+#define STM32_ICU_USE_TIM4 FALSE
+#define STM32_ICU_USE_TIM5 FALSE
+#define STM32_ICU_USE_TIM8 FALSE
+#define STM32_ICU_TIM1_IRQ_PRIORITY 7
+#define STM32_ICU_TIM2_IRQ_PRIORITY 7
+#define STM32_ICU_TIM3_IRQ_PRIORITY 7
+#define STM32_ICU_TIM4_IRQ_PRIORITY 7
+#define STM32_ICU_TIM5_IRQ_PRIORITY 7
+#define STM32_ICU_TIM8_IRQ_PRIORITY 7
+
+/*
+ * PWM driver system settings.
+ */
+#define STM32_PWM_USE_ADVANCED FALSE
+#define STM32_PWM_USE_TIM1 FALSE
+#define STM32_PWM_USE_TIM2 FALSE
+#define STM32_PWM_USE_TIM3 FALSE
+#define STM32_PWM_USE_TIM4 FALSE
+#define STM32_PWM_USE_TIM5 FALSE
+#define STM32_PWM_USE_TIM8 FALSE
+#define STM32_PWM_TIM1_IRQ_PRIORITY 7
+#define STM32_PWM_TIM2_IRQ_PRIORITY 7
+#define STM32_PWM_TIM3_IRQ_PRIORITY 7
+#define STM32_PWM_TIM4_IRQ_PRIORITY 7
+#define STM32_PWM_TIM5_IRQ_PRIORITY 7
+#define STM32_PWM_TIM8_IRQ_PRIORITY 7
+
+/*
+ * RTC driver system settings.
+ */
+#define STM32_RTC_IRQ_PRIORITY 15
+
+/*
+ * SERIAL driver system settings.
+ */
+#define STM32_SERIAL_USE_USART1 FALSE
+#define STM32_SERIAL_USE_USART2 FALSE
+#define STM32_SERIAL_USE_USART3 FALSE
+#define STM32_SERIAL_USE_UART4 FALSE
+#define STM32_SERIAL_USE_UART5 FALSE
+#define STM32_SERIAL_USART1_PRIORITY 12
+#define STM32_SERIAL_USART2_PRIORITY 12
+#define STM32_SERIAL_USART3_PRIORITY 12
+#define STM32_SERIAL_UART4_PRIORITY 12
+#define STM32_SERIAL_UART5_PRIORITY 12
+
+/*
+ * SPI driver system settings.
+ */
+#define STM32_SPI_USE_SPI1 FALSE
+#define STM32_SPI_USE_SPI2 TRUE
+#define STM32_SPI_USE_SPI3 FALSE
+#define STM32_SPI_SPI1_DMA_PRIORITY 1
+#define STM32_SPI_SPI2_DMA_PRIORITY 1
+#define STM32_SPI_SPI3_DMA_PRIORITY 1
+#define STM32_SPI_SPI1_IRQ_PRIORITY 10
+#define STM32_SPI_SPI2_IRQ_PRIORITY 10
+#define STM32_SPI_SPI3_IRQ_PRIORITY 10
+#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
+
+/*
+ * ST driver system settings.
+ */
+#define STM32_ST_IRQ_PRIORITY 8
+#define STM32_ST_USE_TIMER 2
+
+/*
+ * UART driver system settings.
+ */
+#define STM32_UART_USE_USART1 FALSE
+#define STM32_UART_USE_USART2 FALSE
+#define STM32_UART_USE_USART3 FALSE
+#define STM32_UART_USART1_IRQ_PRIORITY 12
+#define STM32_UART_USART2_IRQ_PRIORITY 12
+#define STM32_UART_USART3_IRQ_PRIORITY 12
+#define STM32_UART_USART1_DMA_PRIORITY 0
+#define STM32_UART_USART2_DMA_PRIORITY 0
+#define STM32_UART_USART3_DMA_PRIORITY 0
+#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
+
+/*
+ * USB driver system settings.
+ */
+#define STM32_USB_USE_USB1 TRUE
+#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
+#define STM32_USB_USB1_HP_IRQ_PRIORITY 13
+#define STM32_USB_USB1_LP_IRQ_PRIORITY 14
+
+#endif /* _MCUCONF_H_ */
diff --git a/platforms/chibios/GENERIC_STM32_F303XC/configs/chconf.h b/platforms/chibios/common/configs/chconf.h
index aac3303705..aac3303705 100644
--- a/platforms/chibios/GENERIC_STM32_F303XC/configs/chconf.h
+++ b/platforms/chibios/common/configs/chconf.h
diff --git a/platforms/chibios/GENERIC_STM32_F303XC/configs/halconf.h b/platforms/chibios/common/configs/halconf.h
index 6b48e289f9..6b48e289f9 100644
--- a/platforms/chibios/GENERIC_STM32_F303XC/configs/halconf.h
+++ b/platforms/chibios/common/configs/halconf.h
diff --git a/platforms/chibios/ld/MKL26Z64.ld b/platforms/chibios/common/ld/MKL26Z64.ld
index c4ca8b874c..c4ca8b874c 100644
--- a/platforms/chibios/ld/MKL26Z64.ld
+++ b/platforms/chibios/common/ld/MKL26Z64.ld
diff --git a/platforms/chibios/ld/STM32F103x8_stm32duino_bootloader.ld b/platforms/chibios/common/ld/STM32F103x8_stm32duino_bootloader.ld
index bb852422a3..bb852422a3 100644
--- a/platforms/chibios/ld/STM32F103x8_stm32duino_bootloader.ld
+++ b/platforms/chibios/common/ld/STM32F103x8_stm32duino_bootloader.ld
diff --git a/quantum/backlight/backlight_avr.c b/quantum/backlight/backlight_avr.c
index b3e882ffe1..4d66da80ba 100644
--- a/quantum/backlight/backlight_avr.c
+++ b/quantum/backlight/backlight_avr.c
@@ -3,6 +3,11 @@
#include "backlight_driver_common.h"
#include "debug.h"
+// Maximum duty cycle limit
+#ifndef BACKLIGHT_LIMIT_VAL
+# define BACKLIGHT_LIMIT_VAL 255
+#endif
+
// This logic is a bit complex, we support 3 setups:
//
// 1. Hardware PWM when backlight is wired to a PWM pin.
@@ -240,6 +245,9 @@ static uint16_t cie_lightness(uint16_t v) {
}
}
+// rescale the supplied backlight value to be in terms of the value limit
+static uint32_t rescale_limit_val(uint32_t val) { return (val * (BACKLIGHT_LIMIT_VAL + 1)) / 256; }
+
// range for val is [0..TIMER_TOP]. PWM pin is high while the timer count is below val.
static inline void set_pwm(uint16_t val) { OCRxx = val; }
@@ -269,7 +277,7 @@ void backlight_set(uint8_t level) {
#endif
}
// Set the brightness
- set_pwm(cie_lightness(TIMER_TOP * (uint32_t)level / BACKLIGHT_LEVELS));
+ set_pwm(cie_lightness(rescale_limit_val(TIMER_TOP * (uint32_t)level / BACKLIGHT_LEVELS)));
}
void backlight_task(void) {}
@@ -375,7 +383,7 @@ ISR(TIMERx_OVF_vect)
breathing_interrupt_disable();
}
- set_pwm(cie_lightness(scale_backlight((uint16_t)pgm_read_byte(&breathing_table[index]) * 0x0101U)));
+ set_pwm(cie_lightness(rescale_limit_val(scale_backlight((uint16_t)pgm_read_byte(&breathing_table[index]) * 0x0101U))));
}
#endif // BACKLIGHT_BREATHING
diff --git a/quantum/backlight/backlight_chibios.c b/quantum/backlight/backlight_chibios.c
index 0fe812bf27..4d5a69e14e 100644
--- a/quantum/backlight/backlight_chibios.c
+++ b/quantum/backlight/backlight_chibios.c
@@ -3,6 +3,11 @@
#include <hal.h>
#include "debug.h"
+// Maximum duty cycle limit
+#ifndef BACKLIGHT_LIMIT_VAL
+# define BACKLIGHT_LIMIT_VAL 255
+#endif
+
// GPIOV2 && GPIOV3
#ifndef BACKLIGHT_PAL_MODE
# define BACKLIGHT_PAL_MODE 2
@@ -58,6 +63,11 @@ static uint16_t cie_lightness(uint16_t v) {
}
}
+static uint32_t rescale_limit_val(uint32_t val) {
+ // rescale the supplied backlight value to be in terms of the value limit
+ return (val * (BACKLIGHT_LIMIT_VAL + 1)) / 256;
+}
+
void backlight_init_ports(void) {
#ifdef USE_GPIOV1
palSetPadMode(PAL_PORT(BACKLIGHT_PIN), PAL_PAD(BACKLIGHT_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
@@ -85,7 +95,7 @@ void backlight_set(uint8_t level) {
pwmDisableChannel(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1);
} else {
// Turn backlight on
- uint32_t duty = (uint32_t)(cie_lightness(0xFFFF * (uint32_t)level / BACKLIGHT_LEVELS));
+ uint32_t duty = (uint32_t)(cie_lightness(rescale_limit_val(0xFFFF * (uint32_t)level / BACKLIGHT_LEVELS)));
pwmEnableChannel(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&BACKLIGHT_PWM_DRIVER, 0xFFFF, duty));
}
}
@@ -129,7 +139,7 @@ void breathing_callback(PWMDriver *pwmp) {
static uint16_t breathing_counter = 0;
breathing_counter = (breathing_counter + 1) % (breathing_period * 256);
uint8_t index = breathing_counter / interval % BREATHING_STEPS;
- uint32_t duty = cie_lightness(scale_backlight(breathing_table[index] * 256));
+ uint32_t duty = cie_lightness(rescale_limit_val(scale_backlight(breathing_table[index] * 256)));
chSysLockFromISR();
pwmEnableChannelI(pwmp, BACKLIGHT_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&BACKLIGHT_PWM_DRIVER, 0xFFFF, duty));
diff --git a/quantum/config_common.h b/quantum/config_common.h
index c1e6698e50..2d9c70b08d 100644
--- a/quantum/config_common.h
+++ b/quantum/config_common.h
@@ -39,7 +39,7 @@
# define PIND_ADDRESS 0x9
# define PINE_ADDRESS 0xC
# define PINF_ADDRESS 0xF
-# elif defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__)
+# elif defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)
# define ADDRESS_BASE 0x00
# define PINB_ADDRESS 0x3
# define PINC_ADDRESS 0x6
@@ -58,11 +58,6 @@
# define PINC_ADDRESS 0x3
# define PINB_ADDRESS 0x6
# define PINA_ADDRESS 0x9
-# elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)
-# define ADDRESS_BASE 0x00
-# define PINB_ADDRESS 0x3
-# define PINC_ADDRESS 0x6
-# define PIND_ADDRESS 0x9
# elif defined(__AVR_ATtiny85__)
# define ADDRESS_BASE 0x10
# define PINB_ADDRESS 0x6
@@ -284,6 +279,91 @@
# define F13 PAL_LINE(GPIOF, 13)
# define F14 PAL_LINE(GPIOF, 14)
# define F15 PAL_LINE(GPIOF, 15)
+# define G0 PAL_LINE(GPIOG, 0)
+# define G1 PAL_LINE(GPIOG, 1)
+# define G2 PAL_LINE(GPIOG, 2)
+# define G3 PAL_LINE(GPIOG, 3)
+# define G4 PAL_LINE(GPIOG, 4)
+# define G5 PAL_LINE(GPIOG, 5)
+# define G6 PAL_LINE(GPIOG, 6)
+# define G7 PAL_LINE(GPIOG, 7)
+# define G8 PAL_LINE(GPIOG, 8)
+# define G9 PAL_LINE(GPIOG, 9)
+# define G10 PAL_LINE(GPIOG, 10)
+# define G11 PAL_LINE(GPIOG, 11)
+# define G12 PAL_LINE(GPIOG, 12)
+# define G13 PAL_LINE(GPIOG, 13)
+# define G14 PAL_LINE(GPIOG, 14)
+# define G15 PAL_LINE(GPIOG, 15)
+# define H0 PAL_LINE(GPIOH, 0)
+# define H1 PAL_LINE(GPIOH, 1)
+# define H2 PAL_LINE(GPIOH, 2)
+# define H3 PAL_LINE(GPIOH, 3)
+# define H4 PAL_LINE(GPIOH, 4)
+# define H5 PAL_LINE(GPIOH, 5)
+# define H6 PAL_LINE(GPIOH, 6)
+# define H7 PAL_LINE(GPIOH, 7)
+# define H8 PAL_LINE(GPIOH, 8)
+# define H9 PAL_LINE(GPIOH, 9)
+# define H10 PAL_LINE(GPIOH, 10)
+# define H11 PAL_LINE(GPIOH, 11)
+# define H12 PAL_LINE(GPIOH, 12)
+# define H13 PAL_LINE(GPIOH, 13)
+# define H14 PAL_LINE(GPIOH, 14)
+# define H15 PAL_LINE(GPIOH, 15)
+# define I0 PAL_LINE(GPIOI, 0)
+# define I1 PAL_LINE(GPIOI, 1)
+# define I2 PAL_LINE(GPIOI, 2)
+# define I3 PAL_LINE(GPIOI, 3)
+# define I4 PAL_LINE(GPIOI, 4)
+# define I5 PAL_LINE(GPIOI, 5)
+# define I6 PAL_LINE(GPIOI, 6)
+# define I7 PAL_LINE(GPIOI, 7)
+# define I8 PAL_LINE(GPIOI, 8)
+# define I9 PAL_LINE(GPIOI, 9)
+# define I10 PAL_LINE(GPIOI, 10)
+# define I11 PAL_LINE(GPIOI, 11)
+# define I12 PAL_LINE(GPIOI, 12)
+# define I13 PAL_LINE(GPIOI, 13)
+# define I14 PAL_LINE(GPIOI, 14)
+# define I15 PAL_LINE(GPIOI, 15)
+# define J0 PAL_LINE(GPIOJ, 0)
+# define J1 PAL_LINE(GPIOJ, 1)
+# define J2 PAL_LINE(GPIOJ, 2)
+# define J3 PAL_LINE(GPIOJ, 3)
+# define J4 PAL_LINE(GPIOJ, 4)
+# define J5 PAL_LINE(GPIOJ, 5)
+# define J6 PAL_LINE(GPIOJ, 6)
+# define J7 PAL_LINE(GPIOJ, 7)
+# define J8 PAL_LINE(GPIOJ, 8)
+# define J9 PAL_LINE(GPIOJ, 9)
+# define J10 PAL_LINE(GPIOJ, 10)
+# define J11 PAL_LINE(GPIOJ, 11)
+# define J12 PAL_LINE(GPIOJ, 12)
+# define J13 PAL_LINE(GPIOJ, 13)
+# define J14 PAL_LINE(GPIOJ, 14)
+# define J15 PAL_LINE(GPIOJ, 15)
+// Keyboards can `#define KEYBOARD_REQUIRES_GPIOK` if they need to access GPIO-K pins. These conflict with a whole
+// bunch of layout definitions, so it's intentionally left out unless absolutely required -- in that case, the
+// keyboard designer should use a different symbol when defining their layout macros.
+# ifdef KEYBOARD_REQUIRES_GPIOK
+# define K0 PAL_LINE(GPIOK, 0)
+# define K1 PAL_LINE(GPIOK, 1)
+# define K2 PAL_LINE(GPIOK, 2)
+# define K3 PAL_LINE(GPIOK, 3)
+# define K4 PAL_LINE(GPIOK, 4)
+# define K5 PAL_LINE(GPIOK, 5)
+# define K6 PAL_LINE(GPIOK, 6)
+# define K7 PAL_LINE(GPIOK, 7)
+# define K8 PAL_LINE(GPIOK, 8)
+# define K9 PAL_LINE(GPIOK, 9)
+# define K10 PAL_LINE(GPIOK, 10)
+# define K11 PAL_LINE(GPIOK, 11)
+# define K12 PAL_LINE(GPIOK, 12)
+# define K13 PAL_LINE(GPIOK, 13)
+# define K14 PAL_LINE(GPIOK, 14)
+# define K15 PAL_LINE(GPIOK, 15)
+# endif
# endif
#endif
diff --git a/quantum/encoder.c b/quantum/encoder.c
index 81ec1bb376..7ca31afedc 100644
--- a/quantum/encoder.c
+++ b/quantum/encoder.c
@@ -23,7 +23,7 @@
// for memcpy
#include <string.h>
-#ifndef ENCODER_RESOLUTION
+#if !defined(ENCODER_RESOLUTIONS) && !defined(ENCODER_RESOLUTION)
# define ENCODER_RESOLUTION 4
#endif
@@ -34,6 +34,9 @@
#define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a) / sizeof(pin_t))
static pin_t encoders_pad_a[] = ENCODERS_PAD_A;
static pin_t encoders_pad_b[] = ENCODERS_PAD_B;
+#ifdef ENCODER_RESOLUTIONS
+static uint8_t encoder_resolutions[] = ENCODER_RESOLUTIONS;
+#endif
#ifndef ENCODER_DIRECTION_FLIP
# define ENCODER_CLOCKWISE true
@@ -65,9 +68,15 @@ void encoder_init(void) {
if (!isLeftHand) {
const pin_t encoders_pad_a_right[] = ENCODERS_PAD_A_RIGHT;
const pin_t encoders_pad_b_right[] = ENCODERS_PAD_B_RIGHT;
+# if defined(ENCODER_RESOLUTIONS_RIGHT)
+ const uint8_t encoder_resolutions_right[] = ENCODER_RESOLUTIONS_RIGHT;
+# endif
for (uint8_t i = 0; i < NUMBER_OF_ENCODERS; i++) {
encoders_pad_a[i] = encoders_pad_a_right[i];
encoders_pad_b[i] = encoders_pad_b_right[i];
+# if defined(ENCODER_RESOLUTIONS_RIGHT)
+ encoder_resolutions[i] = encoder_resolutions_right[i];
+# endif
}
}
#endif
@@ -87,19 +96,26 @@ void encoder_init(void) {
static void encoder_update(int8_t index, uint8_t state) {
uint8_t i = index;
+
+#ifdef ENCODER_RESOLUTIONS
+ int8_t resolution = encoder_resolutions[i];
+#else
+ int8_t resolution = ENCODER_RESOLUTION;
+#endif
+
#ifdef SPLIT_KEYBOARD
index += thisHand;
#endif
encoder_pulses[i] += encoder_LUT[state & 0xF];
- if (encoder_pulses[i] >= ENCODER_RESOLUTION) {
+ if (encoder_pulses[i] >= resolution) {
encoder_value[index]++;
encoder_update_kb(index, ENCODER_COUNTER_CLOCKWISE);
}
- if (encoder_pulses[i] <= -ENCODER_RESOLUTION) { // direction is arbitrary here, but this clockwise
+ if (encoder_pulses[i] <= -resolution) { // direction is arbitrary here, but this clockwise
encoder_value[index]--;
encoder_update_kb(index, ENCODER_CLOCKWISE);
}
- encoder_pulses[i] %= ENCODER_RESOLUTION;
+ encoder_pulses[i] %= resolution;
}
void encoder_read(void) {
diff --git a/quantum/joystick.h b/quantum/joystick.h
index a95472b9fd..87dbc24aff 100644
--- a/quantum/joystick.h
+++ b/quantum/joystick.h
@@ -1,5 +1,9 @@
#pragma once
+#include "quantum.h"
+
+#include <stdint.h>
+
#ifndef JOYSTICK_BUTTON_COUNT
# define JOYSTICK_BUTTON_COUNT 8
#endif
@@ -8,9 +12,13 @@
# define JOYSTICK_AXES_COUNT 4
#endif
-#include "quantum.h"
+#ifndef JOYSTICK_AXES_RESOLUTION
+# define JOYSTICK_AXES_RESOLUTION 8
+#elif JOYSTICK_AXES_RESOLUTION < 8 || JOYSTICK_AXES_RESOLUTION > 16
+# error JOYSTICK_AXES_RESOLUTION must be between 8 and 16
+#endif
-#include <stdint.h>
+#define JOYSTICK_RESOLUTION ((1L << (JOYSTICK_AXES_RESOLUTION - 1)) - 1)
// configure on input_pin of the joystick_axes array entry to JS_VIRTUAL_AXIS
// to prevent it from being read from the ADC. This allows outputing forged axis value.
diff --git a/quantum/led_matrix.c b/quantum/led_matrix.c
index 5c24c797a9..eb523990a6 100644
--- a/quantum/led_matrix.c
+++ b/quantum/led_matrix.c
@@ -20,7 +20,7 @@
#include <stdint.h>
#include <stdbool.h>
#include "quantum.h"
-#include "ledmatrix.h"
+#include "led_matrix.h"
#include "progmem.h"
#include "config.h"
#include "eeprom.h"
diff --git a/quantum/ledmatrix.h b/quantum/led_matrix.h
index 5867ba9876..5867ba9876 100644
--- a/quantum/ledmatrix.h
+++ b/quantum/led_matrix.h
diff --git a/quantum/led_matrix_drivers.c b/quantum/led_matrix_drivers.c
index 6877bf4c6b..9decaa33c2 100644
--- a/quantum/led_matrix_drivers.c
+++ b/quantum/led_matrix_drivers.c
@@ -18,7 +18,7 @@
#include <stdint.h>
#include <stdbool.h>
#include "quantum.h"
-#include "ledmatrix.h"
+#include "led_matrix.h"
/* Each driver needs to define a struct:
*
diff --git a/quantum/matrix.c b/quantum/matrix.c
index c68c56cac2..cab0d2ddca 100644
--- a/quantum/matrix.c
+++ b/quantum/matrix.c
@@ -32,6 +32,19 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values
extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values
+static inline void setPinOutput_writeLow(pin_t pin) {
+ ATOMIC_BLOCK_FORCEON {
+ setPinOutput(pin);
+ writePinLow(pin);
+ }
+}
+
+static inline void setPinInputHigh_atomic(pin_t pin) {
+ ATOMIC_BLOCK_FORCEON {
+ setPinInputHigh(pin);
+ }
+}
+
// matrix code
#ifdef DIRECT_PINS
@@ -70,22 +83,23 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
# if (DIODE_DIRECTION == COL2ROW)
static void select_row(uint8_t row) {
- setPinOutput(row_pins[row]);
- writePinLow(row_pins[row]);
+ setPinOutput_writeLow(row_pins[row]);
}
-static void unselect_row(uint8_t row) { setPinInputHigh(row_pins[row]); }
+static void unselect_row(uint8_t row) {
+ setPinInputHigh_atomic(row_pins[row]);
+}
static void unselect_rows(void) {
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
- setPinInputHigh(row_pins[x]);
+ setPinInputHigh_atomic(row_pins[x]);
}
}
static void init_pins(void) {
unselect_rows();
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
- setPinInputHigh(col_pins[x]);
+ setPinInputHigh_atomic(col_pins[x]);
}
}
@@ -120,22 +134,23 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
# elif (DIODE_DIRECTION == ROW2COL)
static void select_col(uint8_t col) {
- setPinOutput(col_pins[col]);
- writePinLow(col_pins[col]);
+ setPinOutput_writeLow(col_pins[col]);
}
-static void unselect_col(uint8_t col) { setPinInputHigh(col_pins[col]); }
+static void unselect_col(uint8_t col) {
+ setPinInputHigh_atomic(col_pins[col]);
+}
static void unselect_cols(void) {
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
- setPinInputHigh(col_pins[x]);
+ setPinInputHigh_atomic(col_pins[x]);
}
}
static void init_pins(void) {
unselect_cols();
for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
- setPinInputHigh(row_pins[x]);
+ setPinInputHigh_atomic(row_pins[x]);
}
}
diff --git a/quantum/mcu_selection.mk b/quantum/mcu_selection.mk
index 295dfd3189..9518a6463f 100644
--- a/quantum/mcu_selection.mk
+++ b/quantum/mcu_selection.mk
@@ -318,6 +318,9 @@ ifneq (,$(filter $(MCU),atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 a
ifeq (,$(filter $(NO_INTERRUPT_CONTROL_ENDPOINT),yes))
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
endif
+ ifneq (,$(filter $(MCU),atmega16u2 atmega32u2))
+ NO_I2C = yes
+ endif
endif
ifneq (,$(filter $(MCU),atmega32a))
diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c
index b1267922ce..a2d315408b 100644
--- a/quantum/process_keycode/process_auto_shift.c
+++ b/quantum/process_keycode/process_auto_shift.c
@@ -16,48 +16,149 @@
#ifdef AUTO_SHIFT_ENABLE
+# include <stdbool.h>
# include <stdio.h>
# include "process_auto_shift.h"
-static bool autoshift_enabled = true;
static uint16_t autoshift_time = 0;
static uint16_t autoshift_timeout = AUTO_SHIFT_TIMEOUT;
static uint16_t autoshift_lastkey = KC_NO;
+static struct {
+ // Whether autoshift is enabled.
+ bool enabled : 1;
+ // Whether the last auto-shifted key was released after the timeout. This
+ // is used to replicate the last key for a tap-then-hold.
+ bool lastshifted : 1;
+ // Whether an auto-shiftable key has been pressed but not processed.
+ bool in_progress : 1;
+ // Whether the auto-shifted keypress has been registered.
+ bool holding_shift : 1;
+} autoshift_flags = {true, false, false, false};
+
+/** \brief Record the press of an autoshiftable key
+ *
+ * \return Whether the record should be further processed.
+ */
+static bool autoshift_press(uint16_t keycode, uint16_t now, keyrecord_t *record) {
+ if (!autoshift_flags.enabled) {
+ return true;
+ }
+
+# ifndef AUTO_SHIFT_MODIFIERS
+ if (get_mods() & (~MOD_BIT(KC_LSFT))) {
+ return true;
+ }
+# endif
+# ifdef AUTO_SHIFT_REPEAT
+ const uint16_t elapsed = TIMER_DIFF_16(now, autoshift_time);
+# ifndef AUTO_SHIFT_NO_AUTO_REPEAT
+ if (!autoshift_flags.lastshifted) {
+# endif
+ if (elapsed < TAPPING_TERM && keycode == autoshift_lastkey) {
+ // Allow a tap-then-hold for keyrepeat.
+ if (!autoshift_flags.lastshifted) {
+ register_code(autoshift_lastkey);
+ } else {
+ // Simulate pressing the shift key.
+ add_weak_mods(MOD_BIT(KC_LSFT));
+ register_code(autoshift_lastkey);
+ }
+ return false;
+ }
+# ifndef AUTO_SHIFT_NO_AUTO_REPEAT
+ }
+# endif
+# endif
-void autoshift_flush(void) {
- if (autoshift_lastkey != KC_NO) {
- uint16_t elapsed = timer_elapsed(autoshift_time);
+ // Record the keycode so we can simulate it later.
+ autoshift_lastkey = keycode;
+ autoshift_time = now;
+ autoshift_flags.in_progress = true;
- if (elapsed > autoshift_timeout) {
- tap_code16(LSFT(autoshift_lastkey));
+# if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING)
+ clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
+# endif
+ return false;
+}
+
+/** \brief Registers an autoshiftable key under the right conditions
+ *
+ * If the autoshift delay has elapsed, register a shift and the key.
+ *
+ * If the autoshift key is released before the delay has elapsed, register the
+ * key without a shift.
+ */
+static void autoshift_end(uint16_t keycode, uint16_t now, bool matrix_trigger) {
+ // Called on key down with KC_NO, auto-shifted key up, and timeout.
+ if (autoshift_flags.in_progress) {
+ // Process the auto-shiftable key.
+ autoshift_flags.in_progress = false;
+
+ // Time since the initial press was recorded.
+ const uint16_t elapsed = TIMER_DIFF_16(now, autoshift_time);
+ if (elapsed < autoshift_timeout) {
+ register_code(autoshift_lastkey);
+ autoshift_flags.lastshifted = false;
} else {
- tap_code(autoshift_lastkey);
+ // Simulate pressing the shift key.
+ add_weak_mods(MOD_BIT(KC_LSFT));
+ register_code(autoshift_lastkey);
+ autoshift_flags.lastshifted = true;
+# if defined(AUTO_SHIFT_REPEAT) && !defined(AUTO_SHIFT_NO_AUTO_REPEAT)
+ if (matrix_trigger) {
+ // Prevents release.
+ return;
+ }
+# endif
}
- autoshift_time = 0;
- autoshift_lastkey = KC_NO;
+# if TAP_CODE_DELAY > 0
+ wait_ms(TAP_CODE_DELAY);
+# endif
+ unregister_code(autoshift_lastkey);
+ del_weak_mods(MOD_BIT(KC_LSFT));
+ } else {
+ // Release after keyrepeat.
+ unregister_code(keycode);
+ if (keycode == autoshift_lastkey) {
+ // This will only fire when the key was the last auto-shiftable
+ // pressed. That prevents aaaaBBBB then releasing a from unshifting
+ // later Bs (if B wasn't auto-shiftable).
+ del_weak_mods(MOD_BIT(KC_LSFT));
+ }
}
+ send_keyboard_report(); // del_weak_mods doesn't send one.
+ // Roll the autoshift_time forward for detecting tap-and-hold.
+ autoshift_time = now;
}
-void autoshift_on(uint16_t keycode) {
- autoshift_time = timer_read();
- autoshift_lastkey = keycode;
+/** \brief Simulates auto-shifted key releases when timeout is hit
+ *
+ * Can be called from \c matrix_scan_user so that auto-shifted keys are sent
+ * immediately after the timeout has expired, rather than waiting for the key
+ * to be released.
+ */
+void autoshift_matrix_scan(void) {
+ if (autoshift_flags.in_progress) {
+ const uint16_t now = timer_read();
+ const uint16_t elapsed = TIMER_DIFF_16(now, autoshift_time);
+ if (elapsed >= autoshift_timeout) {
+ autoshift_end(autoshift_lastkey, now, true);
+ }
+ }
}
void autoshift_toggle(void) {
- if (autoshift_enabled) {
- autoshift_enabled = false;
- autoshift_flush();
- } else {
- autoshift_enabled = true;
- }
+ autoshift_flags.enabled = !autoshift_flags.enabled;
+ del_weak_mods(MOD_BIT(KC_LSFT));
}
-void autoshift_enable(void) { autoshift_enabled = true; }
+void autoshift_enable(void) { autoshift_flags.enabled = true; }
+
void autoshift_disable(void) {
- autoshift_enabled = false;
- autoshift_flush();
+ autoshift_flags.enabled = false;
+ del_weak_mods(MOD_BIT(KC_LSFT));
}
# ifndef AUTO_SHIFT_NO_SETUP
@@ -70,19 +171,30 @@ void autoshift_timer_report(void) {
}
# endif
-bool get_autoshift_state(void) { return autoshift_enabled; }
+bool get_autoshift_state(void) { return autoshift_flags.enabled; }
uint16_t get_autoshift_timeout(void) { return autoshift_timeout; }
void set_autoshift_timeout(uint16_t timeout) { autoshift_timeout = timeout; }
bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
+ // Note that record->event.time isn't reliable, see:
+ // https://github.com/qmk/qmk_firmware/pull/9826#issuecomment-733559550
+ const uint16_t now = timer_read();
+
if (record->event.pressed) {
+ if (autoshift_flags.in_progress) {
+ // Evaluate previous key if there is one. Doing this elsewhere is
+ // more complicated and easier to break.
+ autoshift_end(KC_NO, now, false);
+ }
+ // For pressing another key while keyrepeating shifted autoshift.
+ del_weak_mods(MOD_BIT(KC_LSFT));
+
switch (keycode) {
case KC_ASTG:
autoshift_toggle();
return true;
-
case KC_ASON:
autoshift_enable();
return true;
@@ -102,41 +214,28 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
autoshift_timer_report();
return true;
# endif
+ }
+ }
+
+ switch (keycode) {
# ifndef NO_AUTO_SHIFT_ALPHA
- case KC_A ... KC_Z:
+ case KC_A ... KC_Z:
# endif
# ifndef NO_AUTO_SHIFT_NUMERIC
- case KC_1 ... KC_0:
+ case KC_1 ... KC_0:
# endif
# ifndef NO_AUTO_SHIFT_SPECIAL
- case KC_TAB:
- case KC_MINUS ... KC_SLASH:
- case KC_NONUS_BSLASH:
-# endif
- autoshift_flush();
- if (!autoshift_enabled) return true;
-
-# ifndef AUTO_SHIFT_MODIFIERS
- if (get_mods()) {
- return true;
- }
-# endif
- autoshift_on(keycode);
-
- // We need some extra handling here for OSL edge cases
-# if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING)
- clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
+ case KC_TAB:
+ case KC_MINUS ... KC_SLASH:
+ case KC_NONUS_BSLASH:
# endif
+ if (record->event.pressed) {
+ return autoshift_press(keycode, now, record);
+ } else {
+ autoshift_end(keycode, now, false);
return false;
-
- default:
- autoshift_flush();
- return true;
- }
- } else {
- autoshift_flush();
+ }
}
-
return true;
}
diff --git a/quantum/process_keycode/process_auto_shift.h b/quantum/process_keycode/process_auto_shift.h
index e86c4658e9..5b2718f11c 100644
--- a/quantum/process_keycode/process_auto_shift.h
+++ b/quantum/process_keycode/process_auto_shift.h
@@ -30,3 +30,4 @@ void autoshift_toggle(void);
bool get_autoshift_state(void);
uint16_t get_autoshift_timeout(void);
void set_autoshift_timeout(uint16_t timeout);
+void autoshift_matrix_scan(void);
diff --git a/quantum/process_keycode/process_joystick.c b/quantum/process_keycode/process_joystick.c
index 5778a7434c..3ffaf42bf8 100644
--- a/quantum/process_keycode/process_joystick.c
+++ b/quantum/process_keycode/process_joystick.c
@@ -129,17 +129,17 @@ bool process_joystick_analogread_quantum() {
// test the converted value against the lower range
int32_t ref = joystick_axes[axis_index].mid_digit;
int32_t range = joystick_axes[axis_index].min_digit;
- int32_t ranged_val = ((axis_val - ref) * -127) / (range - ref);
+ int32_t ranged_val = ((axis_val - ref) * -JOYSTICK_RESOLUTION) / (range - ref);
if (ranged_val > 0) {
// the value is in the higher range
range = joystick_axes[axis_index].max_digit;
- ranged_val = ((axis_val - ref) * 127) / (range - ref);
+ ranged_val = ((axis_val - ref) * JOYSTICK_RESOLUTION) / (range - ref);
}
// clamp the result in the valid range
- ranged_val = ranged_val < -127 ? -127 : ranged_val;
- ranged_val = ranged_val > 127 ? 127 : ranged_val;
+ ranged_val = ranged_val < -JOYSTICK_RESOLUTION ? -JOYSTICK_RESOLUTION : ranged_val;
+ ranged_val = ranged_val > JOYSTICK_RESOLUTION ? JOYSTICK_RESOLUTION : ranged_val;
if (ranged_val != joystick_status.axes[axis_index]) {
joystick_status.axes[axis_index] = ranged_val;
diff --git a/quantum/process_keycode/process_midi.c b/quantum/process_keycode/process_midi.c
index e525770144..8e2fb955e7 100644
--- a/quantum/process_keycode/process_midi.c
+++ b/quantum/process_keycode/process_midi.c
@@ -41,12 +41,12 @@ static int8_t midi_modulation_step;
static uint16_t midi_modulation_timer;
midi_config_t midi_config;
-inline uint8_t compute_velocity(uint8_t setting) { return (setting + 1) * (128 / (MIDI_VELOCITY_MAX - MIDI_VELOCITY_MIN + 1)); }
+inline uint8_t compute_velocity(uint8_t setting) { return setting * (128 / (MIDI_VELOCITY_MAX - MIDI_VELOCITY_MIN)); }
void midi_init(void) {
midi_config.octave = MI_OCT_2 - MIDI_OCTAVE_MIN;
midi_config.transpose = 0;
- midi_config.velocity = (MIDI_VELOCITY_MAX - MIDI_VELOCITY_MIN);
+ midi_config.velocity = 127;
midi_config.channel = 0;
midi_config.modulation_interval = 8;
@@ -66,7 +66,7 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
case MIDI_TONE_MIN ... MIDI_TONE_MAX: {
uint8_t channel = midi_config.channel;
uint8_t tone = keycode - MIDI_TONE_MIN;
- uint8_t velocity = compute_velocity(midi_config.velocity);
+ uint8_t velocity = midi_config.velocity;
if (record->event.pressed) {
if (tone_status[tone] == MIDI_INVALID_NOTE) {
uint8_t note = midi_compute_note(keycode);
@@ -124,19 +124,30 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
return false;
case MIDI_VELOCITY_MIN ... MIDI_VELOCITY_MAX:
if (record->event.pressed) {
- midi_config.velocity = keycode - MIDI_VELOCITY_MIN;
+ midi_config.velocity = compute_velocity(keycode - MIDI_VELOCITY_MIN);
dprintf("midi velocity %d\n", midi_config.velocity);
}
return false;
case MI_VELD:
if (record->event.pressed && midi_config.velocity > 0) {
- midi_config.velocity--;
+ if (midi_config.velocity == 127) {
+ midi_config.velocity -= 10;
+ } else if (midi_config.velocity > 12) {
+ midi_config.velocity -= 13;
+ } else {
+ midi_config.velocity = 0;
+ }
+
dprintf("midi velocity %d\n", midi_config.velocity);
}
return false;
case MI_VELU:
- if (record->event.pressed) {
- midi_config.velocity++;
+ if (record->event.pressed && midi_config.velocity < 127) {
+ if (midi_config.velocity < 115) {
+ midi_config.velocity += 13;
+ } else {
+ midi_config.velocity = 127;
+ }
dprintf("midi velocity %d\n", midi_config.velocity);
}
return false;
diff --git a/quantum/process_keycode/process_midi.h b/quantum/process_keycode/process_midi.h
index 0007b3ed25..ef5661dd4d 100644
--- a/quantum/process_keycode/process_midi.h
+++ b/quantum/process_keycode/process_midi.h
@@ -35,7 +35,7 @@ typedef union {
struct {
uint8_t octave : 4;
int8_t transpose : 4;
- uint8_t velocity : 4;
+ uint8_t velocity : 7;
uint8_t channel : 4;
uint8_t modulation_interval : 4;
};
diff --git a/quantum/process_keycode/process_sequencer.c b/quantum/process_keycode/process_sequencer.c
new file mode 100644
index 0000000000..334b4c0092
--- /dev/null
+++ b/quantum/process_keycode/process_sequencer.c
@@ -0,0 +1,62 @@
+/* Copyright 2020 Rodolphe Belouin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "process_sequencer.h"
+
+bool process_sequencer(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch (keycode) {
+ case SQ_ON:
+ sequencer_on();
+ return false;
+ case SQ_OFF:
+ sequencer_off();
+ return false;
+ case SQ_TOG:
+ sequencer_toggle();
+ return false;
+ case SQ_TMPD:
+ sequencer_decrease_tempo();
+ return false;
+ case SQ_TMPU:
+ sequencer_increase_tempo();
+ return false;
+ case SEQUENCER_RESOLUTION_MIN ... SEQUENCER_RESOLUTION_MAX:
+ sequencer_set_resolution(keycode - SEQUENCER_RESOLUTION_MIN);
+ return false;
+ case SQ_RESD:
+ sequencer_decrease_resolution();
+ return false;
+ case SQ_RESU:
+ sequencer_increase_resolution();
+ return false;
+ case SQ_SALL:
+ sequencer_set_all_steps_on();
+ return false;
+ case SQ_SCLR:
+ sequencer_set_all_steps_off();
+ return false;
+ case SEQUENCER_STEP_MIN ... SEQUENCER_STEP_MAX:
+ sequencer_toggle_step(keycode - SEQUENCER_STEP_MIN);
+ return false;
+ case SEQUENCER_TRACK_MIN ... SEQUENCER_TRACK_MAX:
+ sequencer_toggle_single_active_track(keycode - SEQUENCER_TRACK_MIN);
+ return false;
+ }
+ }
+
+ return true;
+}
diff --git a/quantum/process_keycode/process_sequencer.h b/quantum/process_keycode/process_sequencer.h
new file mode 100644
index 0000000000..2b85f24299
--- /dev/null
+++ b/quantum/process_keycode/process_sequencer.h
@@ -0,0 +1,21 @@
+/* Copyright 2020 Rodolphe Belouin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+bool process_sequencer(uint16_t keycode, keyrecord_t *record);
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 0b2f98762d..3ac0ed8716 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -58,6 +58,10 @@ float bell_song[][2] = SONG(TERMINAL_SOUND);
# endif
#endif
+#ifdef AUTO_SHIFT_ENABLE
+# include "process_auto_shift.h"
+#endif
+
static void do_code16(uint16_t code, void (*f)(uint8_t)) {
switch (code) {
case QK_MODS ... QK_MODS_MAX:
@@ -228,6 +232,9 @@ bool process_record_quantum(keyrecord_t *record) {
process_record_via(keycode, record) &&
#endif
process_record_kb(keycode, record) &&
+#if defined(SEQUENCER_ENABLE)
+ process_sequencer(keycode, record) &&
+#endif
#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
process_midi(keycode, record) &&
#endif
@@ -636,6 +643,10 @@ void matrix_scan_quantum() {
matrix_scan_music();
#endif
+#ifdef SEQUENCER_ENABLE
+ matrix_scan_sequencer();
+#endif
+
#ifdef TAP_DANCE_ENABLE
matrix_scan_tap_dance();
#endif
@@ -664,6 +675,10 @@ void matrix_scan_quantum() {
dip_switch_read(false);
#endif
+#ifdef AUTO_SHIFT_ENABLE
+ autoshift_matrix_scan();
+#endif
+
matrix_scan_kb();
}
diff --git a/quantum/quantum.h b/quantum/quantum.h
index 0e452a062d..cb0af306ac 100644
--- a/quantum/quantum.h
+++ b/quantum/quantum.h
@@ -31,7 +31,7 @@
#ifdef BACKLIGHT_ENABLE
# ifdef LED_MATRIX_ENABLE
-# include "ledmatrix.h"
+# include "led_matrix.h"
# else
# include "backlight.h"
# endif
@@ -68,6 +68,11 @@ extern layer_state_t default_layer_state;
extern layer_state_t layer_state;
#endif
+#if defined(SEQUENCER_ENABLE)
+# include "sequencer.h"
+# include "process_sequencer.h"
+#endif
+
#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
# include "process_midi.h"
#endif
@@ -220,6 +225,61 @@ typedef ioline_t pin_t;
# define togglePin(pin) palToggleLine(pin)
#endif
+// Atomic macro to help make GPIO and other controls atomic.
+#ifdef IGNORE_ATOMIC_BLOCK
+/* do nothing atomic macro */
+# define ATOMIC_BLOCK for (uint8_t __ToDo = 1; __ToDo; __ToDo = 0)
+# define ATOMIC_BLOCK_RESTORESTATE ATOMIC_BLOCK
+# define ATOMIC_BLOCK_FORCEON ATOMIC_BLOCK
+
+#elif defined(__AVR__)
+/* atomic macro for AVR */
+# include <util/atomic.h>
+
+# define ATOMIC_BLOCK_RESTORESTATE ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
+# define ATOMIC_BLOCK_FORCEON ATOMIC_BLOCK(ATOMIC_FORCEON)
+
+#elif defined(PROTOCOL_CHIBIOS) || defined(PROTOCOL_ARM_ATSAM)
+/* atomic macro for ChibiOS / ARM ATSAM */
+# if defined(PROTOCOL_ARM_ATSAM)
+# include "arm_atsam_protocol.h"
+# endif
+
+static __inline__ uint8_t __interrupt_disable__(void) {
+# if defined(PROTOCOL_CHIBIOS)
+ chSysLock();
+# endif
+# if defined(PROTOCOL_ARM_ATSAM)
+ __disable_irq();
+# endif
+ return 1;
+}
+
+static __inline__ void __interrupt_enable__(const uint8_t *__s) {
+# if defined(PROTOCOL_CHIBIOS)
+ chSysUnlock();
+# endif
+# if defined(PROTOCOL_ARM_ATSAM)
+ __enable_irq();
+# endif
+ __asm__ volatile("" ::: "memory");
+ (void)__s;
+}
+
+# define ATOMIC_BLOCK(type) for (type, __ToDo = __interrupt_disable__(); __ToDo; __ToDo = 0)
+# define ATOMIC_FORCEON uint8_t sreg_save __attribute__((__cleanup__(__interrupt_enable__))) = 0
+
+# define ATOMIC_BLOCK_RESTORESTATE _Static_assert(0, "ATOMIC_BLOCK_RESTORESTATE dose not implement")
+# define ATOMIC_BLOCK_FORCEON ATOMIC_BLOCK(ATOMIC_FORCEON)
+
+/* Other platform */
+#else
+
+# define ATOMIC_BLOCK_RESTORESTATE _Static_assert(0, "ATOMIC_BLOCK_RESTORESTATE dose not implement")
+# define ATOMIC_BLOCK_FORCEON _Static_assert(0, "ATOMIC_BLOCK_FORCEON dose not implement")
+
+#endif
+
#define SEND_STRING(string) send_string_P(PSTR(string))
#define SEND_STRING_DELAY(string, interval) send_string_with_delay_P(PSTR(string), interval)
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h
index a0a7bc340f..a2cc7b38d9 100644
--- a/quantum/quantum_keycodes.h
+++ b/quantum/quantum_keycodes.h
@@ -16,6 +16,10 @@
#ifndef QUANTUM_KEYCODES_H
#define QUANTUM_KEYCODES_H
+#if defined(SEQUENCER_ENABLE)
+# include "sequencer.h"
+#endif
+
#ifndef MIDI_ENABLE_STRICT
# define MIDI_ENABLE_STRICT 0
#endif
@@ -343,7 +347,8 @@ enum quantum_keycodes {
MI_TRNSU, // transpose up
MIDI_VELOCITY_MIN,
- MI_VEL_1 = MIDI_VELOCITY_MIN,
+ MI_VEL_0 = MIDI_VELOCITY_MIN,
+ MI_VEL_1,
MI_VEL_2,
MI_VEL_3,
MI_VEL_4,
@@ -549,6 +554,37 @@ enum quantum_keycodes {
JS_BUTTON31,
JS_BUTTON_MAX = JS_BUTTON31,
+#if defined(SEQUENCER_ENABLE)
+ SQ_ON,
+ SQ_OFF,
+ SQ_TOG,
+
+ SQ_TMPD, // Decrease tempo
+ SQ_TMPU, // Increase tempo
+
+ SEQUENCER_RESOLUTION_MIN,
+ SEQUENCER_RESOLUTION_MAX = SEQUENCER_RESOLUTION_MIN + SEQUENCER_RESOLUTIONS,
+ SQ_RESD, // Decrease resolution
+ SQ_RESU, // Increase resolution
+
+ SQ_SALL, // All steps on
+ SQ_SCLR, // All steps off
+ SEQUENCER_STEP_MIN,
+ SEQUENCER_STEP_MAX = SEQUENCER_STEP_MIN + SEQUENCER_STEPS,
+
+ SEQUENCER_TRACK_MIN,
+ SEQUENCER_TRACK_MAX = SEQUENCER_TRACK_MIN + SEQUENCER_TRACKS,
+
+/**
+ * Helpers to assign a keycode to a step, a resolution, or a track.
+ * Falls back to NOOP if n is out of range.
+ */
+# define SQ_S(n) (n < SEQUENCER_STEPS ? SEQUENCER_STEP_MIN + n : XXXXXXX)
+# define SQ_R(n) (n < SEQUENCER_RESOLUTIONS ? SEQUENCER_RESOLUTION_MIN + n : XXXXXXX)
+# define SQ_T(n) (n < SEQUENCER_TRACKS ? SEQUENCER_TRACK_MIN + n : XXXXXXX)
+
+#endif
+
// always leave at the end
SAFE_RANGE
};
diff --git a/quantum/rgb_matrix.c b/quantum/rgb_matrix.c
index 802c5afcee..f239bd582f 100644
--- a/quantum/rgb_matrix.c
+++ b/quantum/rgb_matrix.c
@@ -31,6 +31,8 @@ const point_t k_rgb_matrix_center = {112, 32};
const point_t k_rgb_matrix_center = RGB_MATRIX_CENTER;
#endif
+__attribute__((weak)) RGB rgb_matrix_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); }
+
// Generic effect runners
#include "rgb_matrix_runners/effect_runner_dx_dy_dist.h"
#include "rgb_matrix_runners/effect_runner_dx_dy.h"
@@ -401,6 +403,10 @@ void rgb_matrix_task(void) {
break;
case RENDERING:
rgb_task_render(effect);
+ if (!suspend_backlight) {
+ rgb_matrix_indicators();
+ rgb_matrix_indicators_advanced(&rgb_effect_params);
+ }
break;
case FLUSHING:
rgb_task_flush(effect);
@@ -409,10 +415,6 @@ void rgb_matrix_task(void) {
rgb_task_sync();
break;
}
-
- if (!suspend_backlight) {
- rgb_matrix_indicators();
- }
}
void rgb_matrix_indicators(void) {
@@ -424,6 +426,28 @@ __attribute__((weak)) void rgb_matrix_indicators_kb(void) {}
__attribute__((weak)) void rgb_matrix_indicators_user(void) {}
+void rgb_matrix_indicators_advanced(effect_params_t *params) {
+ /* special handling is needed for "params->iter", since it's already been incremented.
+ * Could move the invocations to rgb_task_render, but then it's missing a few checks
+ * and not sure which would be better. Otherwise, this should be called from
+ * rgb_task_render, right before the iter++ line.
+ */
+#if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < DRIVER_LED_TOTAL
+ uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * (params->iter - 1);
+ uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT;
+ if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL;
+#else
+ uint8_t min = 0;
+ uint8_t max = DRIVER_LED_TOTAL;
+#endif
+ rgb_matrix_indicators_advanced_kb(min, max);
+ rgb_matrix_indicators_advanced_user(min, max);
+}
+
+__attribute__((weak)) void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {}
+
+__attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {}
+
void rgb_matrix_init(void) {
rgb_matrix_driver.init();
diff --git a/quantum/rgb_matrix.h b/quantum/rgb_matrix.h
index 733333349f..771a1fcd35 100644
--- a/quantum/rgb_matrix.h
+++ b/quantum/rgb_matrix.h
@@ -57,6 +57,11 @@
uint8_t max = DRIVER_LED_TOTAL;
#endif
+#define RGB_MATRIX_INDICATOR_SET_COLOR(i, r, g, b) \
+ if (i >= led_min && i <= led_max) { \
+ rgb_matrix_set_color(i, r, g, b); \
+ }
+
#define RGB_MATRIX_TEST_LED_FLAGS() \
if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) continue
@@ -103,6 +108,10 @@ void rgb_matrix_indicators(void);
void rgb_matrix_indicators_kb(void);
void rgb_matrix_indicators_user(void);
+void rgb_matrix_indicators_advanced(effect_params_t *params);
+void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max);
+void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max);
+
void rgb_matrix_init(void);
void rgb_matrix_set_suspend_state(bool state);
diff --git a/quantum/rgb_matrix_animations/alpha_mods_anim.h b/quantum/rgb_matrix_animations/alpha_mods_anim.h
index 0778ab2098..426d88ef35 100644
--- a/quantum/rgb_matrix_animations/alpha_mods_anim.h
+++ b/quantum/rgb_matrix_animations/alpha_mods_anim.h
@@ -7,9 +7,9 @@ bool ALPHAS_MODS(effect_params_t* params) {
RGB_MATRIX_USE_LIMITS(led_min, led_max);
HSV hsv = rgb_matrix_config.hsv;
- RGB rgb1 = hsv_to_rgb(hsv);
+ RGB rgb1 = rgb_matrix_hsv_to_rgb(hsv);
hsv.h += rgb_matrix_config.speed;
- RGB rgb2 = hsv_to_rgb(hsv);
+ RGB rgb2 = rgb_matrix_hsv_to_rgb(hsv);
for (uint8_t i = led_min; i < led_max; i++) {
RGB_MATRIX_TEST_LED_FLAGS();
diff --git a/quantum/rgb_matrix_animations/breathing_anim.h b/quantum/rgb_matrix_animations/breathing_anim.h
index 887425f9da..340bd93e5d 100644
--- a/quantum/rgb_matrix_animations/breathing_anim.h
+++ b/quantum/rgb_matrix_animations/breathing_anim.h
@@ -8,7 +8,7 @@ bool BREATHING(effect_params_t* params) {
HSV hsv = rgb_matrix_config.hsv;
uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
- RGB rgb = hsv_to_rgb(hsv);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
for (uint8_t i = led_min; i < led_max; i++) {
RGB_MATRIX_TEST_LED_FLAGS();
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
diff --git a/quantum/rgb_matrix_animations/gradient_left_right_anim.h b/quantum/rgb_matrix_animations/gradient_left_right_anim.h
index 2eab2eb759..53dfd04e2c 100644
--- a/quantum/rgb_matrix_animations/gradient_left_right_anim.h
+++ b/quantum/rgb_matrix_animations/gradient_left_right_anim.h
@@ -12,7 +12,7 @@ bool GRADIENT_LEFT_RIGHT(effect_params_t* params) {
// The x range will be 0..224, map this to 0..7
// Relies on hue being 8-bit and wrapping
hsv.h = rgb_matrix_config.hsv.h + (scale * g_led_config.point[i].x >> 5);
- RGB rgb = hsv_to_rgb(hsv);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
diff --git a/quantum/rgb_matrix_animations/gradient_up_down_anim.h b/quantum/rgb_matrix_animations/gradient_up_down_anim.h
index 0f1f8e23cf..7e0d2898cf 100644
--- a/quantum/rgb_matrix_animations/gradient_up_down_anim.h
+++ b/quantum/rgb_matrix_animations/gradient_up_down_anim.h
@@ -12,7 +12,7 @@ bool GRADIENT_UP_DOWN(effect_params_t* params) {
// The y range will be 0..64, map this to 0..4
// Relies on hue being 8-bit and wrapping
hsv.h = rgb_matrix_config.hsv.h + scale * (g_led_config.point[i].y >> 4);
- RGB rgb = hsv_to_rgb(hsv);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
diff --git a/quantum/rgb_matrix_animations/jellybean_raindrops_anim.h b/quantum/rgb_matrix_animations/jellybean_raindrops_anim.h
index ef2d1500b0..9493b38508 100644
--- a/quantum/rgb_matrix_animations/jellybean_raindrops_anim.h
+++ b/quantum/rgb_matrix_animations/jellybean_raindrops_anim.h
@@ -5,7 +5,7 @@ RGB_MATRIX_EFFECT(JELLYBEAN_RAINDROPS)
static void jellybean_raindrops_set_color(int i, effect_params_t* params) {
if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
HSV hsv = {rand() & 0xFF, rand() & 0xFF, rgb_matrix_config.hsv.v};
- RGB rgb = hsv_to_rgb(hsv);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
diff --git a/quantum/rgb_matrix_animations/raindrops_anim.h b/quantum/rgb_matrix_animations/raindrops_anim.h
index 6e1b5acb0d..38359cdca7 100644
--- a/quantum/rgb_matrix_animations/raindrops_anim.h
+++ b/quantum/rgb_matrix_animations/raindrops_anim.h
@@ -15,7 +15,7 @@ static void raindrops_set_color(int i, effect_params_t* params) {
}
hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03));
- RGB rgb = hsv_to_rgb(hsv);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
diff --git a/quantum/rgb_matrix_animations/solid_color_anim.h b/quantum/rgb_matrix_animations/solid_color_anim.h
index c8f5e70e7a..79d63cf133 100644
--- a/quantum/rgb_matrix_animations/solid_color_anim.h
+++ b/quantum/rgb_matrix_animations/solid_color_anim.h
@@ -4,7 +4,7 @@ RGB_MATRIX_EFFECT(SOLID_COLOR)
bool SOLID_COLOR(effect_params_t* params) {
RGB_MATRIX_USE_LIMITS(led_min, led_max);
- RGB rgb = hsv_to_rgb(rgb_matrix_config.hsv);
+ RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv);
for (uint8_t i = led_min; i < led_max; i++) {
RGB_MATRIX_TEST_LED_FLAGS();
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
diff --git a/quantum/rgb_matrix_animations/typing_heatmap_anim.h b/quantum/rgb_matrix_animations/typing_heatmap_anim.h
index e82c1b49ee..b855fdc190 100644
--- a/quantum/rgb_matrix_animations/typing_heatmap_anim.h
+++ b/quantum/rgb_matrix_animations/typing_heatmap_anim.h
@@ -51,7 +51,7 @@ bool TYPING_HEATMAP(effect_params_t* params) {
if (!HAS_ANY_FLAGS(g_led_config.flags[led[j]], params->flags)) continue;
HSV hsv = {170 - qsub8(val, 85), rgb_matrix_config.hsv.s, scale8((qadd8(170, val) - 170) * 3, rgb_matrix_config.hsv.v)};
- RGB rgb = hsv_to_rgb(hsv);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
rgb_matrix_set_color(led[j], rgb.r, rgb.g, rgb.b);
}
diff --git a/quantum/rgb_matrix_runners/effect_runner_dx_dy.h b/quantum/rgb_matrix_runners/effect_runner_dx_dy.h
index 9d0c9fab19..4867609c81 100644
--- a/quantum/rgb_matrix_runners/effect_runner_dx_dy.h
+++ b/quantum/rgb_matrix_runners/effect_runner_dx_dy.h
@@ -10,7 +10,7 @@ bool effect_runner_dx_dy(effect_params_t* params, dx_dy_f effect_func) {
RGB_MATRIX_TEST_LED_FLAGS();
int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
- RGB rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
diff --git a/quantum/rgb_matrix_runners/effect_runner_dx_dy_dist.h b/quantum/rgb_matrix_runners/effect_runner_dx_dy_dist.h
index 2824c82527..9545b418d9 100644
--- a/quantum/rgb_matrix_runners/effect_runner_dx_dy_dist.h
+++ b/quantum/rgb_matrix_runners/effect_runner_dx_dy_dist.h
@@ -11,7 +11,7 @@ bool effect_runner_dx_dy_dist(effect_params_t* params, dx_dy_dist_f effect_func)
int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
uint8_t dist = sqrt16(dx * dx + dy * dy);
- RGB rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, dist, time));
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, dist, time));
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
diff --git a/quantum/rgb_matrix_runners/effect_runner_i.h b/quantum/rgb_matrix_runners/effect_runner_i.h
index 5e6bf5daaf..95bfe8b390 100644
--- a/quantum/rgb_matrix_runners/effect_runner_i.h
+++ b/quantum/rgb_matrix_runners/effect_runner_i.h
@@ -8,7 +8,7 @@ bool effect_runner_i(effect_params_t* params, i_f effect_func) {
uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
for (uint8_t i = led_min; i < led_max; i++) {
RGB_MATRIX_TEST_LED_FLAGS();
- RGB rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
diff --git a/quantum/rgb_matrix_runners/effect_runner_reactive.h b/quantum/rgb_matrix_runners/effect_runner_reactive.h
index 53e77e3fb2..8485b61f3d 100644
--- a/quantum/rgb_matrix_runners/effect_runner_reactive.h
+++ b/quantum/rgb_matrix_runners/effect_runner_reactive.h
@@ -20,7 +20,7 @@ bool effect_runner_reactive(effect_params_t* params, reactive_f effect_func) {
}
uint16_t offset = scale16by8(tick, rgb_matrix_config.speed);
- RGB rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, offset));
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, offset));
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
diff --git a/quantum/rgb_matrix_runners/effect_runner_reactive_splash.h b/quantum/rgb_matrix_runners/effect_runner_reactive_splash.h
index b5d284a40f..5c69d0fbb9 100644
--- a/quantum/rgb_matrix_runners/effect_runner_reactive_splash.h
+++ b/quantum/rgb_matrix_runners/effect_runner_reactive_splash.h
@@ -20,7 +20,7 @@ bool effect_runner_reactive_splash(uint8_t start, effect_params_t* params, react
hsv = effect_func(hsv, dx, dy, dist, tick);
}
hsv.v = scale8(hsv.v, rgb_matrix_config.hsv.v);
- RGB rgb = hsv_to_rgb(hsv);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
diff --git a/quantum/rgb_matrix_runners/effect_runner_sin_cos_i.h b/quantum/rgb_matrix_runners/effect_runner_sin_cos_i.h
index 3fb7d48051..02351de51e 100644
--- a/quantum/rgb_matrix_runners/effect_runner_sin_cos_i.h
+++ b/quantum/rgb_matrix_runners/effect_runner_sin_cos_i.h
@@ -10,7 +10,7 @@ bool effect_runner_sin_cos_i(effect_params_t* params, sin_cos_i_f effect_func) {
int8_t sin_value = sin8(time) - 128;
for (uint8_t i = led_min; i < led_max; i++) {
RGB_MATRIX_TEST_LED_FLAGS();
- RGB rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
}
return led_max < DRIVER_LED_TOTAL;
diff --git a/quantum/rgblight.c b/quantum/rgblight.c
index 76bb6eb8cb..7f9e330d37 100644
--- a/quantum/rgblight.c
+++ b/quantum/rgblight.c
@@ -123,9 +123,11 @@ void rgblight_set_effect_range(uint8_t start_pos, uint8_t num_leds) {
rgblight_ranges.effect_num_leds = num_leds;
}
+__attribute__((weak)) RGB rgblight_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); }
+
void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) {
HSV hsv = {hue, sat, val};
- RGB rgb = hsv_to_rgb(hsv);
+ RGB rgb = rgblight_hsv_to_rgb(hsv);
setrgb(rgb.r, rgb.g, rgb.b, led1);
}
diff --git a/quantum/sequencer/sequencer.c b/quantum/sequencer/sequencer.c
new file mode 100644
index 0000000000..0eaf3a17aa
--- /dev/null
+++ b/quantum/sequencer/sequencer.c
@@ -0,0 +1,275 @@
+/* Copyright 2020 Rodolphe Belouin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "sequencer.h"
+
+#ifdef MIDI_ENABLE
+# include "process_midi.h"
+#endif
+
+#ifdef MIDI_MOCKED
+# include "tests/midi_mock.h"
+#endif
+
+sequencer_config_t sequencer_config = {
+ false, // enabled
+ {false}, // steps
+ {0}, // track notes
+ 60, // tempo
+ SQ_RES_4, // resolution
+};
+
+sequencer_state_t sequencer_internal_state = {0, 0, 0, 0, SEQUENCER_PHASE_ATTACK};
+
+bool is_sequencer_on(void) { return sequencer_config.enabled; }
+
+void sequencer_on(void) {
+ dprintln("sequencer on");
+ sequencer_config.enabled = true;
+ sequencer_internal_state.current_track = 0;
+ sequencer_internal_state.current_step = 0;
+ sequencer_internal_state.timer = timer_read();
+ sequencer_internal_state.phase = SEQUENCER_PHASE_ATTACK;
+}
+
+void sequencer_off(void) {
+ dprintln("sequencer off");
+ sequencer_config.enabled = false;
+ sequencer_internal_state.current_step = 0;
+}
+
+void sequencer_toggle(void) {
+ if (is_sequencer_on()) {
+ sequencer_off();
+ } else {
+ sequencer_on();
+ }
+}
+
+void sequencer_set_track_notes(const uint16_t track_notes[SEQUENCER_TRACKS]) {
+ for (uint8_t i = 0; i < SEQUENCER_TRACKS; i++) {
+ sequencer_config.track_notes[i] = track_notes[i];
+ }
+}
+
+bool is_sequencer_track_active(uint8_t track) { return (sequencer_internal_state.active_tracks >> track) & true; }
+
+void sequencer_set_track_activation(uint8_t track, bool value) {
+ if (value) {
+ sequencer_internal_state.active_tracks |= (1 << track);
+ } else {
+ sequencer_internal_state.active_tracks &= ~(1 << track);
+ }
+ dprintf("sequencer: track %d is %s\n", track, value ? "active" : "inactive");
+}
+
+void sequencer_toggle_track_activation(uint8_t track) { sequencer_set_track_activation(track, !is_sequencer_track_active(track)); }
+
+void sequencer_toggle_single_active_track(uint8_t track) {
+ if (is_sequencer_track_active(track)) {
+ sequencer_internal_state.active_tracks = 0;
+ } else {
+ sequencer_internal_state.active_tracks = 1 << track;
+ }
+}
+
+bool is_sequencer_step_on(uint8_t step) { return step < SEQUENCER_STEPS && (sequencer_config.steps[step] & sequencer_internal_state.active_tracks) > 0; }
+
+bool is_sequencer_step_on_for_track(uint8_t step, uint8_t track) { return step < SEQUENCER_STEPS && (sequencer_config.steps[step] >> track) & true; }
+
+void sequencer_set_step(uint8_t step, bool value) {
+ if (step < SEQUENCER_STEPS) {
+ if (value) {
+ sequencer_config.steps[step] |= sequencer_internal_state.active_tracks;
+ } else {
+ sequencer_config.steps[step] &= ~sequencer_internal_state.active_tracks;
+ }
+ dprintf("sequencer: step %d is %s\n", step, value ? "on" : "off");
+ } else {
+ dprintf("sequencer: step %d is out of range\n", step);
+ }
+}
+
+void sequencer_toggle_step(uint8_t step) {
+ if (is_sequencer_step_on(step)) {
+ sequencer_set_step_off(step);
+ } else {
+ sequencer_set_step_on(step);
+ }
+}
+
+void sequencer_set_all_steps(bool value) {
+ for (uint8_t step = 0; step < SEQUENCER_STEPS; step++) {
+ if (value) {
+ sequencer_config.steps[step] |= sequencer_internal_state.active_tracks;
+ } else {
+ sequencer_config.steps[step] &= ~sequencer_internal_state.active_tracks;
+ }
+ }
+ dprintf("sequencer: all steps are %s\n", value ? "on" : "off");
+}
+
+uint8_t sequencer_get_tempo(void) { return sequencer_config.tempo; }
+
+void sequencer_set_tempo(uint8_t tempo) {
+ if (tempo > 0) {
+ sequencer_config.tempo = tempo;
+ dprintf("sequencer: tempo set to %d bpm\n", tempo);
+ } else {
+ dprintln("sequencer: cannot set tempo to 0");
+ }
+}
+
+void sequencer_increase_tempo(void) {
+ // Handling potential uint8_t overflow
+ if (sequencer_config.tempo < UINT8_MAX) {
+ sequencer_set_tempo(sequencer_config.tempo + 1);
+ } else {
+ dprintf("sequencer: cannot set tempo above %d\n", UINT8_MAX);
+ }
+}
+
+void sequencer_decrease_tempo(void) { sequencer_set_tempo(sequencer_config.tempo - 1); }
+
+sequencer_resolution_t sequencer_get_resolution(void) { return sequencer_config.resolution; }
+
+void sequencer_set_resolution(sequencer_resolution_t resolution) {
+ if (resolution >= 0 && resolution < SEQUENCER_RESOLUTIONS) {
+ sequencer_config.resolution = resolution;
+ dprintf("sequencer: resolution set to %d\n", resolution);
+ } else {
+ dprintf("sequencer: resolution %d is out of range\n", resolution);
+ }
+}
+
+void sequencer_increase_resolution(void) { sequencer_set_resolution(sequencer_config.resolution + 1); }
+
+void sequencer_decrease_resolution(void) { sequencer_set_resolution(sequencer_config.resolution - 1); }
+
+uint8_t sequencer_get_current_step(void) { return sequencer_internal_state.current_step; }
+
+void sequencer_phase_attack(void) {
+ dprintf("sequencer: step %d\n", sequencer_internal_state.current_step);
+ dprintf("sequencer: time %d\n", timer_read());
+
+ if (sequencer_internal_state.current_track == 0) {
+ sequencer_internal_state.timer = timer_read();
+ }
+
+ if (timer_elapsed(sequencer_internal_state.timer) < sequencer_internal_state.current_track * SEQUENCER_TRACK_THROTTLE) {
+ return;
+ }
+
+#if defined(MIDI_ENABLE) || defined(MIDI_MOCKED)
+ if (is_sequencer_step_on_for_track(sequencer_internal_state.current_step, sequencer_internal_state.current_track)) {
+ process_midi_basic_noteon(midi_compute_note(sequencer_config.track_notes[sequencer_internal_state.current_track]));
+ }
+#endif
+
+ if (sequencer_internal_state.current_track < SEQUENCER_TRACKS - 1) {
+ sequencer_internal_state.current_track++;
+ } else {
+ sequencer_internal_state.phase = SEQUENCER_PHASE_RELEASE;
+ }
+}
+
+void sequencer_phase_release(void) {
+ if (timer_elapsed(sequencer_internal_state.timer) < SEQUENCER_PHASE_RELEASE_TIMEOUT + sequencer_internal_state.current_track * SEQUENCER_TRACK_THROTTLE) {
+ return;
+ }
+#if defined(MIDI_ENABLE) || defined(MIDI_MOCKED)
+ if (is_sequencer_step_on_for_track(sequencer_internal_state.current_step, sequencer_internal_state.current_track)) {
+ process_midi_basic_noteoff(midi_compute_note(sequencer_config.track_notes[sequencer_internal_state.current_track]));
+ }
+#endif
+ if (sequencer_internal_state.current_track > 0) {
+ sequencer_internal_state.current_track--;
+ } else {
+ sequencer_internal_state.phase = SEQUENCER_PHASE_PAUSE;
+ }
+}
+
+void sequencer_phase_pause(void) {
+ if (timer_elapsed(sequencer_internal_state.timer) < sequencer_get_step_duration()) {
+ return;
+ }
+
+ sequencer_internal_state.current_step = (sequencer_internal_state.current_step + 1) % SEQUENCER_STEPS;
+ sequencer_internal_state.phase = SEQUENCER_PHASE_ATTACK;
+}
+
+void matrix_scan_sequencer(void) {
+ if (!sequencer_config.enabled) {
+ return;
+ }
+
+ if (sequencer_internal_state.phase == SEQUENCER_PHASE_PAUSE) {
+ sequencer_phase_pause();
+ }
+
+ if (sequencer_internal_state.phase == SEQUENCER_PHASE_RELEASE) {
+ sequencer_phase_release();
+ }
+
+ if (sequencer_internal_state.phase == SEQUENCER_PHASE_ATTACK) {
+ sequencer_phase_attack();
+ }
+}
+
+uint16_t sequencer_get_beat_duration(void) { return get_beat_duration(sequencer_config.tempo); }
+
+uint16_t sequencer_get_step_duration(void) { return get_step_duration(sequencer_config.tempo, sequencer_config.resolution); }
+
+uint16_t get_beat_duration(uint8_t tempo) {
+ // Don’t crash in the unlikely case where the given tempo is 0
+ if (tempo == 0) {
+ return get_beat_duration(60);
+ }
+
+ /**
+ * Given
+ * t = tempo and d = duration, both strictly greater than 0
+ * When
+ * t beats / minute = 1 beat / d ms
+ * Then
+ * t beats / 60000ms = 1 beat / d ms
+ * d ms = 60000ms / t
+ */
+ return 60000 / tempo;
+}
+
+uint16_t get_step_duration(uint8_t tempo, sequencer_resolution_t resolution) {
+ /**
+ * Resolution cheatsheet:
+ * 1/2 => 2 steps per 4 beats
+ * 1/2T => 3 steps per 4 beats
+ * 1/4 => 4 steps per 4 beats
+ * 1/4T => 6 steps per 4 beats
+ * 1/8 => 8 steps per 4 beats
+ * 1/8T => 12 steps per 4 beats
+ * 1/16 => 16 steps per 4 beats
+ * 1/16T => 24 steps per 4 beats
+ * 1/32 => 32 steps per 4 beats
+ *
+ * The number of steps for binary resolutions follows the powers of 2.
+ * The ternary variants are simply 1.5x faster.
+ */
+ bool is_binary = resolution % 2 == 0;
+ uint8_t binary_steps = 2 << (resolution / 2);
+ uint16_t binary_step_duration = get_beat_duration(tempo) * 4 / binary_steps;
+
+ return is_binary ? binary_step_duration : 2 * binary_step_duration / 3;
+}
diff --git a/quantum/sequencer/sequencer.h b/quantum/sequencer/sequencer.h
new file mode 100644
index 0000000000..aeca7a1e9b
--- /dev/null
+++ b/quantum/sequencer/sequencer.h
@@ -0,0 +1,122 @@
+/* Copyright 2020 Rodolphe Belouin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <stdbool.h>
+#include "debug.h"
+#include "timer.h"
+
+// Maximum number of steps: 256
+#ifndef SEQUENCER_STEPS
+# define SEQUENCER_STEPS 16
+#endif
+
+// Maximum number of tracks: 8
+#ifndef SEQUENCER_TRACKS
+# define SEQUENCER_TRACKS 8
+#endif
+
+#ifndef SEQUENCER_TRACK_THROTTLE
+# define SEQUENCER_TRACK_THROTTLE 3
+#endif
+
+#ifndef SEQUENCER_PHASE_RELEASE_TIMEOUT
+# define SEQUENCER_PHASE_RELEASE_TIMEOUT 30
+#endif
+
+/**
+ * Make sure that the items of this enumeration follow the powers of 2, separated by a ternary variant.
+ * Check the implementation of `get_step_duration` for further explanation.
+ */
+typedef enum { SQ_RES_2, SQ_RES_2T, SQ_RES_4, SQ_RES_4T, SQ_RES_8, SQ_RES_8T, SQ_RES_16, SQ_RES_16T, SQ_RES_32, SEQUENCER_RESOLUTIONS } sequencer_resolution_t;
+
+typedef struct {
+ bool enabled;
+ uint8_t steps[SEQUENCER_STEPS];
+ uint16_t track_notes[SEQUENCER_TRACKS];
+ uint8_t tempo; // Is a maximum tempo of 255 reasonable?
+ sequencer_resolution_t resolution;
+} sequencer_config_t;
+
+/**
+ * Because Digital Audio Workstations get overwhelmed when too many MIDI signals are sent concurrently,
+ * We use a "phase" state machine to delay some of the events.
+ */
+typedef enum sequencer_phase_t {
+ SEQUENCER_PHASE_ATTACK, // t=0ms, send the MIDI note on signal
+ SEQUENCER_PHASE_RELEASE, // t=SEQUENCER_PHASE_RELEASE_TIMEOUT ms, send the MIDI note off signal
+ SEQUENCER_PHASE_PAUSE // t=step duration ms, loop
+} sequencer_phase_t;
+
+typedef struct {
+ uint8_t active_tracks;
+ uint8_t current_track;
+ uint8_t current_step;
+ uint16_t timer;
+ sequencer_phase_t phase;
+} sequencer_state_t;
+
+extern sequencer_config_t sequencer_config;
+
+// We expose the internal state to make the feature more "unit-testable"
+extern sequencer_state_t sequencer_internal_state;
+
+bool is_sequencer_on(void);
+void sequencer_toggle(void);
+void sequencer_on(void);
+void sequencer_off(void);
+
+void sequencer_set_track_notes(const uint16_t track_notes[SEQUENCER_TRACKS]);
+
+bool is_sequencer_track_active(uint8_t track);
+void sequencer_set_track_activation(uint8_t track, bool value);
+void sequencer_toggle_track_activation(uint8_t track);
+void sequencer_toggle_single_active_track(uint8_t track);
+
+#define sequencer_activate_track(track) sequencer_set_track_activation(track, true)
+#define sequencer_deactivate_track(track) sequencer_set_track_activation(track, false)
+
+bool is_sequencer_step_on(uint8_t step);
+bool is_sequencer_step_on_for_track(uint8_t step, uint8_t track);
+void sequencer_set_step(uint8_t step, bool value);
+void sequencer_toggle_step(uint8_t step);
+void sequencer_set_all_steps(bool value);
+
+#define sequencer_set_step_on(step) sequencer_set_step(step, true)
+#define sequencer_set_step_off(step) sequencer_set_step(step, false)
+#define sequencer_set_all_steps_on() sequencer_set_all_steps(true)
+#define sequencer_set_all_steps_off() sequencer_set_all_steps(false)
+
+uint8_t sequencer_get_tempo(void);
+void sequencer_set_tempo(uint8_t tempo);
+void sequencer_increase_tempo(void);
+void sequencer_decrease_tempo(void);
+
+sequencer_resolution_t sequencer_get_resolution(void);
+void sequencer_set_resolution(sequencer_resolution_t resolution);
+void sequencer_increase_resolution(void);
+void sequencer_decrease_resolution(void);
+
+uint8_t sequencer_get_current_step(void);
+
+uint16_t sequencer_get_beat_duration(void);
+uint16_t sequencer_get_step_duration(void);
+
+uint16_t get_beat_duration(uint8_t tempo);
+uint16_t get_step_duration(uint8_t tempo, sequencer_resolution_t resolution);
+
+void matrix_scan_sequencer(void);
diff --git a/quantum/sequencer/tests/midi_mock.c b/quantum/sequencer/tests/midi_mock.c
new file mode 100644
index 0000000000..236e16f9d7
--- /dev/null
+++ b/quantum/sequencer/tests/midi_mock.c
@@ -0,0 +1,26 @@
+/* Copyright 2020 Rodolphe Belouin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "midi_mock.h"
+
+uint16_t last_noteon = 0;
+uint16_t last_noteoff = 0;
+
+uint16_t midi_compute_note(uint16_t keycode) { return keycode; }
+
+void process_midi_basic_noteon(uint16_t note) { last_noteon = note; }
+
+void process_midi_basic_noteoff(uint16_t note) { last_noteoff = note; }
diff --git a/quantum/sequencer/tests/midi_mock.h b/quantum/sequencer/tests/midi_mock.h
new file mode 100644
index 0000000000..4d8c2eb307
--- /dev/null
+++ b/quantum/sequencer/tests/midi_mock.h
@@ -0,0 +1,26 @@
+/* Copyright 2020 Rodolphe Belouin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <stdint.h>
+
+extern uint16_t last_noteon;
+extern uint16_t last_noteoff;
+
+uint16_t midi_compute_note(uint16_t keycode);
+void process_midi_basic_noteon(uint16_t note);
+void process_midi_basic_noteoff(uint16_t note);
diff --git a/quantum/sequencer/tests/rules.mk b/quantum/sequencer/tests/rules.mk
new file mode 100644
index 0000000000..76c221cf92
--- /dev/null
+++ b/quantum/sequencer/tests/rules.mk
@@ -0,0 +1,11 @@
+# The letter case of these variables might seem odd. However:
+# - it is consistent with the serial_link example that is used as a reference in the Unit Testing article (https://docs.qmk.fm/#/unit_testing?id=adding-tests-for-new-or-existing-features)
+# - Neither `make test:sequencer` or `make test:SEQUENCER` work when using SCREAMING_SNAKE_CASE
+
+sequencer_DEFS := -DNO_DEBUG -DMIDI_MOCKED
+
+sequencer_SRC := \
+ $(QUANTUM_PATH)/sequencer/tests/midi_mock.c \
+ $(QUANTUM_PATH)/sequencer/tests/sequencer_tests.cpp \
+ $(QUANTUM_PATH)/sequencer/sequencer.c \
+ $(TMK_PATH)/common/test/timer.c
diff --git a/quantum/sequencer/tests/sequencer_tests.cpp b/quantum/sequencer/tests/sequencer_tests.cpp
new file mode 100644
index 0000000000..e81984e5b5
--- /dev/null
+++ b/quantum/sequencer/tests/sequencer_tests.cpp
@@ -0,0 +1,590 @@
+/* Copyright 2020 Rodolphe Belouin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "gtest/gtest.h"
+
+extern "C" {
+#include "sequencer.h"
+#include "midi_mock.h"
+#include "quantum/quantum_keycodes.h"
+}
+
+extern "C" {
+void set_time(uint32_t t);
+void advance_time(uint32_t ms);
+}
+
+class SequencerTest : public ::testing::Test {
+ protected:
+ void SetUp() override {
+ config_copy.enabled = sequencer_config.enabled;
+
+ for (int i = 0; i < SEQUENCER_STEPS; i++) {
+ config_copy.steps[i] = sequencer_config.steps[i];
+ }
+
+ for (int i = 0; i < SEQUENCER_TRACKS; i++) {
+ config_copy.track_notes[i] = sequencer_config.track_notes[i];
+ }
+
+ config_copy.tempo = sequencer_config.tempo;
+ config_copy.resolution = sequencer_config.resolution;
+
+ state_copy.active_tracks = sequencer_internal_state.active_tracks;
+ state_copy.current_track = sequencer_internal_state.current_track;
+ state_copy.current_step = sequencer_internal_state.current_step;
+ state_copy.timer = sequencer_internal_state.timer;
+
+ last_noteon = 0;
+ last_noteoff = 0;
+
+ set_time(0);
+ }
+
+ void TearDown() override {
+ sequencer_config.enabled = config_copy.enabled;
+
+ for (int i = 0; i < SEQUENCER_STEPS; i++) {
+ sequencer_config.steps[i] = config_copy.steps[i];
+ }
+
+ for (int i = 0; i < SEQUENCER_TRACKS; i++) {
+ sequencer_config.track_notes[i] = config_copy.track_notes[i];
+ }
+
+ sequencer_config.tempo = config_copy.tempo;
+ sequencer_config.resolution = config_copy.resolution;
+
+ sequencer_internal_state.active_tracks = state_copy.active_tracks;
+ sequencer_internal_state.current_track = state_copy.current_track;
+ sequencer_internal_state.current_step = state_copy.current_step;
+ sequencer_internal_state.timer = state_copy.timer;
+ }
+
+ sequencer_config_t config_copy;
+ sequencer_state_t state_copy;
+};
+
+TEST_F(SequencerTest, TestOffByDefault) { EXPECT_EQ(is_sequencer_on(), false); }
+
+TEST_F(SequencerTest, TestOn) {
+ sequencer_config.enabled = false;
+
+ sequencer_on();
+ EXPECT_EQ(is_sequencer_on(), true);
+
+ // sequencer_on is idempotent
+ sequencer_on();
+ EXPECT_EQ(is_sequencer_on(), true);
+}
+
+TEST_F(SequencerTest, TestOff) {
+ sequencer_config.enabled = true;
+
+ sequencer_off();
+ EXPECT_EQ(is_sequencer_on(), false);
+
+ // sequencer_off is idempotent
+ sequencer_off();
+ EXPECT_EQ(is_sequencer_on(), false);
+}
+
+TEST_F(SequencerTest, TestToggle) {
+ sequencer_config.enabled = false;
+
+ sequencer_toggle();
+ EXPECT_EQ(is_sequencer_on(), true);
+
+ sequencer_toggle();
+ EXPECT_EQ(is_sequencer_on(), false);
+}
+
+TEST_F(SequencerTest, TestNoActiveTrackByDefault) {
+ for (int i = 0; i < SEQUENCER_TRACKS; i++) {
+ EXPECT_EQ(is_sequencer_track_active(i), false);
+ }
+}
+
+TEST_F(SequencerTest, TestGetActiveTracks) {
+ sequencer_internal_state.active_tracks = (1 << 7) + (1 << 6) + (1 << 3) + (1 << 1) + (1 << 0);
+
+ EXPECT_EQ(is_sequencer_track_active(0), true);
+ EXPECT_EQ(is_sequencer_track_active(1), true);
+ EXPECT_EQ(is_sequencer_track_active(2), false);
+ EXPECT_EQ(is_sequencer_track_active(3), true);
+ EXPECT_EQ(is_sequencer_track_active(4), false);
+ EXPECT_EQ(is_sequencer_track_active(5), false);
+ EXPECT_EQ(is_sequencer_track_active(6), true);
+ EXPECT_EQ(is_sequencer_track_active(7), true);
+}
+
+TEST_F(SequencerTest, TestGetActiveTracksOutOfBound) {
+ sequencer_set_track_activation(-1, true);
+ sequencer_set_track_activation(8, true);
+
+ EXPECT_EQ(is_sequencer_track_active(-1), false);
+ EXPECT_EQ(is_sequencer_track_active(8), false);
+}
+
+TEST_F(SequencerTest, TestToggleTrackActivation) {
+ sequencer_internal_state.active_tracks = (1 << 7) + (1 << 6) + (1 << 3) + (1 << 1) + (1 << 0);
+
+ sequencer_toggle_track_activation(6);
+
+ EXPECT_EQ(is_sequencer_track_active(0), true);
+ EXPECT_EQ(is_sequencer_track_active(1), true);
+ EXPECT_EQ(is_sequencer_track_active(2), false);
+ EXPECT_EQ(is_sequencer_track_active(3), true);
+ EXPECT_EQ(is_sequencer_track_active(4), false);
+ EXPECT_EQ(is_sequencer_track_active(5), false);
+ EXPECT_EQ(is_sequencer_track_active(6), false);
+ EXPECT_EQ(is_sequencer_track_active(7), true);
+}
+
+TEST_F(SequencerTest, TestToggleSingleTrackActivation) {
+ sequencer_internal_state.active_tracks = (1 << 7) + (1 << 6) + (1 << 3) + (1 << 1) + (1 << 0);
+
+ sequencer_toggle_single_active_track(2);
+
+ EXPECT_EQ(is_sequencer_track_active(0), false);
+ EXPECT_EQ(is_sequencer_track_active(1), false);
+ EXPECT_EQ(is_sequencer_track_active(2), true);
+ EXPECT_EQ(is_sequencer_track_active(3), false);
+ EXPECT_EQ(is_sequencer_track_active(4), false);
+ EXPECT_EQ(is_sequencer_track_active(5), false);
+ EXPECT_EQ(is_sequencer_track_active(6), false);
+ EXPECT_EQ(is_sequencer_track_active(7), false);
+}
+
+TEST_F(SequencerTest, TestStepOffByDefault) {
+ for (int i = 0; i < SEQUENCER_STEPS; i++) {
+ EXPECT_EQ(is_sequencer_step_on(i), false);
+ }
+}
+
+TEST_F(SequencerTest, TestIsStepOffWithNoActiveTracks) {
+ sequencer_config.steps[3] = 0xFF;
+ EXPECT_EQ(is_sequencer_step_on(3), false);
+}
+
+TEST_F(SequencerTest, TestIsStepOffWithGivenActiveTracks) {
+ sequencer_set_track_activation(2, true);
+ sequencer_set_track_activation(3, true);
+
+ sequencer_config.steps[3] = (1 << 0) + (1 << 1);
+
+ // No active tracks have the step enabled, so it is off
+ EXPECT_EQ(is_sequencer_step_on(3), false);
+}
+
+TEST_F(SequencerTest, TestIsStepOnWithGivenActiveTracks) {
+ sequencer_set_track_activation(2, true);
+ sequencer_set_track_activation(3, true);
+
+ sequencer_config.steps[3] = (1 << 2);
+
+ // Track 2 has the step enabled, so it is on
+ EXPECT_EQ(is_sequencer_step_on(3), true);
+}
+
+TEST_F(SequencerTest, TestIsStepOffForGivenTrack) {
+ sequencer_config.steps[3] = 0x00;
+ EXPECT_EQ(is_sequencer_step_on_for_track(3, 5), false);
+}
+
+TEST_F(SequencerTest, TestIsStepOnForGivenTrack) {
+ sequencer_config.steps[3] = (1 << 5);
+ EXPECT_EQ(is_sequencer_step_on_for_track(3, 5), true);
+}
+
+TEST_F(SequencerTest, TestSetStepOn) {
+ sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
+ sequencer_config.steps[2] = (1 << 5) + (1 << 2);
+
+ sequencer_set_step(2, true);
+
+ EXPECT_EQ(sequencer_config.steps[2], (1 << 6) + (1 << 5) + (1 << 3) + (1 << 2));
+}
+
+TEST_F(SequencerTest, TestSetStepOff) {
+ sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
+ sequencer_config.steps[2] = (1 << 5) + (1 << 2);
+
+ sequencer_set_step(2, false);
+
+ EXPECT_EQ(sequencer_config.steps[2], (1 << 5));
+}
+
+TEST_F(SequencerTest, TestToggleStepOff) {
+ sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
+ sequencer_config.steps[2] = (1 << 5) + (1 << 2);
+
+ sequencer_toggle_step(2);
+
+ EXPECT_EQ(sequencer_config.steps[2], (1 << 5));
+}
+
+TEST_F(SequencerTest, TestToggleStepOn) {
+ sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
+ sequencer_config.steps[2] = 0;
+
+ sequencer_toggle_step(2);
+
+ EXPECT_EQ(sequencer_config.steps[2], (1 << 6) + (1 << 3) + (1 << 2));
+}
+
+TEST_F(SequencerTest, TestSetAllStepsOn) {
+ sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
+ sequencer_config.steps[2] = (1 << 7) + (1 << 6);
+ sequencer_config.steps[4] = (1 << 3) + (1 << 1);
+
+ sequencer_set_all_steps(true);
+
+ EXPECT_EQ(sequencer_config.steps[2], (1 << 7) + (1 << 6) + (1 << 3) + (1 << 2));
+ EXPECT_EQ(sequencer_config.steps[4], (1 << 6) + (1 << 3) + (1 << 2) + (1 << 1));
+}
+
+TEST_F(SequencerTest, TestSetAllStepsOff) {
+ sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
+ sequencer_config.steps[2] = (1 << 7) + (1 << 6);
+ sequencer_config.steps[4] = (1 << 3) + (1 << 1);
+
+ sequencer_set_all_steps(false);
+
+ EXPECT_EQ(sequencer_config.steps[2], (1 << 7));
+ EXPECT_EQ(sequencer_config.steps[4], (1 << 1));
+}
+
+TEST_F(SequencerTest, TestSetTempoZero) {
+ sequencer_config.tempo = 123;
+
+ sequencer_set_tempo(0);
+
+ EXPECT_EQ(sequencer_config.tempo, 123);
+}
+
+TEST_F(SequencerTest, TestIncreaseTempoMax) {
+ sequencer_config.tempo = UINT8_MAX;
+
+ sequencer_increase_tempo();
+
+ EXPECT_EQ(sequencer_config.tempo, UINT8_MAX);
+}
+
+TEST_F(SequencerTest, TestSetResolutionLowerBound) {
+ sequencer_config.resolution = SQ_RES_4;
+
+ sequencer_set_resolution((sequencer_resolution_t)-1);
+
+ EXPECT_EQ(sequencer_config.resolution, SQ_RES_4);
+}
+
+TEST_F(SequencerTest, TestSetResolutionUpperBound) {
+ sequencer_config.resolution = SQ_RES_4;
+
+ sequencer_set_resolution(SEQUENCER_RESOLUTIONS);
+
+ EXPECT_EQ(sequencer_config.resolution, SQ_RES_4);
+}
+
+TEST_F(SequencerTest, TestGetBeatDuration) {
+ EXPECT_EQ(get_beat_duration(60), 1000);
+ EXPECT_EQ(get_beat_duration(120), 500);
+ EXPECT_EQ(get_beat_duration(240), 250);
+ EXPECT_EQ(get_beat_duration(0), 1000);
+}
+
+TEST_F(SequencerTest, TestGetStepDuration60) {
+ /**
+ * Resolution cheatsheet:
+ * 1/2 => 2 steps per 4 beats
+ * 1/2T => 3 steps per 4 beats
+ * 1/4 => 4 steps per 4 beats
+ * 1/4T => 6 steps per 4 beats
+ * 1/8 => 8 steps per 4 beats
+ * 1/8T => 12 steps per 4 beats
+ * 1/16 => 16 steps per 4 beats
+ * 1/16T => 24 steps per 4 beats
+ * 1/32 => 32 steps per 4 beats
+ *
+ * The number of steps for binary resolutions follows the powers of 2.
+ * The ternary variants are simply 1.5x faster.
+ */
+ EXPECT_EQ(get_step_duration(60, SQ_RES_2), 2000);
+ EXPECT_EQ(get_step_duration(60, SQ_RES_4), 1000);
+ EXPECT_EQ(get_step_duration(60, SQ_RES_8), 500);
+ EXPECT_EQ(get_step_duration(60, SQ_RES_16), 250);
+ EXPECT_EQ(get_step_duration(60, SQ_RES_32), 125);
+
+ EXPECT_EQ(get_step_duration(60, SQ_RES_2T), 1333);
+ EXPECT_EQ(get_step_duration(60, SQ_RES_4T), 666);
+ EXPECT_EQ(get_step_duration(60, SQ_RES_8T), 333);
+ EXPECT_EQ(get_step_duration(60, SQ_RES_16T), 166);
+}
+
+TEST_F(SequencerTest, TestGetStepDuration120) {
+ /**
+ * Resolution cheatsheet:
+ * 1/2 => 2 steps per 4 beats
+ * 1/2T => 3 steps per 4 beats
+ * 1/4 => 4 steps per 4 beats
+ * 1/4T => 6 steps per 4 beats
+ * 1/8 => 8 steps per 4 beats
+ * 1/8T => 12 steps per 4 beats
+ * 1/16 => 16 steps per 4 beats
+ * 1/16T => 24 steps per 4 beats
+ * 1/32 => 32 steps per 4 beats
+ *
+ * The number of steps for binary resolutions follows the powers of 2.
+ * The ternary variants are simply 1.5x faster.
+ */
+ EXPECT_EQ(get_step_duration(30, SQ_RES_2), 4000);
+ EXPECT_EQ(get_step_duration(30, SQ_RES_4), 2000);
+ EXPECT_EQ(get_step_duration(30, SQ_RES_8), 1000);
+ EXPECT_EQ(get_step_duration(30, SQ_RES_16), 500);
+ EXPECT_EQ(get_step_duration(30, SQ_RES_32), 250);
+
+ EXPECT_EQ(get_step_duration(30, SQ_RES_2T), 2666);
+ EXPECT_EQ(get_step_duration(30, SQ_RES_4T), 1333);
+ EXPECT_EQ(get_step_duration(30, SQ_RES_8T), 666);
+ EXPECT_EQ(get_step_duration(30, SQ_RES_16T), 333);
+}
+
+void setUpMatrixScanSequencerTest(void) {
+ sequencer_config.enabled = true;
+ sequencer_config.tempo = 120;
+ sequencer_config.resolution = SQ_RES_16;
+
+ // Configure the notes for each track
+ sequencer_config.track_notes[0] = MI_C;
+ sequencer_config.track_notes[1] = MI_D;
+ sequencer_config.track_notes[2] = MI_E;
+ sequencer_config.track_notes[3] = MI_F;
+ sequencer_config.track_notes[4] = MI_G;
+ sequencer_config.track_notes[5] = MI_A;
+ sequencer_config.track_notes[6] = MI_B;
+ sequencer_config.track_notes[7] = MI_C;
+
+ // Turn on some steps
+ sequencer_config.steps[0] = (1 << 0);
+ sequencer_config.steps[2] = (1 << 1) + (1 << 0);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldAttackFirstTrackOfFirstStep) {
+ setUpMatrixScanSequencerTest();
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(last_noteon, MI_C);
+ EXPECT_EQ(last_noteoff, 0);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldAttackSecondTrackAfterFirstTrackOfFirstStep) {
+ setUpMatrixScanSequencerTest();
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(sequencer_internal_state.current_step, 0);
+ EXPECT_EQ(sequencer_internal_state.current_track, 1);
+ EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_ATTACK);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldNotAttackInactiveTrackFirstStep) {
+ setUpMatrixScanSequencerTest();
+
+ sequencer_internal_state.current_step = 0;
+ sequencer_internal_state.current_track = 1;
+
+ // Wait some time after the first track has been attacked
+ advance_time(SEQUENCER_TRACK_THROTTLE);
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(last_noteon, 0);
+ EXPECT_EQ(last_noteoff, 0);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldAttackThirdTrackAfterSecondTrackOfFirstStep) {
+ setUpMatrixScanSequencerTest();
+
+ sequencer_internal_state.current_step = 0;
+ sequencer_internal_state.current_track = 1;
+
+ // Wait some time after the second track has been attacked
+ advance_time(2 * SEQUENCER_TRACK_THROTTLE);
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(sequencer_internal_state.current_step, 0);
+ EXPECT_EQ(sequencer_internal_state.current_track, 2);
+ EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_ATTACK);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldEnterReleasePhaseAfterLastTrackHasBeenProcessedFirstStep) {
+ setUpMatrixScanSequencerTest();
+
+ sequencer_internal_state.current_step = 0;
+ sequencer_internal_state.current_track = SEQUENCER_TRACKS - 1;
+
+ // Wait until all notes have been attacked
+ advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(last_noteon, 0);
+ EXPECT_EQ(last_noteoff, 0);
+ EXPECT_EQ(sequencer_internal_state.current_step, 0);
+ EXPECT_EQ(sequencer_internal_state.current_track, SEQUENCER_TRACKS - 1);
+ EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_RELEASE);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldReleaseBackwards) {
+ setUpMatrixScanSequencerTest();
+
+ sequencer_internal_state.current_step = 0;
+ sequencer_internal_state.current_track = SEQUENCER_TRACKS - 1;
+ sequencer_internal_state.phase = SEQUENCER_PHASE_RELEASE;
+
+ // Wait until all notes have been attacked
+ advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
+ // + the release timeout
+ advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(sequencer_internal_state.current_step, 0);
+ EXPECT_EQ(sequencer_internal_state.current_track, SEQUENCER_TRACKS - 2);
+ EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_RELEASE);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldNotReleaseInactiveTrackFirstStep) {
+ setUpMatrixScanSequencerTest();
+
+ sequencer_internal_state.current_step = 0;
+ sequencer_internal_state.current_track = SEQUENCER_TRACKS - 1;
+ sequencer_internal_state.phase = SEQUENCER_PHASE_RELEASE;
+
+ // Wait until all notes have been attacked
+ advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
+ // + the release timeout
+ advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(last_noteon, 0);
+ EXPECT_EQ(last_noteoff, 0);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldReleaseFirstTrackFirstStep) {
+ setUpMatrixScanSequencerTest();
+
+ sequencer_internal_state.current_step = 0;
+ sequencer_internal_state.current_track = 0;
+ sequencer_internal_state.phase = SEQUENCER_PHASE_RELEASE;
+
+ // Wait until all notes have been attacked
+ advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
+ // + the release timeout
+ advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
+ // + all the other notes have been released
+ advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(last_noteon, 0);
+ EXPECT_EQ(last_noteoff, MI_C);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldEnterPausePhaseAfterRelease) {
+ setUpMatrixScanSequencerTest();
+
+ sequencer_internal_state.current_step = 0;
+ sequencer_internal_state.current_track = 0;
+ sequencer_internal_state.phase = SEQUENCER_PHASE_RELEASE;
+
+ // Wait until all notes have been attacked
+ advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
+ // + the release timeout
+ advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
+ // + all the other notes have been released
+ advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(sequencer_internal_state.current_step, 0);
+ EXPECT_EQ(sequencer_internal_state.current_track, 0);
+ EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_PAUSE);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldProcessFirstTrackOfSecondStepAfterPause) {
+ setUpMatrixScanSequencerTest();
+
+ sequencer_internal_state.current_step = 0;
+ sequencer_internal_state.current_track = 0;
+ sequencer_internal_state.phase = SEQUENCER_PHASE_PAUSE;
+
+ // Wait until all notes have been attacked
+ advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
+ // + the release timeout
+ advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
+ // + all the other notes have been released
+ advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
+ // + the step duration (one 16th at tempo=120 lasts 125ms)
+ advance_time(125);
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(sequencer_internal_state.current_step, 1);
+ EXPECT_EQ(sequencer_internal_state.current_track, 1);
+ EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_ATTACK);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldProcessSecondTrackTooEarly) {
+ setUpMatrixScanSequencerTest();
+
+ sequencer_internal_state.current_step = 2;
+ sequencer_internal_state.current_track = 1;
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(last_noteon, 0);
+ EXPECT_EQ(last_noteoff, 0);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldProcessSecondTrackOnTime) {
+ setUpMatrixScanSequencerTest();
+
+ sequencer_internal_state.current_step = 2;
+ sequencer_internal_state.current_track = 1;
+
+ // Wait until first track has been attacked
+ advance_time(SEQUENCER_TRACK_THROTTLE);
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(last_noteon, MI_D);
+ EXPECT_EQ(last_noteoff, 0);
+}
+
+TEST_F(SequencerTest, TestMatrixScanSequencerShouldLoopOnceSequenceIsOver) {
+ setUpMatrixScanSequencerTest();
+
+ sequencer_internal_state.current_step = SEQUENCER_STEPS - 1;
+ sequencer_internal_state.current_track = 0;
+ sequencer_internal_state.phase = SEQUENCER_PHASE_PAUSE;
+
+ // Wait until all notes have been attacked
+ advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
+ // + the release timeout
+ advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
+ // + all the other notes have been released
+ advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
+ // + the step duration (one 16th at tempo=120 lasts 125ms)
+ advance_time(125);
+
+ matrix_scan_sequencer();
+ EXPECT_EQ(sequencer_internal_state.current_step, 0);
+ EXPECT_EQ(sequencer_internal_state.current_track, 1);
+ EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_ATTACK);
+}
diff --git a/quantum/sequencer/tests/testlist.mk b/quantum/sequencer/tests/testlist.mk
new file mode 100644
index 0000000000..bb38991109
--- /dev/null
+++ b/quantum/sequencer/tests/testlist.mk
@@ -0,0 +1 @@
+TEST_LIST += sequencer
diff --git a/quantum/split_common/matrix.c b/quantum/split_common/matrix.c
index 5bad9db08f..cd5a024c3d 100644
--- a/quantum/split_common/matrix.c
+++ b/quantum/split_common/matrix.c
@@ -45,6 +45,19 @@ uint8_t thisHand, thatHand;
// user-defined overridable functions
__attribute__((weak)) void matrix_slave_scan_user(void) {}
+static inline void setPinOutput_writeLow(pin_t pin) {
+ ATOMIC_BLOCK_FORCEON {
+ setPinOutput(pin);
+ writePinLow(pin);
+ }
+}
+
+static inline void setPinInputHigh_atomic(pin_t pin) {
+ ATOMIC_BLOCK_FORCEON {
+ setPinInputHigh(pin);
+ }
+}
+
// matrix code
#ifdef DIRECT_PINS
@@ -83,22 +96,23 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
# if (DIODE_DIRECTION == COL2ROW)
static void select_row(uint8_t row) {
- setPinOutput(row_pins[row]);
- writePinLow(row_pins[row]);
+ setPinOutput_writeLow(row_pins[row]);
}
-static void unselect_row(uint8_t row) { setPinInputHigh(row_pins[row]); }
+static void unselect_row(uint8_t row) {
+ setPinInputHigh_atomic(row_pins[row]);
+}
static void unselect_rows(void) {
for (uint8_t x = 0; x < ROWS_PER_HAND; x++) {
- setPinInputHigh(row_pins[x]);
+ setPinInputHigh_atomic(row_pins[x]);
}
}
static void init_pins(void) {
unselect_rows();
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
- setPinInputHigh(col_pins[x]);
+ setPinInputHigh_atomic(col_pins[x]);
}
}
@@ -133,22 +147,23 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
# elif (DIODE_DIRECTION == ROW2COL)
static void select_col(uint8_t col) {
- setPinOutput(col_pins[col]);
- writePinLow(col_pins[col]);
+ setPinOutput_writeLow(col_pins[col]);
}
-static void unselect_col(uint8_t col) { setPinInputHigh(col_pins[col]); }
+static void unselect_col(uint8_t col) {
+ setPinInputHigh_atomic(col_pins[col]);
+}
static void unselect_cols(void) {
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
- setPinInputHigh(col_pins[x]);
+ setPinInputHigh_atomic(col_pins[x]);
}
}
static void init_pins(void) {
unselect_cols();
for (uint8_t x = 0; x < ROWS_PER_HAND; x++) {
- setPinInputHigh(row_pins[x]);
+ setPinInputHigh_atomic(row_pins[x]);
}
}
diff --git a/requirements.txt b/requirements.txt
index d20803577e..6e907cf8e8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,7 +1,7 @@
# Python requirements
-# milc FIXME(skullydazed): Included in the repo for now.
appdirs
argcomplete
colorama
hjson
+milc
pygments
diff --git a/show_options.mk b/show_options.mk
index 2a57817735..df3d039571 100644
--- a/show_options.mk
+++ b/show_options.mk
@@ -20,6 +20,7 @@ HARDWARE_OPTION_NAMES = \
RGBLIGHT_ENABLE \
RGBLIGHT_CUSTOM_DRIVER \
RGB_MATRIX_ENABLE \
+ RGB_MATRIX_DRIVER \
SERIAL_LINK_ENABLE \
CIE1931_CURVE \
MIDI_ENABLE \
diff --git a/testlist.mk b/testlist.mk
index d949fb3eae..ca1408806c 100644
--- a/testlist.mk
+++ b/testlist.mk
@@ -1,6 +1,7 @@
TEST_LIST = $(notdir $(patsubst %/rules.mk,%,$(wildcard $(ROOT_DIR)/tests/*/rules.mk)))
FULL_TESTS := $(TEST_LIST)
+include $(ROOT_DIR)/quantum/sequencer/tests/testlist.mk
include $(ROOT_DIR)/quantum/serial_link/tests/testlist.mk
define VALIDATE_TEST_LIST
diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk
index 2bd53f0dc8..e53edccee2 100644
--- a/tmk_core/chibios.mk
+++ b/tmk_core/chibios.mk
@@ -123,6 +123,8 @@ else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/chconf.h)","")
CHCONFDIR = $(KEYBOARD_PATH_1)
else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/configs/chconf.h)","")
CHCONFDIR = $(TOP_DIR)/platforms/chibios/$(BOARD)/configs
+else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/common/configs/chconf.h)","")
+ CHCONFDIR = $(TOP_DIR)/platforms/chibios/common/configs
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/halconf.h)","")
@@ -137,6 +139,8 @@ else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/halconf.h)","")
HALCONFDIR = $(KEYBOARD_PATH_1)
else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/configs/halconf.h)","")
HALCONFDIR = $(TOP_DIR)/platforms/chibios/$(BOARD)/configs
+else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/common/configs/halconf.h)","")
+ HALCONFDIR = $(TOP_DIR)/platforms/chibios/common/configs
endif
# HAL-OSAL files (optional).
@@ -183,8 +187,8 @@ else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld)","")
LDSCRIPT = $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld
else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld)","")
LDSCRIPT = $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld
-else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/ld/$(MCU_LDSCRIPT).ld)","")
- LDSCRIPT = $(TOP_DIR)/platforms/chibios/ld/$(MCU_LDSCRIPT).ld
+else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/common/ld/$(MCU_LDSCRIPT).ld)","")
+ LDSCRIPT = $(TOP_DIR)/platforms/chibios/common/ld/$(MCU_LDSCRIPT).ld
else ifneq ("$(wildcard $(STARTUPLD_CONTRIB)/$(MCU_LDSCRIPT).ld)","")
LDSCRIPT = $(STARTUPLD_CONTRIB)/$(MCU_LDSCRIPT).ld
USE_CHIBIOS_CONTRIB = yes
@@ -209,6 +213,8 @@ CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC))
EXTRAINCDIRS += $(CHIBIOS)/os/license $(CHIBIOS)/os/oslib/include \
$(TOP_DIR)/platforms/chibios/$(BOARD)/configs \
+ $(TOP_DIR)/platforms/chibios/common/configs \
+ $(HALCONFDIR) $(CHCONFDIR) \
$(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
$(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
$(STREAMSINC) $(CHIBIOS)/os/various $(COMMON_VPATH)
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c
index ee9aa0df77..77da0139f2 100644
--- a/tmk_core/common/action.c
+++ b/tmk_core/common/action.c
@@ -37,9 +37,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# include "nodebug.h"
#endif
+#ifdef POINTING_DEVICE_ENABLE
+# include "pointing_device.h"
+#endif
+
int tp_buttons;
-#ifdef RETRO_TAPPING
+#if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY)
int retro_tapping_counter = 0;
#endif
@@ -51,6 +55,10 @@ int retro_tapping_counter = 0;
__attribute__((weak)) bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { return false; }
#endif
+#ifdef RETRO_TAPPING_PER_KEY
+__attribute__((weak)) bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) { return false; }
+#endif
+
#ifndef TAP_CODE_DELAY
# define TAP_CODE_DELAY 0
#endif
@@ -67,7 +75,7 @@ void action_exec(keyevent_t event) {
dprint("EVENT: ");
debug_event(event);
dprintln();
-#ifdef RETRO_TAPPING
+#if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY)
retro_tapping_counter++;
#endif
}
@@ -220,6 +228,19 @@ void process_record_handler(keyrecord_t *record) {
process_action(record, action);
}
+#if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE)
+void register_button(bool pressed, enum mouse_buttons button) {
+# ifdef PS2_MOUSE_ENABLE
+ tp_buttons = pressed ? tp_buttons | button : tp_buttons & ~button;
+# endif
+# ifdef POINTING_DEVICE_ENABLE
+ report_mouse_t currentReport = pointing_device_get_report();
+ currentReport.buttons = pressed ? currentReport.buttons | button : currentReport.buttons & ~button;
+ pointing_device_set_report(currentReport);
+# endif
+}
+#endif
+
/** \brief Take an action and processes it.
*
* FIXME: Needs documentation.
@@ -404,15 +425,23 @@ void process_action(keyrecord_t *record, action_t action) {
if (event.pressed) {
mousekey_on(action.key.code);
switch (action.key.code) {
-# ifdef PS2_MOUSE_ENABLE
+# if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE)
case KC_MS_BTN1:
- tp_buttons |= (1 << 0);
+ register_button(true, MOUSE_BTN1);
break;
case KC_MS_BTN2:
- tp_buttons |= (1 << 1);
+ register_button(true, MOUSE_BTN2);
break;
case KC_MS_BTN3:
- tp_buttons |= (1 << 2);
+ register_button(true, MOUSE_BTN3);
+ break;
+# endif
+# ifdef POINTING_DEVICE_ENABLE
+ case KC_MS_BTN4:
+ register_button(true, MOUSE_BTN4);
+ break;
+ case KC_MS_BTN5:
+ register_button(true, MOUSE_BTN5);
break;
# endif
default:
@@ -422,15 +451,23 @@ void process_action(keyrecord_t *record, action_t action) {
} else {
mousekey_off(action.key.code);
switch (action.key.code) {
-# ifdef PS2_MOUSE_ENABLE
+# if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE)
case KC_MS_BTN1:
- tp_buttons &= ~(1 << 0);
+ register_button(false, MOUSE_BTN1);
break;
case KC_MS_BTN2:
- tp_buttons &= ~(1 << 1);
+ register_button(false, MOUSE_BTN2);
break;
case KC_MS_BTN3:
- tp_buttons &= ~(1 << 2);
+ register_button(false, MOUSE_BTN3);
+ break;
+# endif
+# ifdef POINTING_DEVICE_ENABLE
+ case KC_MS_BTN4:
+ register_button(false, MOUSE_BTN4);
+ break;
+ case KC_MS_BTN5:
+ register_button(false, MOUSE_BTN5);
break;
# endif
default:
@@ -692,20 +729,23 @@ void process_action(keyrecord_t *record, action_t action) {
#endif
#ifndef NO_ACTION_TAPPING
-# ifdef RETRO_TAPPING
+# if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY)
if (!is_tap_action(action)) {
retro_tapping_counter = 0;
} else {
if (event.pressed) {
if (tap_count > 0) {
retro_tapping_counter = 0;
- } else {
}
} else {
if (tap_count > 0) {
retro_tapping_counter = 0;
} else {
- if (retro_tapping_counter == 2) {
+ if (
+# ifdef RETRO_TAPPING_PER_KEY
+ get_retro_tapping(get_event_keycode(record->event, false), record) &&
+# endif
+ retro_tapping_counter == 2) {
tap_code(action.layer_tap.code);
}
retro_tapping_counter = 0;
diff --git a/tmk_core/common/action_util.c b/tmk_core/common/action_util.c
index fd0e4409f0..000503b082 100644
--- a/tmk_core/common/action_util.c
+++ b/tmk_core/common/action_util.c
@@ -290,6 +290,32 @@ void set_macro_mods(uint8_t mods) { macro_mods = mods; }
void clear_macro_mods(void) { macro_mods = 0; }
#ifndef NO_ACTION_ONESHOT
+/** \brief get oneshot mods
+ *
+ * FIXME: needs doc
+ */
+uint8_t get_oneshot_mods(void) { return oneshot_mods; }
+
+void add_oneshot_mods(uint8_t mods) {
+ if ((oneshot_mods & mods) != mods) {
+# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
+ oneshot_time = timer_read();
+# endif
+ oneshot_mods |= mods;
+ oneshot_mods_changed_kb(mods);
+ }
+}
+
+void del_oneshot_mods(uint8_t mods) {
+ if (oneshot_mods & mods) {
+ oneshot_mods &= ~mods;
+# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
+ oneshot_time = oneshot_mods ? timer_read() : 0;
+# endif
+ oneshot_mods_changed_kb(oneshot_mods);
+ }
+}
+
/** \brief set oneshot mods
*
* FIXME: needs doc
@@ -316,11 +342,6 @@ void clear_oneshot_mods(void) {
oneshot_mods_changed_kb(oneshot_mods);
}
}
-/** \brief get oneshot mods
- *
- * FIXME: needs doc
- */
-uint8_t get_oneshot_mods(void) { return oneshot_mods; }
#endif
/** \brief Called when the one shot modifiers have been changed.
diff --git a/tmk_core/common/action_util.h b/tmk_core/common/action_util.h
index 5dd8393da4..743ff1406b 100644
--- a/tmk_core/common/action_util.h
+++ b/tmk_core/common/action_util.h
@@ -57,12 +57,11 @@ void set_macro_mods(uint8_t mods);
void clear_macro_mods(void);
/* oneshot modifier */
-void set_oneshot_mods(uint8_t mods);
uint8_t get_oneshot_mods(void);
+void add_oneshot_mods(uint8_t mods);
+void del_oneshot_mods(uint8_t mods);
+void set_oneshot_mods(uint8_t mods);
void clear_oneshot_mods(void);
-void oneshot_toggle(void);
-void oneshot_enable(void);
-void oneshot_disable(void);
bool has_oneshot_mods_timed_out(void);
uint8_t get_oneshot_locked_mods(void);
diff --git a/tmk_core/common/arm_atsam/suspend.c b/tmk_core/common/arm_atsam/suspend.c
index d1077be4c2..e51426128d 100644
--- a/tmk_core/common/arm_atsam/suspend.c
+++ b/tmk_core/common/arm_atsam/suspend.c
@@ -1,6 +1,6 @@
#include "matrix.h"
#include "i2c_master.h"
-#include "led_matrix.h"
+#include "md_rgb_matrix.h"
#include "suspend.h"
/** \brief Suspend idle
diff --git a/tmk_core/common/chibios/bootloader.c b/tmk_core/common/chibios/bootloader.c
index 7b2cf5c435..f6d016ec9d 100644
--- a/tmk_core/common/chibios/bootloader.c
+++ b/tmk_core/common/chibios/bootloader.c
@@ -32,7 +32,7 @@
extern uint32_t __ram0_end__;
-void bootloader_jump(void) {
+__attribute__((weak)) void bootloader_jump(void) {
// For STM32 MCUs with dual-bank flash, and we're incapable of jumping to the bootloader. The first valid flash
// bank is executed unconditionally after a reset, so it doesn't enter DFU unless BOOT0 is high. Instead, we do
// it with hardware...in this case, we pull a GPIO high/low depending on the configuration, connects 3.3V to
@@ -58,7 +58,7 @@ void enter_bootloader_mode_if_requested(void) {} // not needed at all, but if a
extern uint32_t __ram0_end__;
-void bootloader_jump(void) {
+__attribute__((weak)) void bootloader_jump(void) {
*MAGIC_ADDR = BOOTLOADER_MAGIC; // set magic flag => reset handler will jump into boot loader
NVIC_SystemReset();
}
@@ -85,8 +85,8 @@ void enter_bootloader_mode_if_requested(void) {
# if defined(BOOTLOADER_KIIBOHD)
/* Kiibohd Bootloader (MCHCK and Infinity KB) */
# define SCB_AIRCR_VECTKEY_WRITEMAGIC 0x05FA0000
-const uint8_t sys_reset_to_loader_magic[] = "\xff\x00\x7fRESET TO LOADER\x7f\x00\xff";
-void bootloader_jump(void) {
+const uint8_t sys_reset_to_loader_magic[] = "\xff\x00\x7fRESET TO LOADER\x7f\x00\xff";
+__attribute__((weak)) void bootloader_jump(void) {
__builtin_memcpy((void *)VBAT, (const void *)sys_reset_to_loader_magic, sizeof(sys_reset_to_loader_magic));
// request reset
SCB->AIRCR = SCB_AIRCR_VECTKEY_WRITEMAGIC | SCB_AIRCR_SYSRESETREQ_Msk;
@@ -95,7 +95,7 @@ void bootloader_jump(void) {
# else /* defined(BOOTLOADER_KIIBOHD) */
/* Default for Kinetis - expecting an ARM Teensy */
# include "wait.h"
-void bootloader_jump(void) {
+__attribute__((weak)) void bootloader_jump(void) {
wait_ms(100);
__BKPT(0);
}
diff --git a/tmk_core/common/eeconfig.c b/tmk_core/common/eeconfig.c
index fe56c57d11..e15897552f 100644
--- a/tmk_core/common/eeconfig.c
+++ b/tmk_core/common/eeconfig.c
@@ -13,6 +13,10 @@
# include "eeprom_driver.h"
#endif
+#if defined(HAPTIC_ENABLE)
+# include "haptic.h"
+#endif
+
/** \brief eeconfig enable
*
* FIXME: needs doc
@@ -65,6 +69,15 @@ void eeconfig_init_quantum(void) {
eeprom_update_byte(EECONFIG_HANDEDNESS, 0);
#endif
+#if defined(HAPTIC_ENABLE)
+ haptic_reset();
+#else
+ // this is used in case haptic is disabled, but we still want sane defaults
+ // in the haptic configuration eeprom. All zero will trigger a haptic_reset
+ // when a haptic-enabled firmware is loaded onto the keyboard.
+ eeprom_update_dword(EECONFIG_HAPTIC, 0);
+#endif
+
eeconfig_init_kb();
}
diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c
index b0394af003..8c7bdc8b55 100644
--- a/tmk_core/common/keyboard.c
+++ b/tmk_core/common/keyboard.c
@@ -235,6 +235,20 @@ __attribute__((weak)) bool is_keyboard_left(void) { return true; }
*/
__attribute__((weak)) bool should_process_keypress(void) { return is_keyboard_master(); }
+/** \brief housekeeping_task_kb
+ *
+ * Override this function if you have a need to execute code for every keyboard main loop iteration.
+ * This is specific to keyboard-level functionality.
+ */
+__attribute__((weak)) void housekeeping_task_kb(void) {}
+
+/** \brief housekeeping_task_user
+ *
+ * Override this function if you have a need to execute code for every keyboard main loop iteration.
+ * This is specific to user/keymap-level functionality.
+ */
+__attribute__((weak)) void housekeeping_task_user(void) {}
+
/** \brief keyboard_init
*
* FIXME: needs doc
@@ -291,6 +305,10 @@ void keyboard_init(void) {
dip_switch_init();
#endif
+#if defined(DEBUG_MATRIX_SCAN_RATE) && defined(CONSOLE_ENABLE)
+ debug_enable = true;
+#endif
+
keyboard_post_init_kb(); /* Always keep this last */
}
@@ -315,6 +333,9 @@ void keyboard_task(void) {
uint8_t keys_processed = 0;
#endif
+ housekeeping_task_kb();
+ housekeeping_task_user();
+
#if defined(OLED_DRIVER_ENABLE) && !defined(OLED_DISABLE_TIMEOUT)
uint8_t ret = matrix_scan();
#else
diff --git a/tmk_core/common/keyboard.h b/tmk_core/common/keyboard.h
index 79d9490898..caa18e7e76 100644
--- a/tmk_core/common/keyboard.h
+++ b/tmk_core/common/keyboard.h
@@ -71,6 +71,9 @@ void keyboard_pre_init_user(void);
void keyboard_post_init_kb(void);
void keyboard_post_init_user(void);
+void housekeeping_task_kb(void);
+void housekeeping_task_user(void);
+
#ifdef __cplusplus
}
#endif
diff --git a/tmk_core/common/matrix.h b/tmk_core/common/matrix.h
index 78506059e6..31ec844302 100644
--- a/tmk_core/common/matrix.h
+++ b/tmk_core/common/matrix.h
@@ -30,16 +30,6 @@ typedef uint32_t matrix_row_t;
# error "MATRIX_COLS: invalid value"
#endif
-#if (MATRIX_ROWS <= 8)
-typedef uint8_t matrix_col_t;
-#elif (MATRIX_ROWS <= 16)
-typedef uint16_t matrix_col_t;
-#elif (MATRIX_ROWS <= 32)
-typedef uint32_t matrix_col_t;
-#else
-# error "MATRIX_ROWS: invalid value"
-#endif
-
#define MATRIX_ROW_SHIFTER ((matrix_row_t)1)
#define MATRIX_IS_ON(row, col) (matrix_get_row(row) && (1 << col))
diff --git a/tmk_core/common/report.h b/tmk_core/common/report.h
index 1aa33c998d..610addf431 100644
--- a/tmk_core/common/report.h
+++ b/tmk_core/common/report.h
@@ -192,7 +192,11 @@ typedef struct {
typedef struct {
#if JOYSTICK_AXES_COUNT > 0
+# if JOYSTICK_AXES_RESOLUTION > 8
+ int16_t axes[JOYSTICK_AXES_COUNT];
+# else
int8_t axes[JOYSTICK_AXES_COUNT];
+# endif
#endif
#if JOYSTICK_BUTTON_COUNT > 0
diff --git a/tmk_core/protocol/arm_atsam.mk b/tmk_core/protocol/arm_atsam.mk
index 8d6f724f09..5bb45d658e 100644
--- a/tmk_core/protocol/arm_atsam.mk
+++ b/tmk_core/protocol/arm_atsam.mk
@@ -4,9 +4,9 @@ SRC += $(ARM_ATSAM_DIR)/adc.c
SRC += $(ARM_ATSAM_DIR)/clks.c
SRC += $(ARM_ATSAM_DIR)/d51_util.c
SRC += $(ARM_ATSAM_DIR)/i2c_master.c
-ifeq ($(RGB_MATRIX_ENABLE),custom)
- SRC += $(ARM_ATSAM_DIR)/led_matrix_programs.c
- SRC += $(ARM_ATSAM_DIR)/led_matrix.c
+ifeq ($(RGB_MATRIX_DRIVER),custom)
+ SRC += $(ARM_ATSAM_DIR)/md_rgb_matrix_programs.c
+ SRC += $(ARM_ATSAM_DIR)/md_rgb_matrix.c
endif
SRC += $(ARM_ATSAM_DIR)/main_arm_atsam.c
SRC += $(ARM_ATSAM_DIR)/spi.c
diff --git a/tmk_core/protocol/arm_atsam/arm_atsam_protocol.h b/tmk_core/protocol/arm_atsam/arm_atsam_protocol.h
index 8cb00b872a..d126c66e7d 100644
--- a/tmk_core/protocol/arm_atsam/arm_atsam_protocol.h
+++ b/tmk_core/protocol/arm_atsam/arm_atsam_protocol.h
@@ -35,7 +35,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# include "main_arm_atsam.h"
# ifdef RGB_MATRIX_ENABLE
-# include "led_matrix.h"
+# include "md_rgb_matrix.h"
# include "rgb_matrix.h"
# endif
# include "issi3733_driver.h"
diff --git a/tmk_core/protocol/arm_atsam/main_arm_atsam.c b/tmk_core/protocol/arm_atsam/main_arm_atsam.c
index e4e79d3510..e10be52fb8 100644
--- a/tmk_core/protocol/arm_atsam/main_arm_atsam.c
+++ b/tmk_core/protocol/arm_atsam/main_arm_atsam.c
@@ -305,6 +305,10 @@ int main(void) {
// dprintf("5v=%u 5vu=%u dlow=%u dhi=%u gca=%u gcd=%u\r\n", v_5v, v_5v_avg, v_5v_avg - V5_LOW, v_5v_avg - V5_HIGH, gcr_actual, gcr_desired);
}
#endif // CONSOLE_ENABLE
+
+ // Run housekeeping
+ housekeeping_task_kb();
+ housekeeping_task_user();
}
return 1;
diff --git a/tmk_core/protocol/arm_atsam/led_matrix.c b/tmk_core/protocol/arm_atsam/md_rgb_matrix.c
index 69cb03a9f7..439aaf8b38 100644
--- a/tmk_core/protocol/arm_atsam/led_matrix.c
+++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix.c
@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef USE_MASSDROP_CONFIGURATOR
__attribute__((weak)) led_instruction_t led_instructions[] = {{.end = 1}};
-static void led_matrix_massdrop_config_override(int i);
+static void md_rgb_matrix_config_override(int i);
#endif // USE_MASSDROP_CONFIGURATOR
void SERCOM1_0_Handler(void) {
@@ -188,7 +188,7 @@ void issi3733_prepare_arrays(void) {
}
}
-void led_matrix_prepare(void) {
+void md_rgb_matrix_prepare(void) {
for (uint8_t i = 0; i < ISSI3733_LED_COUNT; i++) {
*led_map[i].rgb.r = 0;
*led_map[i].rgb.g = 0;
@@ -199,7 +199,7 @@ void led_matrix_prepare(void) {
void led_set_one(int i, uint8_t r, uint8_t g, uint8_t b) {
if (i < ISSI3733_LED_COUNT) {
#ifdef USE_MASSDROP_CONFIGURATOR
- led_matrix_massdrop_config_override(i);
+ md_rgb_matrix_config_override(i);
#else
led_buffer[i].r = r;
led_buffer[i].g = g;
@@ -219,7 +219,7 @@ void init(void) {
issi3733_prepare_arrays();
- led_matrix_prepare();
+ md_rgb_matrix_prepare();
gcr_min_counter = 0;
v_5v_cat_hit = 0;
@@ -290,7 +290,7 @@ void flush(void) {
i2c_led_q_run();
}
-void led_matrix_indicators(void) {
+void md_rgb_matrix_indicators(void) {
uint8_t kbled = keyboard_leds();
if (kbled && rgb_matrix_config.enable) {
for (uint8_t i = 0; i < ISSI3733_LED_COUNT; i++) {
@@ -397,7 +397,7 @@ static void led_run_pattern(led_setup_t* f, float* ro, float* go, float* bo, flo
}
}
-static void led_matrix_massdrop_config_override(int i) {
+static void md_rgb_matrix_config_override(int i) {
float ro = 0;
float go = 0;
float bo = 0;
diff --git a/tmk_core/protocol/arm_atsam/led_matrix.h b/tmk_core/protocol/arm_atsam/md_rgb_matrix.h
index 8eaa5623bd..322b0f99d1 100644
--- a/tmk_core/protocol/arm_atsam/led_matrix.h
+++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix.h
@@ -86,7 +86,7 @@ extern uint8_t gcr_actual_last;
void gcr_compute(void);
-void led_matrix_indicators(void);
+void md_rgb_matrix_indicators(void);
/*------------------------- Legacy Lighting Support ------------------------*/
diff --git a/tmk_core/protocol/arm_atsam/led_matrix_programs.c b/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c
index 360102ba84..b43008cc5b 100644
--- a/tmk_core/protocol/arm_atsam/led_matrix_programs.c
+++ b/tmk_core/protocol/arm_atsam/md_rgb_matrix_programs.c
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef USE_MASSDROP_CONFIGURATOR
-# include "led_matrix.h"
+# include "md_rgb_matrix.h"
// Teal <-> Salmon
led_setup_t leds_teal_salmon[] = {
diff --git a/tmk_core/protocol/chibios/main.c b/tmk_core/protocol/chibios/main.c
index a0d28f9afc..400c0b8f53 100644
--- a/tmk_core/protocol/chibios/main.c
+++ b/tmk_core/protocol/chibios/main.c
@@ -54,6 +54,9 @@
#ifdef STM32_EEPROM_ENABLE
# include "eeprom_stm32.h"
#endif
+#ifdef EEPROM_DRIVER
+# include "eeprom_driver.h"
+#endif
#include "suspend.h"
#include "wait.h"
@@ -150,6 +153,9 @@ int main(void) {
#ifdef STM32_EEPROM_ENABLE
EEPROM_Init();
#endif
+#ifdef EEPROM_DRIVER
+ eeprom_driver_init();
+#endif
// TESTING
// chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
@@ -230,6 +236,7 @@ int main(void) {
/* Remote wakeup */
if (suspend_wakeup_condition()) {
usbWakeupHost(&USB_DRIVER);
+ restart_usb_driver(&USB_DRIVER);
}
}
/* Woken up */
@@ -258,5 +265,9 @@ int main(void) {
#ifdef RAW_ENABLE
raw_hid_task();
#endif
+
+ // Run housekeeping
+ housekeeping_task_kb();
+ housekeeping_task_user();
}
}
diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c
index ae33e86a70..bb4bf6a580 100644
--- a/tmk_core/protocol/chibios/usb_main.c
+++ b/tmk_core/protocol/chibios/usb_main.c
@@ -165,6 +165,19 @@ static const USBEndpointConfig shared_ep_config = {
};
#endif
+#if STM32_USB_USE_OTG1
+typedef struct {
+ size_t queue_capacity_in;
+ size_t queue_capacity_out;
+ USBInEndpointState in_ep_state;
+ USBOutEndpointState out_ep_state;
+ USBInEndpointState int_ep_state;
+ USBEndpointConfig inout_ep_config;
+ USBEndpointConfig int_ep_config;
+ const QMKUSBConfig config;
+ QMKUSBDriver driver;
+} usb_driver_config_t;
+#else
typedef struct {
size_t queue_capacity_in;
size_t queue_capacity_out;
@@ -177,7 +190,54 @@ typedef struct {
const QMKUSBConfig config;
QMKUSBDriver driver;
} usb_driver_config_t;
+#endif
+#if STM32_USB_USE_OTG1
+/* Reusable initialization structure - see USBEndpointConfig comment at top of file */
+#define QMK_USB_DRIVER_CONFIG(stream, notification, fixedsize) \
+ { \
+ .queue_capacity_in = stream##_IN_CAPACITY, .queue_capacity_out = stream##_OUT_CAPACITY, \
+ .inout_ep_config = \
+ { \
+ stream##_IN_MODE, /* Interrupt EP */ \
+ NULL, /* SETUP packet notification callback */ \
+ qmkusbDataTransmitted, /* IN notification callback */ \
+ qmkusbDataReceived, /* OUT notification callback */ \
+ stream##_EPSIZE, /* IN maximum packet size */ \
+ stream##_EPSIZE, /* OUT maximum packet size */ \
+ NULL, /* IN Endpoint state */ \
+ NULL, /* OUT endpoint state */ \
+ 2, /* IN multiplier */ \
+ NULL /* SETUP buffer (not a SETUP endpoint) */ \
+ }, \
+ .int_ep_config = \
+ { \
+ USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ \
+ NULL, /* SETUP packet notification callback */ \
+ qmkusbInterruptTransmitted, /* IN notification callback */ \
+ NULL, /* OUT notification callback */ \
+ CDC_NOTIFICATION_EPSIZE, /* IN maximum packet size */ \
+ 0, /* OUT maximum packet size */ \
+ NULL, /* IN Endpoint state */ \
+ NULL, /* OUT endpoint state */ \
+ 2, /* IN multiplier */ \
+ NULL, /* SETUP buffer (not a SETUP endpoint) */ \
+ }, \
+ .config = { \
+ .usbp = &USB_DRIVER, \
+ .bulk_in = stream##_IN_EPNUM, \
+ .bulk_out = stream##_OUT_EPNUM, \
+ .int_in = notification, \
+ .in_buffers = stream##_IN_CAPACITY, \
+ .out_buffers = stream##_OUT_CAPACITY, \
+ .in_size = stream##_EPSIZE, \
+ .out_size = stream##_EPSIZE, \
+ .fixed_size = fixedsize, \
+ .ib = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]){}, \
+ .ob = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY, stream##_EPSIZE)]){}, \
+ } \
+ }
+#else
/* Reusable initialization structure - see USBEndpointConfig comment at top of file */
#define QMK_USB_DRIVER_CONFIG(stream, notification, fixedsize) \
{ \
@@ -235,6 +295,7 @@ typedef struct {
.ob = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY, stream##_EPSIZE)]){}, \
} \
}
+#endif
typedef struct {
union {
@@ -327,8 +388,12 @@ static void usb_event_cb(USBDriver *usbp, usbevent_t event) {
usbInitEndpointI(usbp, SHARED_IN_EPNUM, &shared_ep_config);
#endif
for (int i = 0; i < NUM_USB_DRIVERS; i++) {
+ #if STM32_USB_USE_OTG1
+ usbInitEndpointI(usbp, drivers.array[i].config.bulk_in, &drivers.array[i].inout_ep_config);
+ #else
usbInitEndpointI(usbp, drivers.array[i].config.bulk_in, &drivers.array[i].in_ep_config);
usbInitEndpointI(usbp, drivers.array[i].config.bulk_out, &drivers.array[i].out_ep_config);
+ #endif
if (drivers.array[i].config.int_in) {
usbInitEndpointI(usbp, drivers.array[i].config.int_in, &drivers.array[i].int_ep_config);
}
@@ -553,12 +618,21 @@ static const USBConfig usbcfg = {
*/
void init_usb_driver(USBDriver *usbp) {
for (int i = 0; i < NUM_USB_DRIVERS; i++) {
+ #if STM32_USB_USE_OTG1
+ QMKUSBDriver *driver = &drivers.array[i].driver;
+ drivers.array[i].inout_ep_config.in_state = &drivers.array[i].in_ep_state;
+ drivers.array[i].inout_ep_config.out_state = &drivers.array[i].out_ep_state;
+ drivers.array[i].int_ep_config.in_state = &drivers.array[i].int_ep_state;
+ qmkusbObjectInit(driver, &drivers.array[i].config);
+ qmkusbStart(driver, &drivers.array[i].config);
+ #else
QMKUSBDriver *driver = &drivers.array[i].driver;
drivers.array[i].in_ep_config.in_state = &drivers.array[i].in_ep_state;
drivers.array[i].out_ep_config.out_state = &drivers.array[i].out_ep_state;
drivers.array[i].int_ep_config.in_state = &drivers.array[i].int_ep_state;
qmkusbObjectInit(driver, &drivers.array[i].config);
qmkusbStart(driver, &drivers.array[i].config);
+ #endif
}
/*
@@ -574,6 +648,13 @@ void init_usb_driver(USBDriver *usbp) {
chVTObjectInit(&keyboard_idle_timer);
}
+void restart_usb_driver(USBDriver *usbp) {
+ usbStop(usbp);
+ usbDisconnectBus(usbp);
+ usbStart(usbp, &usbcfg);
+ usbConnectBus(usbp);
+}
+
/* ---------------------------------------------------------
* Keyboard functions
* ---------------------------------------------------------
diff --git a/tmk_core/protocol/chibios/usb_main.h b/tmk_core/protocol/chibios/usb_main.h
index 94baf9b35e..d8813f4801 100644
--- a/tmk_core/protocol/chibios/usb_main.h
+++ b/tmk_core/protocol/chibios/usb_main.h
@@ -35,6 +35,9 @@
/* Initialize the USB driver and bus */
void init_usb_driver(USBDriver *usbp);
+/* Restart the USB driver and bus */
+void restart_usb_driver(USBDriver *usbp);
+
/* ---------------
* Keyboard header
* ---------------
diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c
index cec0044026..878be7d342 100644
--- a/tmk_core/protocol/lufa/lufa.c
+++ b/tmk_core/protocol/lufa/lufa.c
@@ -1104,6 +1104,10 @@ int main(void) {
#if !defined(INTERRUPT_CONTROL_ENDPOINT)
USB_USBTask();
#endif
+
+ // Run housekeeping
+ housekeeping_task_kb();
+ housekeeping_task_user();
}
}
diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c
index f5d32445de..a0c0d4cdc8 100644
--- a/tmk_core/protocol/usb_descriptor.c
+++ b/tmk_core/protocol/usb_descriptor.c
@@ -41,6 +41,10 @@
#include "usb_descriptor.h"
#include "usb_descriptor_common.h"
+#ifdef JOYSTICK_ENABLE
+# include "joystick.h"
+#endif
+
// clang-format off
/*
@@ -308,10 +312,17 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] = {
HID_RI_USAGE(8, 0x35), // Rz
# endif
# if JOYSTICK_AXES_COUNT >= 1
- HID_RI_LOGICAL_MINIMUM(8, -127),
- HID_RI_LOGICAL_MAXIMUM(8, 127),
+ # if JOYSTICK_AXES_RESOLUTION == 8
+ HID_RI_LOGICAL_MINIMUM(8, -JOYSTICK_RESOLUTION),
+ HID_RI_LOGICAL_MAXIMUM(8, JOYSTICK_RESOLUTION),
HID_RI_REPORT_COUNT(8, JOYSTICK_AXES_COUNT),
HID_RI_REPORT_SIZE(8, 0x08),
+ # else
+ HID_RI_LOGICAL_MINIMUM(16, -JOYSTICK_RESOLUTION),
+ HID_RI_LOGICAL_MAXIMUM(16, JOYSTICK_RESOLUTION),
+ HID_RI_REPORT_COUNT(8, JOYSTICK_AXES_COUNT),
+ HID_RI_REPORT_SIZE(8, 0x10),
+ # endif
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
# endif
diff --git a/tmk_core/protocol/usb_descriptor.h b/tmk_core/protocol/usb_descriptor.h
index 02a4b1ce59..aa8863f43f 100644
--- a/tmk_core/protocol/usb_descriptor.h
+++ b/tmk_core/protocol/usb_descriptor.h
@@ -205,7 +205,11 @@ enum usb_endpoints {
#ifdef RAW_ENABLE
RAW_IN_EPNUM = NEXT_EPNUM,
+ #if STM32_USB_USE_OTG1
+ #define RAW_OUT_EPNUM RAW_IN_EPNUM
+ #else
RAW_OUT_EPNUM = NEXT_EPNUM,
+ #endif
#endif
#ifdef SHARED_EP_ENABLE
@@ -219,7 +223,11 @@ enum usb_endpoints {
// ChibiOS has enough memory and descriptor to actually enable the endpoint
// It could use the same endpoint numbers, as that's supported by ChibiOS
// But the QMK code currently assumes that the endpoint numbers are different
+ #if STM32_USB_USE_OTG1
+ #define CONSOLE_OUT_EPNUM CONSOLE_IN_EPNUM
+ #else
CONSOLE_OUT_EPNUM = NEXT_EPNUM,
+ #endif
# else
# define CONSOLE_OUT_EPNUM CONSOLE_IN_EPNUM
# endif
@@ -227,17 +235,29 @@ enum usb_endpoints {
#ifdef MIDI_ENABLE
MIDI_STREAM_IN_EPNUM = NEXT_EPNUM,
+ #if STM32_USB_USE_OTG1
+ #define MIDI_STREAM_OUT_EPNUM MIDI_STREAM_IN_EPNUM
+ #else
MIDI_STREAM_OUT_EPNUM = NEXT_EPNUM,
+ #endif
#endif
#ifdef VIRTSER_ENABLE
CDC_NOTIFICATION_EPNUM = NEXT_EPNUM,
CDC_IN_EPNUM = NEXT_EPNUM,
+ #if STM32_USB_USE_OTG1
+ #define CDC_OUT_EPNUM CDC_IN_EPNUM
+ #else
CDC_OUT_EPNUM = NEXT_EPNUM,
+ #endif
#endif
#ifdef JOYSTICK_ENABLE
JOYSTICK_IN_EPNUM = NEXT_EPNUM,
+ #if STM32_USB_USE_OTG1
+ JOYSTICK_OUT_EPNUM = JOYSTICK_IN_EPNUM,
+ #else
JOYSTICK_OUT_EPNUM = NEXT_EPNUM,
+ #endif
#endif
};
diff --git a/tmk_core/protocol/vusb/main.c b/tmk_core/protocol/vusb/main.c
index a57df5ce06..0e3447d926 100644
--- a/tmk_core/protocol/vusb/main.c
+++ b/tmk_core/protocol/vusb/main.c
@@ -153,6 +153,10 @@ int main(void) {
console_task();
}
#endif
+
+ // Run housekeeping
+ housekeeping_task_kb();
+ housekeeping_task_user();
} else if (suspend_wakeup_condition()) {
usb_remote_wakeup();
}
diff --git a/users/tominabox1/rules.mk b/users/tominabox1/rules.mk
index b70b128cf3..22b6a858f4 100644
--- a/users/tominabox1/rules.mk
+++ b/users/tominabox1/rules.mk
@@ -8,7 +8,7 @@ NKRO_ENABLE = yes
BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
ifeq ($(strip $(KEYBOARD)), crkbd/rev1)
-RGB_MATRIX_ENABLE = WS2812
+RGB_MATRIX_ENABLE = yes
EXTRAFLAGS += -flto
BOOTLOADER = qmk-dfu
OLED_DRIVER_ENABLE = yes
@@ -19,7 +19,6 @@ MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-# RGB_MATRIX_ENABLE = WS2812
endif
diff --git a/users/yanfali/config.h b/users/yanfali/config.h
index 2c427f0331..26517a9f64 100644
--- a/users/yanfali/config.h
+++ b/users/yanfali/config.h
@@ -1,6 +1,6 @@
#pragma once
-#ifdef KEYBOARD_maartenwut_plain60
+#ifdef KEYBOARD_evyd13_plain60
#define B7_AUDIO
#ifdef AUDIO_ENABLE
diff --git a/users/yanfali/rules.mk b/users/yanfali/rules.mk
index a7208daa2c..bf88c04528 100644
--- a/users/yanfali/rules.mk
+++ b/users/yanfali/rules.mk
@@ -6,7 +6,7 @@ LTO_ENABLE = yes
AUDIO_ENABLE = no
# only enable audio on specific boards
-ifeq ($(strip $(KEYBOARD)), maartenwut/plain60)
+ifeq ($(strip $(KEYBOARD)), evyd13/plain60)
AUDIO_ENABLE = yes
endif