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)
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
272define PARSE_RULE 272define PARSE_RULE
273 RULE := $1 273 RULE := $1
274 COMMANDS := 274 COMMANDS :=
275 REQUIRE_PLATFORM_KEY :=
275 # If the rule starts with all, then continue the parsing from 276 # If the rule starts with all, then continue the parsing from
276 # PARSE_ALL_KEYBOARDS 277 # PARSE_ALL_KEYBOARDS
277 ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true) 278 ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
278 KEYBOARD_RULE=all 279 KEYBOARD_RULE=all
279 $$(eval $$(call PARSE_ALL_KEYBOARDS)) 280 $$(eval $$(call PARSE_ALL_KEYBOARDS))
281 else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-avr),true)
282 KEYBOARD_RULE=all
283 REQUIRE_PLATFORM_KEY := avr
284 $$(eval $$(call PARSE_ALL_KEYBOARDS))
285 else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-chibios),true)
286 KEYBOARD_RULE=all
287 REQUIRE_PLATFORM_KEY := chibios
288 $$(eval $$(call PARSE_ALL_KEYBOARDS))
289 else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all-arm_atsam),true)
290 KEYBOARD_RULE=all
291 REQUIRE_PLATFORM_KEY := arm_atsam
292 $$(eval $$(call PARSE_ALL_KEYBOARDS))
280 else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true) 293 else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
281 $$(eval $$(call PARSE_TEST)) 294 $$(eval $$(call PARSE_TEST))
282 # If the rule starts with the name of a known keyboard, then continue 295 # If the rule starts with the name of a known keyboard, then continue
@@ -447,7 +460,7 @@ define PARSE_KEYMAP
447 # Format it in bold 460 # Format it in bold
448 KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR) 461 KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR)
449 # Specify the variables that we are passing forward to submake 462 # Specify the variables that we are passing forward to submake
450 MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) 463 MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM) REQUIRE_PLATFORM_KEY=$$(REQUIRE_PLATFORM_KEY)
451 # And the first part of the make command 464 # And the first part of the make command
452 MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET) 465 MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET)
453 # The message to display 466 # The message to display
@@ -466,6 +479,8 @@ define BUILD
466 LOG=$$$$($$(MAKE_CMD) $$(MAKE_VARS) SILENT=true 2>&1) ; \ 479 LOG=$$$$($$(MAKE_CMD) $$(MAKE_VARS) SILENT=true 2>&1) ; \
467 if [ $$$$? -gt 0 ]; \ 480 if [ $$$$? -gt 0 ]; \
468 then $$(PRINT_ERROR_PLAIN); \ 481 then $$(PRINT_ERROR_PLAIN); \
482 elif [ "$$$$LOG" = "skipped" ] ; \
483 then $$(PRINT_SKIPPED_PLAIN); \
469 elif [ "$$$$LOG" != "" ] ; \ 484 elif [ "$$$$LOG" != "" ] ; \
470 then $$(PRINT_WARNING_PLAIN); \ 485 then $$(PRINT_WARNING_PLAIN); \
471 else \ 486 else \
@@ -637,12 +652,13 @@ else
637endif 652endif
638ifndef SKIP_VERSION 653ifndef SKIP_VERSION
639BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S") 654BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
655else
656BUILD_DATE := 2020-01-01-00:00:00
657endif
658
640$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h) 659$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
641$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h) 660$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
642$(shell echo '#define CHIBIOS_VERSION "$(CHIBIOS_VERSION)"' >> $(ROOT_DIR)/quantum/version.h) 661$(shell echo '#define CHIBIOS_VERSION "$(CHIBIOS_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
643$(shell echo '#define CHIBIOS_CONTRIB_VERSION "$(CHIBIOS_CONTRIB_VERSION)"' >> $(ROOT_DIR)/quantum/version.h) 662$(shell echo '#define CHIBIOS_CONTRIB_VERSION "$(CHIBIOS_CONTRIB_VERSION)"' >> $(ROOT_DIR)/quantum/version.h)
644else
645BUILD_DATE := NA
646endif
647 663
648include $(ROOT_DIR)/testlist.mk 664include $(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)
317OPT_DEFS += $(TMK_COMMON_DEFS) 317OPT_DEFS += $(TMK_COMMON_DEFS)
318EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS) 318EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
319 319
320SKIP_COMPILE := no
321ifneq ($(REQUIRE_PLATFORM_KEY),)
322 ifneq ($(REQUIRE_PLATFORM_KEY),$(PLATFORM_KEY))
323 SKIP_COMPILE := yes
324 endif
325endif
326
320include $(TMK_PATH)/$(PLATFORM_KEY).mk 327include $(TMK_PATH)/$(PLATFORM_KEY).mk
321ifneq ($(strip $(PROTOCOL)),) 328ifneq ($(strip $(PROTOCOL)),)
322 include $(TMK_PATH)/protocol/$(strip $(shell echo $(PROTOCOL) | tr '[:upper:]' '[:lower:]')).mk 329 include $(TMK_PATH)/protocol/$(strip $(shell echo $(PROTOCOL) | tr '[:upper:]' '[:lower:]')).mk
@@ -352,7 +359,13 @@ $(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) $(GFXINC)
352$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG) 359$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
353 360
354# Default target. 361# Default target.
362ifeq ($(SKIP_COMPILE),no)
355all: build check-size 363all: build check-size
364else
365all:
366 echo "skipped" >&2
367endif
368
356build: elf cpfirmware 369build: elf cpfirmware
357check-size: build 370check-size: build
358objs-size: build 371objs-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
49 49
50include common_features.mk 50include common_features.mk
51include $(TMK_PATH)/common.mk 51include $(TMK_PATH)/common.mk
52include $(QUANTUM_PATH)/sequencer/tests/rules.mk
52include $(QUANTUM_PATH)/serial_link/tests/rules.mk 53include $(QUANTUM_PATH)/serial_link/tests/rules.mk
53ifneq ($(filter $(FULL_TESTS),$(TEST)),) 54ifneq ($(filter $(FULL_TESTS),$(TEST)),)
54include build_full_test.mk 55include 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
21COMMON_VPATH += $(QUANTUM_PATH)/audio 21COMMON_VPATH += $(QUANTUM_PATH)/audio
22COMMON_VPATH += $(QUANTUM_PATH)/process_keycode 22COMMON_VPATH += $(QUANTUM_PATH)/process_keycode
23COMMON_VPATH += $(QUANTUM_PATH)/api 23COMMON_VPATH += $(QUANTUM_PATH)/api
24COMMON_VPATH += $(QUANTUM_PATH)/sequencer
24COMMON_VPATH += $(DRIVER_PATH) 25COMMON_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 += \
21 $(QUANTUM_DIR)/keymap_common.c \ 21 $(QUANTUM_DIR)/keymap_common.c \
22 $(QUANTUM_DIR)/keycode_config.c 22 $(QUANTUM_DIR)/keycode_config.c
23 23
24ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), yes)
25 OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
26 CONSOLE_ENABLE = yes
27endif
28
24ifeq ($(strip $(API_SYSEX_ENABLE)), yes) 29ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
25 OPT_DEFS += -DAPI_SYSEX_ENABLE 30 OPT_DEFS += -DAPI_SYSEX_ENABLE
26 OPT_DEFS += -DAPI_ENABLE 31 OPT_DEFS += -DAPI_ENABLE
@@ -39,6 +44,13 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes)
39 SRC += $(QUANTUM_DIR)/audio/luts.c 44 SRC += $(QUANTUM_DIR)/audio/luts.c
40endif 45endif
41 46
47ifeq ($(strip $(SEQUENCER_ENABLE)), yes)
48 OPT_DEFS += -DSEQUENCER_ENABLE
49 MUSIC_ENABLE = yes
50 SRC += $(QUANTUM_DIR)/sequencer/sequencer.c
51 SRC += $(QUANTUM_DIR)/process_keycode/process_sequencer.c
52endif
53
42ifeq ($(strip $(MIDI_ENABLE)), yes) 54ifeq ($(strip $(MIDI_ENABLE)), yes)
43 OPT_DEFS += -DMIDI_ENABLE 55 OPT_DEFS += -DMIDI_ENABLE
44 MUSIC_ENABLE = yes 56 MUSIC_ENABLE = yes
@@ -156,12 +168,14 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
156 endif 168 endif
157endif 169endif
158 170
159VALID_MATRIX_TYPES := yes IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
160 171
161LED_MATRIX_ENABLE ?= no 172LED_MATRIX_ENABLE ?= no
162ifneq ($(strip $(LED_MATRIX_ENABLE)), no) 173VALID_LED_MATRIX_TYPES := IS31FL3731 custom
163 ifeq ($(filter $(LED_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),) 174# TODO: IS31FL3733 IS31FL3737 IS31FL3741
164 $(error LED_MATRIX_ENABLE="$(LED_MATRIX_ENABLE)" is not a valid matrix type) 175
176ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
177 ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
178 $(error LED_MATRIX_DRIVER="$(LED_MATRIX_DRIVER)" is not a valid matrix type)
165 else 179 else
166 BACKLIGHT_ENABLE = yes 180 BACKLIGHT_ENABLE = yes
167 BACKLIGHT_DRIVER = custom 181 BACKLIGHT_DRIVER = custom
@@ -169,21 +183,22 @@ ifneq ($(strip $(LED_MATRIX_ENABLE)), no)
169 SRC += $(QUANTUM_DIR)/led_matrix.c 183 SRC += $(QUANTUM_DIR)/led_matrix.c
170 SRC += $(QUANTUM_DIR)/led_matrix_drivers.c 184 SRC += $(QUANTUM_DIR)/led_matrix_drivers.c
171 endif 185 endif
172endif
173 186
174ifeq ($(strip $(LED_MATRIX_ENABLE)), IS31FL3731) 187 ifeq ($(strip $(LED_MATRIX_DRIVER)), IS31FL3731)
175 OPT_DEFS += -DIS31FL3731 188 OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
176 COMMON_VPATH += $(DRIVER_PATH)/issi 189 COMMON_VPATH += $(DRIVER_PATH)/issi
177 SRC += is31fl3731-simple.c 190 SRC += is31fl3731-simple.c
178 QUANTUM_LIB_SRC += i2c_master.c 191 QUANTUM_LIB_SRC += i2c_master.c
192 endif
179endif 193endif
180 194
181RGB_MATRIX_ENABLE ?= no 195RGB_MATRIX_ENABLE ?= no
196VALID_RGB_MATRIX_TYPES := IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom
182 197
183ifneq ($(strip $(RGB_MATRIX_ENABLE)), no) 198ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
184ifeq ($(filter $(RGB_MATRIX_ENABLE),$(VALID_MATRIX_TYPES)),) 199 ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
185 $(error RGB_MATRIX_ENABLE="$(RGB_MATRIX_ENABLE)" is not a valid matrix type) 200 $(error "$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
186endif 201 endif
187 OPT_DEFS += -DRGB_MATRIX_ENABLE 202 OPT_DEFS += -DRGB_MATRIX_ENABLE
188ifneq (,$(filter $(MCU), atmega16u2 atmega32u2)) 203ifneq (,$(filter $(MCU), atmega16u2 atmega32u2))
189 # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines 204 # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
@@ -194,51 +209,47 @@ endif
194 SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c 209 SRC += $(QUANTUM_DIR)/rgb_matrix_drivers.c
195 CIE1931_CURVE := yes 210 CIE1931_CURVE := yes
196 RGB_KEYCODES_ENABLE := yes 211 RGB_KEYCODES_ENABLE := yes
197endif
198
199ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
200 RGB_MATRIX_ENABLE := IS31FL3731
201endif
202 212
203ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3731) 213 ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3731)
204 OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE 214 OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
205 COMMON_VPATH += $(DRIVER_PATH)/issi 215 COMMON_VPATH += $(DRIVER_PATH)/issi
206 SRC += is31fl3731.c 216 SRC += is31fl3731.c
207 QUANTUM_LIB_SRC += i2c_master.c 217 QUANTUM_LIB_SRC += i2c_master.c
208endif 218 endif
209 219
210ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3733) 220 ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3733)
211 OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE 221 OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE
212 COMMON_VPATH += $(DRIVER_PATH)/issi 222 COMMON_VPATH += $(DRIVER_PATH)/issi
213 SRC += is31fl3733.c 223 SRC += is31fl3733.c
214 QUANTUM_LIB_SRC += i2c_master.c 224 QUANTUM_LIB_SRC += i2c_master.c
215endif 225 endif
216 226
217ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3737) 227 ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3737)
218 OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE 228 OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE
219 COMMON_VPATH += $(DRIVER_PATH)/issi 229 COMMON_VPATH += $(DRIVER_PATH)/issi
220 SRC += is31fl3737.c 230 SRC += is31fl3737.c
221 QUANTUM_LIB_SRC += i2c_master.c 231 QUANTUM_LIB_SRC += i2c_master.c
222endif 232 endif
223 233
224ifeq ($(strip $(RGB_MATRIX_ENABLE)), IS31FL3741) 234 ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3741)
225 OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE 235 OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE
226 COMMON_VPATH += $(DRIVER_PATH)/issi 236 COMMON_VPATH += $(DRIVER_PATH)/issi
227 SRC += is31fl3741.c 237 SRC += is31fl3741.c
228 QUANTUM_LIB_SRC += i2c_master.c 238 QUANTUM_LIB_SRC += i2c_master.c
229endif 239 endif
230 240
231ifeq ($(strip $(RGB_MATRIX_ENABLE)), WS2812) 241 ifeq ($(strip $(RGB_MATRIX_DRIVER)), WS2812)
232 OPT_DEFS += -DWS2812 242 OPT_DEFS += -DWS2812
233 WS2812_DRIVER_REQUIRED := yes 243 WS2812_DRIVER_REQUIRED := yes
234endif 244 endif
235 245
236ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes) 246 ifeq ($(strip $(RGB_MATRIX_CUSTOM_KB)), yes)
237 OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB 247 OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB
238endif 248 endif
239 249
240ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes) 250 ifeq ($(strip $(RGB_MATRIX_CUSTOM_USER)), yes)
241 OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER 251 OPT_DEFS += -DRGB_MATRIX_CUSTOM_USER
252 endif
242endif 253endif
243 254
244ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes) 255ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes)
@@ -444,11 +455,14 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
444 # Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called. 455 # Functions added via QUANTUM_LIB_SRC are only included in the final binary if they're called.
445 # Unused functions are pruned away, which is why we can add multiple drivers here without bloat. 456 # Unused functions are pruned away, which is why we can add multiple drivers here without bloat.
446 ifeq ($(PLATFORM),AVR) 457 ifeq ($(PLATFORM),AVR)
447 QUANTUM_LIB_SRC += i2c_master.c \ 458 ifneq ($(NO_I2C),yes)
448 i2c_slave.c 459 QUANTUM_LIB_SRC += i2c_master.c \
460 i2c_slave.c
461 endif
449 endif 462 endif
450 463
451 SERIAL_DRIVER ?= bitbang 464 SERIAL_DRIVER ?= bitbang
465 OPT_DEFS += -DSERIAL_DRIVER_$(strip $(shell echo $(SERIAL_DRIVER) | tr '[:lower:]' '[:upper:]'))
452 ifeq ($(strip $(SERIAL_DRIVER)), bitbang) 466 ifeq ($(strip $(SERIAL_DRIVER)), bitbang)
453 QUANTUM_LIB_SRC += serial.c 467 QUANTUM_LIB_SRC += serial.c
454 else 468 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 @@
1# QMK Breaking Change - 2020 Nov 28 Changelog
2
3Four 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.
4
5
6## Changes Requiring User Action :id=changes-requiring-user-action
7
8### Relocated Keyboards :id-relocated-keyboards
9
10#### Reduce Helix keyboard build variation ([#8669](https://github.com/qmk/qmk_firmware/pull/8669))
11
12The build commands for the Helix keyboard are:
13
14```
15make <helix_build_name>:<keymap_name>
16```
17
18For `<helix_build_name>`, specify the one in the rightmost column of the table below, such as `helix`,` helix/pico`.
19
20| before Oct 17 2019 | Oct 17 2019 | Mar 10 2020 | Nov 28 2020 |
21| ---------------------|-------------------------|-------------------------| ------------------------|
22| helix/rev1 | helix/rev1 | helix/rev1 | helix/rev1 |
23| helix/pico | helix/pico | helix/pico | helix/pico |
24| | helix/pico/back | helix/pico/back | helix/pico/back |
25| | helix/pico/under | helix/pico/under | helix/pico/under |
26| | | helix/pico/sc | -- |
27| | | helix/pico/sc/back | helix/pico/sc |
28| | | helix/pico/sc/under | -- |
29| helix/rev2 (=helix) | helix/rev2 (=helix) | helix/rev2 (=helix) | -- |
30| | helix/rev2/back | helix/rev2/back | -- |
31| | helix/rev2/back/oled | helix/rev2/back/oled | ( --> helix/rev2/back) |
32| | helix/rev2/oled | helix/rev2/oled | helix/rev2 (=helix) |
33| | helix/rev2/oled/back | helix/rev2/oled/back | helix/rev2/back |
34| | helix/rev2/oled/under | helix/rev2/oled/under | helix/rev2/under |
35| | | helix/rev2/sc | -- |
36| | | helix/rev2/sc/back | -- |
37| | | helix/rev2/sc/oled | -- |
38| | | helix/rev2/sc/oledback | helix/rev2/sc |
39| | | helix/rev2/sc/oledunder | -- |
40| | | helix/rev2/sc/under | -- |
41| | helix/rev2/under | helix/rev2/under | -- |
42| | helix/rev2/under/oled | helix/rev2/under/oled | ( --> helix/rev2/under) |
43
44#### Update the Speedo firmware for v3.0 ([#10657](https://github.com/qmk/qmk_firmware/pull/10657))
45
46The Speedo keyboard has moved to `cozykeys/speedo/v2` as the designer prepares to release the Speedo v3.0.
47
48| Previous Name | New Name |
49| :------------ | :------------------------- |
50| speedo | cozykeys/speedo/v2 |
51| -- | cozykeys/speedo/v3 **new** |
52
53#### Maartenwut/Maarten name change to evyd13/Evy ([#10274](https://github.com/qmk/qmk_firmware/pull/10274))
54
55Maartenwut has rebranded as @evyd13, and all released Maartenwut boards have moved.
56
57| Previous Name | New Name |
58| :--------------------- | :----------------- |
59| maartenwut/atom47/rev2 | evyd13/atom47/rev2 |
60| maartenwut/atom47/rev3 | evyd13/atom47/rev3 |
61| maartenwut/eon40 | evyd13/eon40 |
62| maartenwut/eon65 | evyd13/eon65 |
63| maartenwut/eon75 | evyd13/eon75 |
64| maartenwut/eon87 | evyd13/eon87 |
65| maartenwut/eon95 | evyd13/eon95 |
66| maartenwut/gh80_1800 | evyd13/gh80_1800 |
67| maartenwut/gh80_3700 | evyd13/gh80_3700 |
68| maartenwut/minitomic | evyd13/minitomic |
69| maartenwut/mx5160 | evyd13/mx5160 |
70| maartenwut/nt660 | evyd13/nt660 |
71| maartenwut/omrontkl | evyd13/omrontkl |
72| maartenwut/plain60 | evyd13/plain60 |
73| maartenwut/pockettype | evyd13/pockettype |
74| maartenwut/quackfire | evyd13/quackfire |
75| maartenwut/solheim68 | evyd13/solheim68 |
76| maartenwut/ta65 | evyd13/ta65 |
77| maartenwut/wasdat | evyd13/wasdat |
78| maartenwut/wasdat_code | evyd13/wasdat_code |
79| maartenwut/wonderland | evyd13/wonderland |
80
81#### Xelus Valor and Dawn60 Refactors ([#10512](https://github.com/qmk/qmk_firmware/pull/10512), [#10584](https://github.com/qmk/qmk_firmware/pull/10584))
82
83The Valor and Dawn60 keyboards by Xelus22 both now require their revisions to be specified when compiling.
84
85| Previous Name | New Name |
86| :------------ | :---------------- |
87| xelus/dawn60 | xelus/dawn60/rev1 |
88| xelus/valor | xelus/valor/rev1 |
89
90
91### Updated Keyboard Codebases :id=keyboard-updates
92
93#### AEboards EXT65 Refactor ([#10820](https://github.com/qmk/qmk_firmware/pull/10820))
94
95The EXT65 codebase has been reworked so keymaps can be used with either revision.
96
97
98## Core Changes :id=core-changes
99
100### Fixes :id=core-fixes
101
102* 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))
103* Fix cursor position bug in oled_write_raw functions ([#10800](https://github.com/qmk/qmk_firmware/pull/10800))
104
105### Additions and Enhancements :id=core-additions
106
107* Allow MATRIX_ROWS to be greater than 32 ([#10183](https://github.com/qmk/qmk_firmware/pull/10183))
108* Add support for soft serial to ATmega32U2 ([#10204](https://github.com/qmk/qmk_firmware/pull/10204))
109* Allow direct control of MIDI velocity value ([#9940](https://github.com/qmk/qmk_firmware/pull/9940))
110* Joystick 16-bit support ([#10439](https://github.com/qmk/qmk_firmware/pull/10439))
111* Allow encoder resolutions to be set per encoder ([#10259](https://github.com/qmk/qmk_firmware/pull/10259))
112* Share button state from mousekey to pointing_device ([#10179](https://github.com/qmk/qmk_firmware/pull/10179))
113* Add advanced/efficient RGB Matrix Indicators ([#8564](https://github.com/qmk/qmk_firmware/pull/8564))
114* OLED display update interval support ([#10388](https://github.com/qmk/qmk_firmware/pull/10388))
115* Per-Key Retro Tapping ([#10622](https://github.com/qmk/qmk_firmware/pull/10622))
116* Allow backlight duty cycle limit ([#10260](https://github.com/qmk/qmk_firmware/pull/10260))
117* Add step sequencer feature ([#9703](https://github.com/qmk/qmk_firmware/pull/9703))
118* Added `add_oneshot_mods` & `del_oneshot_mods` ([#10549](https://github.com/qmk/qmk_firmware/pull/10549))
119* Add AT90USB support for serial.c ([#10706](https://github.com/qmk/qmk_firmware/pull/10706))
120* Auto shift: support repeats and early registration (#9826)
121
122### Clean-ups and Optimizations :id=core-optimizations
123
124* Haptic and solenoid cleanup ([#9700](https://github.com/qmk/qmk_firmware/pull/9700))
125* XD75 cleanup ([#10524](https://github.com/qmk/qmk_firmware/pull/10524))
126* Minor change to behavior allowing display updates to continue between task ticks ([#10750](https://github.com/qmk/qmk_firmware/pull/10750))
127* Change some GPIO manipulations in matrix.c to be atomic ([#10491](https://github.com/qmk/qmk_firmware/pull/10491))
128* combine repeated lines of code for ATmega32U2, ATmega16U2, ATmega328 and ATmega328P ([#10837](https://github.com/qmk/qmk_firmware/pull/10837))
129* Remove references to HD44780 ([#10735](https://github.com/qmk/qmk_firmware/pull/10735))
130
131
132## QMK Infrastructure and Internals :id=qmk-internals
133
134* Add ability to build a subset of all keyboards based on platform. ([#10420](https://github.com/qmk/qmk_firmware/pull/10420))
135* Initialise EEPROM drivers at startup, instead of upon first execution ([#10438](https://github.com/qmk/qmk_firmware/pull/10438))
136* Make bootloader_jump weak for ChibiOS ([#10417](https://github.com/qmk/qmk_firmware/pull/10417))
137* Support for STM32 GPIOF,G,H,I,J,K ([#10206](https://github.com/qmk/qmk_firmware/pull/10206))
138* Add milc as a dependency and remove the installed milc ([#10563](https://github.com/qmk/qmk_firmware/pull/10563))
139* ChibiOS upgrade: early init conversions ([#10214](https://github.com/qmk/qmk_firmware/pull/10214))
140* ChibiOS upgrade: configuration file migrator ([#9952](https://github.com/qmk/qmk_firmware/pull/9952))
141* Add definition based on currently-selected serial driver. ([#10716](https://github.com/qmk/qmk_firmware/pull/10716))
142* Allow for modification of output RGB values when using rgblight/rgb_matrix. ([#10638](https://github.com/qmk/qmk_firmware/pull/10638))
143* Allow keyboards/keymaps to execute code at each main loop iteration ([#10530](https://github.com/qmk/qmk_firmware/pull/10530))
144* qmk cformat ([#10767](https://github.com/qmk/qmk_firmware/pull/10767))
145* Add a Make variable to easily enable DEBUG_MATRIX_SCAN_RATE on the command line ([#10824](https://github.com/qmk/qmk_firmware/pull/10824))
146* update Chibios OS USB for the OTG driver ([#8893](https://github.com/qmk/qmk_firmware/pull/8893))
147* 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))
148* Rename ledmatrix.h to match .c file ([#7949](https://github.com/qmk/qmk_firmware/pull/7949))
149* Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER ([#10231](https://github.com/qmk/qmk_firmware/pull/10231))
150* 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 @@
80 * [One Shot Keys](one_shot_keys.md) 80 * [One Shot Keys](one_shot_keys.md)
81 * [Pointing Device](feature_pointing_device.md) 81 * [Pointing Device](feature_pointing_device.md)
82 * [Raw HID](feature_rawhid.md) 82 * [Raw HID](feature_rawhid.md)
83 * [Sequencer](feature_sequencer.md)
83 * [Swap Hands](feature_swap_hands.md) 84 * [Swap Hands](feature_swap_hands.md)
84 * [Tap Dance](feature_tap_dance.md) 85 * [Tap Dance](feature_tap_dance.md)
85 * [Tap-Hold Configuration](tap_hold.md) 86 * [Tap-Hold Configuration](tap_hold.md)
@@ -119,6 +120,7 @@
119 * [Overview](breaking_changes.md) 120 * [Overview](breaking_changes.md)
120 * [My Pull Request Was Flagged](breaking_changes_instructions.md) 121 * [My Pull Request Was Flagged](breaking_changes_instructions.md)
121 * History 122 * History
123 * [2020 Nov 28](ChangeLog/20201128.md)
122 * [2020 Aug 29](ChangeLog/20200829.md) 124 * [2020 Aug 29](ChangeLog/20200829.md)
123 * [2020 May 30](ChangeLog/20200530.md) 125 * [2020 May 30](ChangeLog/20200530.md)
124 * [2020 Feb 29](ChangeLog/20200229.md) 126 * [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
6 6
7## What has been included in past Breaking Changes? 7## What has been included in past Breaking Changes?
8 8
9* [2020 Nov 28](ChangeLog/20201128.md)
9* [2020 Aug 29](ChangeLog/20200829.md) 10* [2020 Aug 29](ChangeLog/20200829.md)
10* [2020 May 30](ChangeLog/20200530.md) 11* [2020 May 30](ChangeLog/20200530.md)
11* [2020 Feb 29](ChangeLog/20200229.md) 12* [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
13 14
14## When is the next Breaking Change? 15## When is the next Breaking Change?
15 16
16The next Breaking Change is scheduled for November 28, 2020. 17The next Breaking Change is scheduled for February 27, 2021.
17 18
18### Important Dates 19### Important Dates
19 20
20* [x] 2020 Aug 29 - `develop` is created. It will be rebased weekly. 21* [x] 2020 Nov 28 - `develop` is created. Each push to `master` is subsequently merged to `develop`
21* [ ] 2020 Oct 31 - `develop` closed to new PR's. 22* [ ] 2021 Jan 30 - `develop` closed to new PR's.
22* [ ] 2020 Oct 31 - Call for testers. 23* [ ] 2021 Jan 30 - Call for testers.
23* [ ] 2020 Nov 26 - `master` is locked, no PR's merged. 24* [ ] 2021 Feb 25 - `master` is locked, no PR's merged.
24* [ ] 2020 Nov 28 - Merge `develop` to `master`. 25* [ ] 2021 Feb 27 - Merge `develop` to `master`.
25* [ ] 2020 Nov 28 - `master` is unlocked. PR's can be merged again. 26* [ ] 2021 Feb 27 - `master` is unlocked. PR's can be merged again.
26 27
27## What changes will be included? 28## What changes will be included?
28 29
@@ -39,21 +40,6 @@ Criteria for acceptance:
39 40
40This section documents various processes we use when running the Breaking Changes process. 41This section documents various processes we use when running the Breaking Changes process.
41 42
42## Rebase `develop` from `master`
43
44This is run every Friday while `develop` is open.
45
46Process:
47
48```
49cd qmk_firmware
50git checkout master
51git pull --ff-only
52git checkout develop
53git rebase master
54git push --force
55```
56
57## Creating the `develop` branch 43## Creating the `develop` branch
58 44
59This happens immediately after the previous `develop` branch is merged. 45This 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
135* `#define RETRO_TAPPING` 135* `#define RETRO_TAPPING`
136 * tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release 136 * tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release
137 * See [Retro Tapping](tap_hold.md#retro-tapping) for details 137 * See [Retro Tapping](tap_hold.md#retro-tapping) for details
138* `#define RETRO_TAPPING_PER_KEY`
139 * enables handling for per key `RETRO_TAPPING` settings
138* `#define TAPPING_TOGGLE 2` 140* `#define TAPPING_TOGGLE 2`
139 * how many taps before triggering the toggle 141 * how many taps before triggering the toggle
140* `#define PERMISSIVE_HOLD` 142* `#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
185 185
186You 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. 186You 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.
187 187
188# Keyboard housekeeping
189
190* Keyboard/Revision: `void housekeeping_task_kb(void)`
191* Keymap: `void housekeeping_task_user(void)`
192
193This 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.
194
195Similar 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.
188 196
189# Keyboard Idling/Wake Code 197# Keyboard Idling/Wake Code
190 198
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.
15When you tap a key, it stays depressed for a short period of time before it is 15When you tap a key, it stays depressed for a short period of time before it is
16then released. This depressed time is a different length for everyone. Auto Shift 16then released. This depressed time is a different length for everyone. Auto Shift
17defines a constant `AUTO_SHIFT_TIMEOUT` which is typically set to twice your 17defines a constant `AUTO_SHIFT_TIMEOUT` which is typically set to twice your
18normal pressed state time. When you press a key, a timer starts and then stops 18normal pressed state time. When you press a key, a timer starts, and if you
19when you release the key. If the time depressed is greater than or equal to the 19have not released the key after the `AUTO_SHIFT_TIMEOUT` period, then a shifted
20`AUTO_SHIFT_TIMEOUT`, then a shifted version of the key is emitted. If the time 20version of the key is emitted. If the time is less than the `AUTO_SHIFT_TIMEOUT`
21is less than the `AUTO_SHIFT_TIMEOUT` time, then the normal state is emitted. 21time, or you press another key, then the normal state is emitted.
22
23If `AUTO_SHIFT_REPEAT` is defined, there is keyrepeat support. Holding the key
24down will repeat the shifted key, though this can be disabled with
25`AUTO_SHIFT_NO_AUTO_REPEAT`. If you want to repeat the normal key, then tap it
26once then immediately (within `TAPPING_TERM`) hold it down again (this works
27with the shifted value as well if auto-repeat is disabled).
22 28
23## Are There Limitations to Auto Shift? 29## Are There Limitations to Auto Shift?
24 30
25Yes, unfortunately. 31Yes, unfortunately.
26 32
271. Key repeat will cease to work. For example, before if you wanted 20 'a' 33You will have characters that are shifted when you did not intend on shifting, and
28 characters, you could press and hold the 'a' key for a second or two. This no 34other characters you wanted shifted, but were not. This simply comes down to
29 longer works with Auto Shift because it is timing your depressed time instead 35practice. As we get in a hurry, we think we have hit the key long enough for a
30 of emitting a depressed key state to your operating system. 36shifted version, but we did not. On the other hand, we may think we are tapping
312. You will have characters that are shifted when you did not intend on shifting, and 37the keys, but really we have held it for a little longer than anticipated.
32 other characters you wanted shifted, but were not. This simply comes down to 38
33 practice. As we get in a hurry, we think we have hit the key long enough 39Additionally, with keyrepeat the desired shift state can get mixed up. It will
34 for a shifted version, but we did not. On the other hand, we may think we are 40always 'belong' to the last key pressed. For example, keyrepeating a capital
35 tapping the keys, but really we have held it for a little longer than 41and then tapping something lowercase (whether or not it's an Auto Shift key)
36 anticipated. 42will result in the capital's *key* still being held, but shift not.
37 43
38## How Do I Enable Auto Shift? 44## How Do I Enable Auto Shift?
39 45
@@ -103,6 +109,14 @@ Do not Auto Shift numeric keys, zero through nine.
103 109
104Do not Auto Shift alpha characters, which include A through Z. 110Do not Auto Shift alpha characters, which include A through Z.
105 111
112### AUTO_SHIFT_REPEAT (simple define)
113
114Enables keyrepeat.
115
116### AUTO_SHIFT_NO_AUTO_REPEAT (simple define)
117
118Disables automatically keyrepeating when `AUTO_SHIFT_TIMEOUT` is exceeded.
119
106## Using Auto Shift Setup 120## Using Auto Shift Setup
107 121
108This will enable you to define three keys temporarily to increase, decrease and report your `AUTO_SHIFT_TIMEOUT`. 122This 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
62 62
63To configure the backlighting, `#define` these in your `config.h`: 63To configure the backlighting, `#define` these in your `config.h`:
64 64
65|Define |Default |Description | 65| Define | Default | Description |
66|---------------------|-------------|-------------------------------------------------------------------------------------| 66|------------------------|---------------|-------------------------------------------------------------------------------------------------------------------|
67|`BACKLIGHT_PIN` |*Not defined*|The pin that controls the LED(s) | 67| `BACKLIGHT_PIN` | *Not defined* | The pin that controls the LED(s) |
68|`BACKLIGHT_LEVELS` |`3` |The number of brightness levels (maximum 31 excluding off) | 68| `BACKLIGHT_LEVELS` | `3` | The number of brightness levels (maximum 31 excluding off) |
69|`BACKLIGHT_CAPS_LOCK`|*Not defined*|Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) | 69| `BACKLIGHT_CAPS_LOCK` | *Not defined* | Enable Caps Lock indicator using backlight (for keyboards without dedicated LED) |
70|`BACKLIGHT_BREATHING`|*Not defined*|Enable backlight breathing, if supported | 70| `BACKLIGHT_BREATHING` | *Not defined* | Enable backlight breathing, if supported |
71|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds | 71| `BREATHING_PERIOD` | `6` | The length of one backlight "breath" in seconds |
72|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low| 72| `BACKLIGHT_ON_STATE` | `1` | The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
73| `BACKLIGHT_LIMIT_VAL ` | `255` | The maximum duty cycle of the backlight -- `255` allows for full brightness, any lower will decrease the maximum. |
73 74
74Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`. 75Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`.
75 76
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
32#define ENCODER_RESOLUTION 4 32#define ENCODER_RESOLUTION 4
33``` 33```
34 34
35It can also be defined per-encoder, by instead defining:
36
37```c
38#define ENCODER_RESOLUTIONS { 4, 2 }
39```
40
35## Split Keyboards 41## Split Keyboards
36 42
37If 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: 43If 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:
38 44
39```c 45```c
40#define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a } 46#define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a }
41#define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b } 47#define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b }
48#define ENCODER_RESOLUTIONS_RIGHT { 2, 4 }
42``` 49```
43 50
44## Callbacks 51## 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
42[Wiring diagram provided by Adafruit](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf) 42[Wiring diagram provided by Adafruit](https://playground.arduino.cc/uploads/Learning/solenoid_driver.pdf)
43 43
44 44
45| Settings | Default | Description | 45| Settings | Default | Description |
46|--------------------------|---------------|-------------------------------------------------------| 46|----------------------------|----------------------|-------------------------------------------------------|
47|`SOLENOID_PIN` | *Not defined* |Configures the pin that the Solenoid is connected to. | 47|`SOLENOID_PIN` | *Not defined* |Configures the pin that the Solenoid is connected to. |
48|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the solenoid. | 48|`SOLENOID_DEFAULT_DWELL` | `12` ms |Configures the default dwell time for the solenoid. |
49|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. | 49|`SOLENOID_MIN_DWELL` | `4` ms |Sets the lower limit for the dwell. |
50|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. | 50|`SOLENOID_MAX_DWELL` | `100` ms |Sets the upper limit for the dwell. |
51 51|`SOLENOID_DWELL_STEP_SIZE` | `1` ms |The step size to use when `HPT_DWL*` keycodes are sent |
52?> Dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds. 52|`SOLENOID_DEFAULT_BUZZ` | `0` (disabled) |On HPT_RST buzz is set "on" if this is "1" |
53|`SOLENOID_BUZZ_ACTUATED` | `SOLENOID_MIN_DWELL` |Actuated-time when the solenoid is in buzz mode |
54|`SOLENOID_BUZZ_NONACTUATED` | `SOLENOID_MIN_DWELL` |Non-Actuated-time when the solenoid is in buzz mode |
55
56* If solenoid buzz is off, then dwell time is how long the "plunger" stays activated. The dwell time changes how the solenoid sounds.
57* 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.
58* 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.
59 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.
53 60
54Beware 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. 61Beware 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.
55 62
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) {
141} 141}
142``` 142```
143 143
144### Axis Resolution
145
146By 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.
147
148Note that the supported AVR MCUs have a 10-bit ADC, and 12-bit for most STM32 MCUs.
149
144### Triggering Joystick Buttons 150### Triggering Joystick Buttons
145 151
146Joystick buttons are normal Quantum keycodes, defined as `JS_BUTTON0` to `JS_BUTTON31`, depending on the number of buttons you have configured. 152Joystick 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
10 10
11There is basic support for addressable LED matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`: 11There is basic support for addressable LED matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`:
12 12
13 LED_MATRIX_ENABLE = IS31FL3731 13 LED_MATRIX_ENABLE = yes
14 LED_MATRIX_DRIVER = IS31FL3731
14 15
15You 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`: 16You 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`:
16 17
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
140```c 140```c
141#define MK_COMBINED 141#define MK_COMBINED
142``` 142```
143
144## Use with PS/2 Mouse and Pointing Device
145
146Mouse 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) {
150|`OLED_IC` |`OLED_IC_SSD1306`|Set to `OLED_IC_SH1106` if you're using the SH1106 OLED controller. | 150|`OLED_IC` |`OLED_IC_SSD1306`|Set to `OLED_IC_SH1106` if you're using the SH1106 OLED controller. |
151|`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.| 151|`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.|
152|`OLED_BRIGHTNESS` |`255` |The default brightness level of the OLED, from 0 to 255. | 152|`OLED_BRIGHTNESS` |`255` |The default brightness level of the OLED, from 0 to 255. |
153|`OLED_UPDATE_INTERVAL` |`0` |Set the time interval for updating the OLED display in ms. This will improve the matrix scan rate. |
153 154
154 ## 128x64 & Custom sized OLED Displays 155 ## 128x64 & Custom sized OLED Displays
155 156
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](
11There is basic support for addressable RGB matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`: 11There is basic support for addressable RGB matrix lighting with the I2C IS31FL3731 RGB controller. To enable it, add this to your `rules.mk`:
12 12
13```makefile 13```makefile
14RGB_MATRIX_ENABLE = IS31FL3731 14RGB_MATRIX_ENABLE = yes
15RGB_MATRIX_DRIVER = IS31FL3731
15``` 16```
16 17
17Configure the hardware via your `config.h`: 18Configure 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]
62There is basic support for addressable RGB matrix lighting with the I2C IS31FL3733 RGB controller. To enable it, add this to your `rules.mk`: 63There is basic support for addressable RGB matrix lighting with the I2C IS31FL3733 RGB controller. To enable it, add this to your `rules.mk`:
63 64
64```makefile 65```makefile
65RGB_MATRIX_ENABLE = IS31FL3733 66RGB_MATRIX_ENABLE = yes
67RGB_MATRIX_DRIVER = IS31FL3733
66``` 68```
67 69
68Configure the hardware via your `config.h`: 70Configure 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](
112There 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`: 114There 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`:
113 115
114```makefile 116```makefile
115RGB_MATRIX_ENABLE = WS2812 117RGB_MATRIX_ENABLE = yes
118RGB_MATRIX_DRIVER = WS2812
116``` 119```
117 120
118Configure the hardware via your `config.h`: 121Configure the hardware via your `config.h`:
@@ -482,6 +485,14 @@ void rgb_matrix_indicators_kb(void) {
482} 485}
483``` 486```
484 487
488In 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)`.
489
490```c
491void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
492 RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue);
493}
494```
495
485### Suspended state :id=suspended-state 496### Suspended state :id=suspended-state
486To use the suspend feature, make sure that `#define RGB_DISABLE_WHEN_USB_SUSPENDED true` is added to the `config.h` file. 497To use the suspend feature, make sure that `#define RGB_DISABLE_WHEN_USB_SUSPENDED true` is added to the `config.h` file.
487 498
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 @@
1# Sequencer
2
3Since 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)!
4
5!> **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.
6
7## Enable the step sequencer
8
9Add the following line to your `rules.mk`:
10
11```make
12SEQUENCER_ENABLE = yes
13```
14
15By default the sequencer has 16 steps, but you can override this setting in your `config.h`:
16
17```c
18#define SEQUENCER_STEPS 32
19```
20
21## Tracks
22
23You 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!
24
25## Resolutions
26
27While 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).
28
29|Resolution |Description |
30|---------- |----------- |
31|`SQ_RES_2` |Every other beat |
32|`SQ_RES_2T` |Every 1.5 beats |
33|`SQ_RES_4` |Every beat |
34|`SQ_RES_4T` |Three times per 2 beats|
35|`SQ_RES_8` |Twice per beat |
36|`SQ_RES_8T` |Three times per beat |
37|`SQ_RES_16` |Four times per beat |
38|`SQ_RES_16T` |Six times per beat |
39|`SQ_RES_32` |Eight times per beat |
40
41## Keycodes
42
43|Keycode |Description |
44|------- |----------- |
45|`SQ_ON` |Start the step sequencer |
46|`SQ_OFF` |Stop the step sequencer |
47|`SQ_TOG` |Toggle the step sequencer playback |
48|`SQ_SALL`|Enable all the steps |
49|`SQ_SCLR`|Disable all the steps |
50|`SQ_S(n)`|Toggle the step `n` |
51|`SQ_TMPD`|Decrease the tempo |
52|`SQ_TMPU`|Increase the tempo |
53|`SQ_R(n)`|Set the resolution to n |
54|`SQ_RESD`|Change to the slower resolution |
55|`SQ_RESU`|Change to the faster resolution |
56|`SQ_T(n)`|Set `n` as the only active track or deactivate all |
57
58## Functions
59
60|Function |Description |
61|-------- |----------- |
62|`bool is_sequencer_on(void);` |Return whether the sequencer is playing |
63|`void sequencer_toggle(void);` |Toggle the step sequencer playback |
64|`void sequencer_on(void);` |Start the step sequencer |
65|`void sequencer_off(void);` |Stop the step sequencer |
66|`bool is_sequencer_step_on(uint8_t step);` |Return whether the step is currently enabled |
67|`void sequencer_set_step(uint8_t step, bool value);` |Enable or disable the step |
68|`void sequencer_set_step_on();` |Enable the step |
69|`void sequencer_set_step_off();` |Disable the step |
70|`void sequencer_toggle_step(uint8_t step);` |Toggle the step |
71|`void sequencer_set_all_steps(bool value);` |Enable or disable all the steps |
72|`void sequencer_set_all_steps_on();` |Enable all the steps |
73|`void sequencer_set_all_steps_off();` |Disable all the steps |
74|`uint8_t sequencer_get_tempo(void);` |Return the current tempo |
75|`void sequencer_set_tempo(uint8_t tempo);` |Set the tempo to `tempo` (between 1 and 255) |
76|`void sequencer_increase_tempo(void);` |Increase the tempo |
77|`void sequencer_decrease_tempo(void);` |Decrease the tempo |
78|`sequencer_resolution_t sequencer_get_resolution(void);` |Return the current resolution |
79|`void sequencer_set_resolution(sequencer_resolution_t resolution);` |Set the resolution to `resolution` |
80|`void sequencer_increase_resolution(void);` |Change to the faster resolution |
81|`void sequencer_decrease_resolution(void);` |Change to the slower resolution |
82|`bool is_sequencer_track_active(uint8_t track);` |Return whether the track is active |
83|`void sequencer_set_track_activation(uint8_t track, bool value);` |Activate or deactivate the `track` |
84|`void sequencer_toggle_track_activation(uint8_t track);` |Toggle the `track` |
85|`void sequencer_activate_track(uint8_t track);` |Activate the `track` |
86|`void sequencer_deactivate_track(uint8_t track);` |Deactivate the `track` |
87|`void sequencer_toggle_single_active_track(uint8_t track);` |Set `track` as the only active track or deactivate all |
88
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
21## Advanced Settings :id=advanced-settings 21## Advanced Settings :id=advanced-settings
22 22
23Each 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. 23Each 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.
24
25## Atomic Operation
26
27The 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.
28
29eg.
30```c
31void some_function() {
32 // some process
33 ATOMIC_BLOCK_FORCEON {
34 // Atomic Processing
35 }
36 // some process
37}
38```
39
40`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.
41
42Note 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 マトリックスサブシ
15 15
16I2C IS31FL3731 RGB コントローラを使ã£ãŸã‚¢ãƒ‰ãƒ¬ã‚¹æŒ‡å®šå¯èƒ½ãª LED マトリックスライトã®ãŸã‚ã®åŸºæœ¬çš„ãªã‚µãƒãƒ¼ãƒˆãŒã‚りã¾ã™:有効ã«ã™ã‚‹ã«ã¯ã€`rules.mk` ã«ä»¥ä¸‹ã‚’追加ã—ã¾ã™: 16I2C IS31FL3731 RGB コントローラを使ã£ãŸã‚¢ãƒ‰ãƒ¬ã‚¹æŒ‡å®šå¯èƒ½ãª LED マトリックスライトã®ãŸã‚ã®åŸºæœ¬çš„ãªã‚µãƒãƒ¼ãƒˆãŒã‚りã¾ã™:有効ã«ã™ã‚‹ã«ã¯ã€`rules.mk` ã«ä»¥ä¸‹ã‚’追加ã—ã¾ã™:
17 17
18 LED_MATRIX_ENABLE = IS31FL3731 18 LED_MATRIX_ENABLE = yes
19 LED_MATRIX_DRIVER = IS31FL3731
19 20
201ã‹ã‚‰4個㮠IS31FL3731 IC を使ã†ã“ã¨ãŒã§ãã¾ã™ã€‚キーボード上ã«å­˜åœ¨ã—ãªã„ IC ã® `LED_DRIVER_ADDR_<N>` 定義を指定ã—ãªã„ã§ãã ã•ã„。`config.h` ã«ä»¥ä¸‹ã®é …目を定義ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™: 211ã‹ã‚‰4個㮠IS31FL3731 IC を使ã†ã“ã¨ãŒã§ãã¾ã™ã€‚キーボード上ã«å­˜åœ¨ã—ãªã„ IC ã® `LED_DRIVER_ADDR_<N>` 定義を指定ã—ãªã„ã§ãã ã•ã„。`config.h` ã«ä»¥ä¸‹ã®é …目を定義ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™:
21 22
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
179 179
180For 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. 180For 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.
181 181
182For more granular control of this feature, you can add the following to your `config.h`:
183
184```c
185#define RETRO_TAPPING_PER_KEY
186```
187
188You can then add the following function to your keymap:
189
190```c
191bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
192 switch (keycode) {
193 case LT(2, KC_SPACE):
194 return true;
195 default:
196 return false;
197 }
198}
199```
200
182## Why do we include the key record for the per key functions? 201## Why do we include the key record for the per key functions?
183 202
184One 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. 203One 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 @@
20 20
21#ifdef SOFT_SERIAL_PIN 21#ifdef SOFT_SERIAL_PIN
22 22
23# ifdef __AVR_ATmega32U4__ 23# 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__))
24// if using ATmega32U4 I2C, can not use PD0 and PD1 in soft serial. 24# error serial.c is not supported for the currently selected MCU
25# ifdef USE_AVR_I2C 25# endif
26# if SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1 26// if using ATmega32U4/2, AT90USBxxx I2C, can not use PD0 and PD1 in soft serial.
27# error Using ATmega32U4 I2C, so can not use PD0, PD1 27# if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__)
28# endif 28# if defined(USE_AVR_I2C) && (SOFT_SERIAL_PIN == D0 || SOFT_SERIAL_PIN == D1)
29# error Using I2C, so can not use PD0, PD1
29# endif 30# endif
31# endif
32// PD0..PD3, common config
33# if SOFT_SERIAL_PIN == D0
34# define EIMSK_BIT _BV(INT0)
35# define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01)))
36# define SERIAL_PIN_INTERRUPT INT0_vect
37# define EICRx EICRA
38# elif SOFT_SERIAL_PIN == D1
39# define EIMSK_BIT _BV(INT1)
40# define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11)))
41# define SERIAL_PIN_INTERRUPT INT1_vect
42# define EICRx EICRA
43# elif SOFT_SERIAL_PIN == D2
44# define EIMSK_BIT _BV(INT2)
45# define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21)))
46# define SERIAL_PIN_INTERRUPT INT2_vect
47# define EICRx EICRA
48# elif SOFT_SERIAL_PIN == D3
49# define EIMSK_BIT _BV(INT3)
50# define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31)))
51# define SERIAL_PIN_INTERRUPT INT3_vect
52# define EICRx EICRA
53# endif
30 54
31# define setPinInputHigh(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) 55// ATmegaxxU2 specific config
32# define setPinOutput(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF)) 56# if defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__)
33# define writePinHigh(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) 57// PD4(INT5), PD6(INT6), PD7(INT7), PC7(INT4)
34# define writePinLow(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF)) 58# if SOFT_SERIAL_PIN == D4
35# define readPin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF))) 59# define EIMSK_BIT _BV(INT5)
36 60# define EICRx_BIT (~(_BV(ISC50) | _BV(ISC51)))
37# if SOFT_SERIAL_PIN >= D0 && SOFT_SERIAL_PIN <= D3 61# define SERIAL_PIN_INTERRUPT INT5_vect
38# if SOFT_SERIAL_PIN == D0 62# define EICRx EICRB
39# define EIMSK_BIT _BV(INT0) 63# elif SOFT_SERIAL_PIN == D6
40# define EICRx_BIT (~(_BV(ISC00) | _BV(ISC01))) 64# define EIMSK_BIT _BV(INT6)
41# define SERIAL_PIN_INTERRUPT INT0_vect 65# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
42# elif SOFT_SERIAL_PIN == D1 66# define SERIAL_PIN_INTERRUPT INT6_vect
43# define EIMSK_BIT _BV(INT1) 67# define EICRx EICRB
44# define EICRx_BIT (~(_BV(ISC10) | _BV(ISC11))) 68# elif SOFT_SERIAL_PIN == D7
45# define SERIAL_PIN_INTERRUPT INT1_vect 69# define EIMSK_BIT _BV(INT7)
46# elif SOFT_SERIAL_PIN == D2 70# define EICRx_BIT (~(_BV(ISC70) | _BV(ISC71)))
47# define EIMSK_BIT _BV(INT2) 71# define SERIAL_PIN_INTERRUPT INT7_vect
48# define EICRx_BIT (~(_BV(ISC20) | _BV(ISC21))) 72# define EICRx EICRB
49# define SERIAL_PIN_INTERRUPT INT2_vect 73# elif SOFT_SERIAL_PIN == C7
50# elif SOFT_SERIAL_PIN == D3 74# define EIMSK_BIT _BV(INT4)
51# define EIMSK_BIT _BV(INT3) 75# define EICRx_BIT (~(_BV(ISC40) | _BV(ISC41)))
52# define EICRx_BIT (~(_BV(ISC30) | _BV(ISC31))) 76# define SERIAL_PIN_INTERRUPT INT4_vect
53# define SERIAL_PIN_INTERRUPT INT3_vect 77# define EICRx EICRB
54# endif 78# endif
79# endif
80
81// ATmegaxxU4 specific config
82# if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)
83// PE6(INT6)
84# if SOFT_SERIAL_PIN == E6
85# define EIMSK_BIT _BV(INT6)
86# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
87# define SERIAL_PIN_INTERRUPT INT6_vect
88# define EICRx EICRB
89# endif
90# endif
91
92// AT90USBxxx specific config
93# if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__)
94// PE4..PE7(INT4..INT7)
95# if SOFT_SERIAL_PIN == E4
96# define EIMSK_BIT _BV(INT4)
97# define EICRx_BIT (~(_BV(ISC40) | _BV(ISC41)))
98# define SERIAL_PIN_INTERRUPT INT4_vect
99# define EICRx EICRB
100# elif SOFT_SERIAL_PIN == E5
101# define EIMSK_BIT _BV(INT5)
102# define EICRx_BIT (~(_BV(ISC50) | _BV(ISC51)))
103# define SERIAL_PIN_INTERRUPT INT5_vect
104# define EICRx EICRB
55# elif SOFT_SERIAL_PIN == E6 105# elif SOFT_SERIAL_PIN == E6
56# define EIMSK_BIT _BV(INT6) 106# define EIMSK_BIT _BV(INT6)
57# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61))) 107# define EICRx_BIT (~(_BV(ISC60) | _BV(ISC61)))
58# define SERIAL_PIN_INTERRUPT INT6_vect 108# define SERIAL_PIN_INTERRUPT INT6_vect
59# else 109# define EICRx EICRB
60# error invalid SOFT_SERIAL_PIN value 110# elif SOFT_SERIAL_PIN == E7
111# define EIMSK_BIT _BV(INT7)
112# define EICRx_BIT (~(_BV(ISC70) | _BV(ISC71)))
113# define SERIAL_PIN_INTERRUPT INT7_vect
114# define EICRx EICRB
61# endif 115# endif
116# endif
62 117
63# else 118# ifndef SERIAL_PIN_INTERRUPT
64# error serial.c now support ATmega32U4 only 119# error invalid SOFT_SERIAL_PIN value
65# endif 120# endif
66 121
122# define setPinInputHigh(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
123# define setPinOutput(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF))
124# define writePinHigh(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF))
125# define writePinLow(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF))
126# define readPin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF)))
127
67# define ALWAYS_INLINE __attribute__((always_inline)) 128# define ALWAYS_INLINE __attribute__((always_inline))
68# define NO_INLINE __attribute__((noinline)) 129# define NO_INLINE __attribute__((noinline))
69# define _delay_sub_us(x) __builtin_avr_delay_cycles(x) 130# 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) {
210 Transaction_table_size = (uint8_t)sstd_table_size; 271 Transaction_table_size = (uint8_t)sstd_table_size;
211 serial_input_with_pullup(); 272 serial_input_with_pullup();
212 273
213 // Enable INT0-INT3,INT6 274 // Enable INT0-INT7
214 EIMSK |= EIMSK_BIT; 275 EIMSK |= EIMSK_BIT;
215# if SOFT_SERIAL_PIN == E6 276 EICRx &= EICRx_BIT;
216 // Trigger on falling edge of INT6
217 EICRB &= EICRx_BIT;
218# else
219 // Trigger on falling edge of INT0-INT3
220 EICRA &= EICRx_BIT;
221# endif
222} 277}
223 278
224// Used by the sender to synchronize timing with the reciver. 279// 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) {
58} 58}
59 59
60__attribute__((weak)) void i2c_init(void) { 60__attribute__((weak)) void i2c_init(void) {
61 // Try releasing special pins for a short time 61 static bool is_initialised = false;
62 palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT); 62 if (!is_initialised) {
63 palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT); 63 is_initialised = true;
64 64
65 chThdSleepMilliseconds(10); 65 // Try releasing special pins for a short time
66 palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_INPUT);
67 palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_INPUT);
68
69 chThdSleepMilliseconds(10);
66#if defined(USE_GPIOV1) 70#if defined(USE_GPIOV1)
67 palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, I2C1_SCL_PAL_MODE); 71 palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, I2C1_SCL_PAL_MODE);
68 palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, I2C1_SDA_PAL_MODE); 72 palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, I2C1_SDA_PAL_MODE);
69#else 73#else
70 palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); 74 palSetPadMode(I2C1_SCL_BANK, I2C1_SCL, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
71 palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); 75 palSetPadMode(I2C1_SDA_BANK, I2C1_SDA, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN);
72#endif 76#endif
77 }
73} 78}
74 79
75i2c_status_t i2c_start(uint8_t address) { 80i2c_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;
22static SPIConfig spiConfig = {false, NULL, 0, 0, 0, 0}; 22static SPIConfig spiConfig = {false, NULL, 0, 0, 0, 0};
23 23
24__attribute__((weak)) void spi_init(void) { 24__attribute__((weak)) void spi_init(void) {
25 // Try releasing special pins for a short time 25 static bool is_initialised = false;
26 palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_INPUT); 26 if (!is_initialised) {
27 palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_INPUT); 27 is_initialised = true;
28 palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_INPUT);
29 28
30 chThdSleepMilliseconds(10); 29 // Try releasing special pins for a short time
30 palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_INPUT);
31 palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_INPUT);
32 palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_INPUT);
33
34 chThdSleepMilliseconds(10);
31#if defined(USE_GPIOV1) 35#if defined(USE_GPIOV1)
32 palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); 36 palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
33 palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); 37 palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
34 palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); 38 palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
35#else 39#else
36 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); 40 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);
37 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); 41 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);
38 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); 42 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);
39#endif 43#endif
44 }
40} 45}
41 46
42bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) { 47bool 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 @@
42# include "debug.h" 42# include "debug.h"
43#endif // DEBUG_EEPROM_OUTPUT 43#endif // DEBUG_EEPROM_OUTPUT
44 44
45static inline void init_i2c_if_required(void) {
46 static int done = 0;
47 if (!done) {
48 i2c_init();
49 done = 1;
50 }
51}
52
53static inline void fill_target_address(uint8_t *buffer, const void *addr) { 45static inline void fill_target_address(uint8_t *buffer, const void *addr) {
54 uintptr_t p = (uintptr_t)addr; 46 uintptr_t p = (uintptr_t)addr;
55 for (int i = 0; i < EXTERNAL_EEPROM_ADDRESS_SIZE; ++i) { 47 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) {
58 } 50 }
59} 51}
60 52
61void eeprom_driver_init(void) {} 53void eeprom_driver_init(void) { i2c_init(); }
62 54
63void eeprom_driver_erase(void) { 55void eeprom_driver_erase(void) {
64#if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT) 56#if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT)
@@ -80,7 +72,6 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) {
80 uint8_t complete_packet[EXTERNAL_EEPROM_ADDRESS_SIZE]; 72 uint8_t complete_packet[EXTERNAL_EEPROM_ADDRESS_SIZE];
81 fill_target_address(complete_packet, addr); 73 fill_target_address(complete_packet, addr);
82 74
83 init_i2c_if_required();
84 i2c_transmit(EXTERNAL_EEPROM_I2C_ADDRESS((uintptr_t)addr), complete_packet, EXTERNAL_EEPROM_ADDRESS_SIZE, 100); 75 i2c_transmit(EXTERNAL_EEPROM_I2C_ADDRESS((uintptr_t)addr), complete_packet, EXTERNAL_EEPROM_ADDRESS_SIZE, 100);
85 i2c_receive(EXTERNAL_EEPROM_I2C_ADDRESS((uintptr_t)addr), buf, len, 100); 76 i2c_receive(EXTERNAL_EEPROM_I2C_ADDRESS((uintptr_t)addr), buf, len, 100);
86 77
@@ -98,7 +89,6 @@ void eeprom_write_block(const void *buf, void *addr, size_t len) {
98 uint8_t * read_buf = (uint8_t *)buf; 89 uint8_t * read_buf = (uint8_t *)buf;
99 uintptr_t target_addr = (uintptr_t)addr; 90 uintptr_t target_addr = (uintptr_t)addr;
100 91
101 init_i2c_if_required();
102 while (len > 0) { 92 while (len > 0) {
103 uintptr_t page_offset = target_addr % EXTERNAL_EEPROM_PAGE_SIZE; 93 uintptr_t page_offset = target_addr % EXTERNAL_EEPROM_PAGE_SIZE;
104 int write_length = EXTERNAL_EEPROM_PAGE_SIZE - page_offset; 94 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 @@
55# include "debug.h" 55# include "debug.h"
56#endif // CONSOLE_ENABLE 56#endif // CONSOLE_ENABLE
57 57
58static void init_spi_if_required(void) {
59 static int done = 0;
60 if (!done) {
61 spi_init();
62 done = 1;
63 }
64}
65
66static 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); } 58static 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); }
67 59
68static spi_status_t spi_eeprom_wait_while_busy(int timeout) { 60static spi_status_t spi_eeprom_wait_while_busy(int timeout) {
@@ -91,7 +83,7 @@ static void spi_eeprom_transmit_address(uintptr_t addr) {
91 83
92//---------------------------------------------------------------------------------------------------------------------- 84//----------------------------------------------------------------------------------------------------------------------
93 85
94void eeprom_driver_init(void) {} 86void eeprom_driver_init(void) { spi_init(); }
95 87
96void eeprom_driver_erase(void) { 88void eeprom_driver_erase(void) {
97#if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT) 89#if defined(CONSOLE_ENABLE) && defined(DEBUG_EEPROM_OUTPUT)
@@ -110,8 +102,6 @@ void eeprom_driver_erase(void) {
110} 102}
111 103
112void eeprom_read_block(void *buf, const void *addr, size_t len) { 104void eeprom_read_block(void *buf, const void *addr, size_t len) {
113 init_spi_if_required();
114
115 //------------------------------------------------- 105 //-------------------------------------------------
116 // Wait for the write-in-progress bit to be cleared 106 // Wait for the write-in-progress bit to be cleared
117 bool res = spi_eeprom_start(); 107 bool res = spi_eeprom_start();
@@ -154,8 +144,6 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) {
154} 144}
155 145
156void eeprom_write_block(const void *buf, void *addr, size_t len) { 146void eeprom_write_block(const void *buf, void *addr, size_t len) {
157 init_spi_if_required();
158
159 bool res; 147 bool res;
160 uint8_t * read_buf = (uint8_t *)buf; 148 uint8_t * read_buf = (uint8_t *)buf;
161 uintptr_t target_addr = (uintptr_t)addr; 149 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) {
33 eeconfig_init(); 33 eeconfig_init();
34 } 34 }
35 haptic_config.raw = eeconfig_read_haptic(); 35 haptic_config.raw = eeconfig_read_haptic();
36 if (haptic_config.mode < 1) { 36#ifdef SOLENOID_ENABLE
37 haptic_config.mode = 1; 37 solenoid_set_dwell(haptic_config.dwell);
38 } 38#endif
39 if (!haptic_config.mode) { 39 if ((haptic_config.raw == 0)
40 dprintf("No haptic config found in eeprom, setting default configs\n"); 40#ifdef SOLENOID_ENABLE
41 || (haptic_config.dwell == 0)
42#endif
43 ) {
44 // this will be called, if the eeprom is not corrupt,
45 // but the previous firmware didn't have haptic enabled,
46 // or the previous firmware didn't have solenoid enabled,
47 // and the current one has solenoid enabled.
41 haptic_reset(); 48 haptic_reset();
42 } 49 }
43#ifdef SOLENOID_ENABLE 50#ifdef SOLENOID_ENABLE
@@ -118,25 +125,37 @@ void haptic_mode_decrease(void) {
118} 125}
119 126
120void haptic_dwell_increase(void) { 127void haptic_dwell_increase(void) {
121 uint8_t dwell = haptic_config.dwell + 1;
122#ifdef SOLENOID_ENABLE 128#ifdef SOLENOID_ENABLE
129 int16_t next_dwell = ((int16_t)haptic_config.dwell) + SOLENOID_DWELL_STEP_SIZE;
123 if (haptic_config.dwell >= SOLENOID_MAX_DWELL) { 130 if (haptic_config.dwell >= SOLENOID_MAX_DWELL) {
124 dwell = 1; 131 // if it's already at max, we wrap back to min
132 next_dwell = SOLENOID_MIN_DWELL;
133 } else if (next_dwell > SOLENOID_MAX_DWELL) {
134 // if we overshoot the max, then cap at max
135 next_dwell = SOLENOID_MAX_DWELL;
125 } 136 }
126 solenoid_set_dwell(dwell); 137 solenoid_set_dwell(next_dwell);
138#else
139 int16_t next_dwell = ((int16_t)haptic_config.dwell) + 1;
127#endif 140#endif
128 haptic_set_dwell(dwell); 141 haptic_set_dwell(next_dwell);
129} 142}
130 143
131void haptic_dwell_decrease(void) { 144void haptic_dwell_decrease(void) {
132 uint8_t dwell = haptic_config.dwell - 1;
133#ifdef SOLENOID_ENABLE 145#ifdef SOLENOID_ENABLE
134 if (haptic_config.dwell < SOLENOID_MIN_DWELL) { 146 int16_t next_dwell = ((int16_t)haptic_config.dwell) - SOLENOID_DWELL_STEP_SIZE;
135 dwell = SOLENOID_MAX_DWELL; 147 if (haptic_config.dwell <= SOLENOID_MIN_DWELL) {
148 // if it's already at min, we wrap to max
149 next_dwell = SOLENOID_MAX_DWELL;
150 } else if (next_dwell < SOLENOID_MIN_DWELL) {
151 // if we go below min, then we cap to min
152 next_dwell = SOLENOID_MIN_DWELL;
136 } 153 }
137 solenoid_set_dwell(dwell); 154 solenoid_set_dwell(next_dwell);
155#else
156 int16_t next_dwell = ((int16_t)haptic_config.dwell) - 1;
138#endif 157#endif
139 haptic_set_dwell(dwell); 158 haptic_set_dwell(next_dwell);
140} 159}
141 160
142void haptic_reset(void) { 161void haptic_reset(void) {
@@ -150,6 +169,12 @@ void haptic_reset(void) {
150#ifdef SOLENOID_ENABLE 169#ifdef SOLENOID_ENABLE
151 uint8_t dwell = SOLENOID_DEFAULT_DWELL; 170 uint8_t dwell = SOLENOID_DEFAULT_DWELL;
152 haptic_config.dwell = dwell; 171 haptic_config.dwell = dwell;
172 haptic_config.buzz = SOLENOID_DEFAULT_BUZZ;
173 solenoid_set_dwell(dwell);
174#else
175 // This is to trigger haptic_reset again, if solenoid is enabled in the future.
176 haptic_config.dwell = 0;
177 haptic_config.buzz = 0;
153#endif 178#endif
154 eeconfig_update_haptic(haptic_config.raw); 179 eeconfig_update_haptic(haptic_config.raw);
155 xprintf("haptic_config.feedback = %u\n", haptic_config.feedback); 180 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); }
32 32
33void solenoid_set_buzz(int buzz) { haptic_set_buzz(buzz); } 33void solenoid_set_buzz(int buzz) { haptic_set_buzz(buzz); }
34 34
35void solenoid_dwell_minus(uint8_t solenoid_dwell) {
36 if (solenoid_dwell > 0) solenoid_dwell--;
37}
38
39void solenoid_dwell_plus(uint8_t solenoid_dwell) {
40 if (solenoid_dwell < SOLENOID_MAX_DWELL) solenoid_dwell++;
41}
42
43void solenoid_set_dwell(uint8_t dwell) { solenoid_dwell = dwell; } 35void solenoid_set_dwell(uint8_t dwell) { solenoid_dwell = dwell; }
44 36
45void solenoid_stop(void) { 37void solenoid_stop(void) {
@@ -73,7 +65,7 @@ void solenoid_check(void) {
73 65
74 // Check whether to buzz the solenoid on and off 66 // Check whether to buzz the solenoid on and off
75 if (haptic_config.buzz) { 67 if (haptic_config.buzz) {
76 if (elapsed / SOLENOID_MIN_DWELL % 2 == 0) { 68 if ((elapsed % (SOLENOID_BUZZ_ACTUATED + SOLENOID_BUZZ_NONACTUATED)) < SOLENOID_BUZZ_ACTUATED) {
77 if (!solenoid_buzzing) { 69 if (!solenoid_buzzing) {
78 solenoid_buzzing = true; 70 solenoid_buzzing = true;
79 writePinHigh(SOLENOID_PIN); 71 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 @@
29# define SOLENOID_MIN_DWELL 4 29# define SOLENOID_MIN_DWELL 4
30#endif 30#endif
31 31
32#ifndef SOLENOID_DWELL_STEP_SIZE
33# define SOLENOID_DWELL_STEP_SIZE 1
34#endif
35
36#ifndef SOLENOID_DEFAULT_BUZZ
37# define SOLENOID_DEFAULT_BUZZ 0
38#endif
39
40#ifndef SOLENOID_BUZZ_ACTUATED
41# define SOLENOID_BUZZ_ACTUATED SOLENOID_MIN_DWELL
42#endif
43
44#ifndef SOLENOID_BUZZ_NONACTUATED
45# define SOLENOID_BUZZ_NONACTUATED SOLENOID_MIN_DWELL
46#endif
47
32#ifndef SOLENOID_PIN 48#ifndef SOLENOID_PIN
33# error SOLENOID_PIN not defined 49# error SOLENOID_PIN not defined
34#endif 50#endif
@@ -37,8 +53,6 @@ void solenoid_buzz_on(void);
37void solenoid_buzz_off(void); 53void solenoid_buzz_off(void);
38void solenoid_set_buzz(int buzz); 54void solenoid_set_buzz(int buzz);
39 55
40void solenoid_dwell_minus(uint8_t solenoid_dwell);
41void solenoid_dwell_plus(uint8_t solenoid_dwell);
42void solenoid_set_dwell(uint8_t dwell); 56void solenoid_set_dwell(uint8_t dwell);
43 57
44void solenoid_stop(void); 58void 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;
119#if OLED_SCROLL_TIMEOUT > 0 119#if OLED_SCROLL_TIMEOUT > 0
120uint32_t oled_scroll_timeout; 120uint32_t oled_scroll_timeout;
121#endif 121#endif
122#if OLED_UPDATE_INTERVAL > 0
123uint16_t oled_update_timeout;
124#endif
122 125
123// Internal variables to reduce math instructions 126// Internal variables to reduce math instructions
124 127
@@ -468,8 +471,9 @@ void oled_write_raw_byte(const char data, uint16_t index) {
468} 471}
469 472
470void oled_write_raw(const char *data, uint16_t size) { 473void oled_write_raw(const char *data, uint16_t size) {
471 if (size > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE; 474 uint16_t cursor_start_index = oled_cursor - &oled_buffer[0];
472 for (uint16_t i = 0; i < size; i++) { 475 if ((size + cursor_start_index) > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE - cursor_start_index;
476 for (uint16_t i = cursor_start_index; i < cursor_start_index + size; i++) {
473 if (oled_buffer[i] == data[i]) continue; 477 if (oled_buffer[i] == data[i]) continue;
474 oled_buffer[i] = data[i]; 478 oled_buffer[i] = data[i];
475 oled_dirty |= ((OLED_BLOCK_TYPE)1 << (i / OLED_BLOCK_SIZE)); 479 oled_dirty |= ((OLED_BLOCK_TYPE)1 << (i / OLED_BLOCK_SIZE));
@@ -511,8 +515,9 @@ void oled_write_ln_P(const char *data, bool invert) {
511} 515}
512 516
513void oled_write_raw_P(const char *data, uint16_t size) { 517void oled_write_raw_P(const char *data, uint16_t size) {
514 if (size > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE; 518 uint16_t cursor_start_index = oled_cursor - &oled_buffer[0];
515 for (uint16_t i = 0; i < size; i++) { 519 if ((size + cursor_start_index) > OLED_MATRIX_SIZE) size = OLED_MATRIX_SIZE - cursor_start_index;
520 for (uint16_t i = cursor_start_index; i < cursor_start_index + size; i++) {
516 uint8_t c = pgm_read_byte(data++); 521 uint8_t c = pgm_read_byte(data++);
517 if (oled_buffer[i] == c) continue; 522 if (oled_buffer[i] == c) continue;
518 oled_buffer[i] = c; 523 oled_buffer[i] = c;
@@ -650,9 +655,16 @@ void oled_task(void) {
650 return; 655 return;
651 } 656 }
652 657
658#if OLED_UPDATE_INTERVAL > 0
659 if (timer_elapsed(oled_update_timeout) >= OLED_UPDATE_INTERVAL) {
660 oled_update_timeout = timer_read();
661 oled_set_cursor(0, 0);
662 oled_task_user();
663 }
664#else
653 oled_set_cursor(0, 0); 665 oled_set_cursor(0, 0);
654
655 oled_task_user(); 666 oled_task_user();
667#endif
656 668
657#if OLED_SCROLL_TIMEOUT > 0 669#if OLED_SCROLL_TIMEOUT > 0
658 if (oled_dirty && oled_scrolling) { 670 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
25NKRO_ENABLE = no # USB Nkey Rollover 25NKRO_ENABLE = no # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default 26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
27RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 27RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
28RGB_MATRIX_ENABLE = WS2812 28RGB_MATRIX_ENABLE = yes
29RGB_MATRIX_DRIVER = WS2812
29MIDI_ENABLE = no # MIDI support 30MIDI_ENABLE = no # MIDI support
30UNICODE_ENABLE = no # Unicode 31UNICODE_ENABLE = no # Unicode
31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 32BLUETOOTH_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 @@
1/* Copyright 2017 Paul Ewing 1/* Copyright 2020 Harrison Chan (Xelus)
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -14,6 +14,4 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#pragma once 17#include "config_common.h"
18
19// place overrides here
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 @@
1#pragma once
2
3#include "quantum.h"
4
5#if defined(KEYBOARD_aeboards_ext65_rev1)
6 #include "rev1.h"
7#elif defined(KEYBOARD_aeboards_ext65_rev2)
8 #include "rev2.h"
9#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 @@
1/* Copyright 2018 Jason Williams (Wilba) 1/* Copyright 2020 Harrison Chan (Xelus)
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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] = {
30 * `------------------------------------------------------------------------------------------' 30 * `------------------------------------------------------------------------------------------'
31 */ 31 */
32 [0] = LAYOUT_ext65( 32 [0] = LAYOUT_ext65(
33 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, 33 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,
34 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 , 34 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 ,
35 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, 35 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,
36 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, 36 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,
37 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 37 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
38 ), 38 ),
39 39
40 [1] = LAYOUT_ext65( 40 [1] = LAYOUT_ext65(
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, 41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 42 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,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 43 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,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 44 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,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
46 ), 46 ),
47 47
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 @@
1/* Copyright 2018 Jason Williams (Wilba) 1/* Copyright 2020 Harrison Chan (Xelus)
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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] = {
30 * `------------------------------------------------------------------------------------------' 30 * `------------------------------------------------------------------------------------------'
31 */ 31 */
32 [0] = LAYOUT_ext65( 32 [0] = LAYOUT_ext65(
33 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, 33 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,
34 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 , 34 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 ,
35 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, 35 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,
36 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, 36 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,
37 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 37 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
38 ), 38 ),
39 39
40 [1] = LAYOUT_ext65( 40 [1] = LAYOUT_ext65(
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, 41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 42 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,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 43 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,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 44 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,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
46 ), 46 ),
47 47
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 @@
1# EXT65
2
3A southpaw inspired keyboard by [AEBoards](https://aeboards.com/)
4
5* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
6* Hardware Supported: EXT65 Rev1, Rev2
7* Hardware Availability: Custom keyboard group buys
8
9Make example for this keyboard (after setting up your build environment):
10
11 make aeboards/ext65/rev1:default
12 make aeboards/ext65/rev2:default
13
14Flashing example for this keyboard:
15
16 make aeboards/ext65/rev1:default:flash
17 make aeboards/ext65/rev2:default:flash
18
19See 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 @@
22#define VENDOR_ID 0x4145 // "AE" 22#define VENDOR_ID 0x4145 // "AE"
23#define PRODUCT_ID 0xAE65 // AEboards EXT65 23#define PRODUCT_ID 0xAE65 // AEboards EXT65
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER AEboards 25#define MANUFACTURER AEBoards
26#define PRODUCT AEboards Ext65 26#define PRODUCT AEBoards Ext65
27#define DESCRIPTION AEboards Ext65
28 27
29/* key matrix size */ 28/* key matrix size */
30#define MATRIX_ROWS 10 29#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 @@
1/* Copyright 2018 Jason Williams (Wilba)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Keymap BASE: (Base Layer) Default Layer
20 * ,-------------------. ,-------------------------------------------------------------------.
21 * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr|
22 * |-------------------| |-------------------------------------------------------------------|
23 * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del |
24 * | + |--------------| |-------------------------------------------------------------------|
25 * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup|
26 * |-------------------| |-------------------------------------------------------------------|
27 * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn|
28 * | ENT|-------------------------------------------------------------------------------------|
29 * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
30 * `------------------------------------------------------------------------------------------'
31 */
32 [0] = LAYOUT_ext65(
33 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,
34 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 ,
35 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,
36 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,
37 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
38 ),
39
40 [1] = LAYOUT_ext65(
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
46 ),
47
48 [2] = LAYOUT_ext65(
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
51 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
53 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
54 ),
55
56 [3] = LAYOUT_ext65(
57 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
58 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
59 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
60 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
62 )
63};
64
65void keyboard_pre_init_user(void) {
66 // Call the keyboard pre init code.
67
68 // Set our LED pins as output
69 setPinOutput(D5);
70 setPinOutput(D3);
71 setPinOutput(D2);
72 setPinOutput(D1);
73}
74
75void led_set_user(uint8_t usb_led) {
76 if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
77 writePinHigh(D5);
78 } else {
79 writePinLow(D5);
80 }
81 if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
82 writePinHigh(D3);
83 } else {
84 writePinLow(D3);
85 }
86 if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
87 writePinHigh(D2);
88 } else {
89 writePinLow(D2);
90 }
91}
92
93layer_state_t layer_state_set_user(layer_state_t state) {
94 switch (get_highest_layer(state)) {
95 case 1:
96 writePinHigh(D1);
97 break;
98 default: // for any other layers, or the default layer
99 writePinLow(D1);
100 break;
101 }
102 return state;
103}
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 @@
1# The Default Ext65 Layout
2
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 @@
1/* Copyright 2018 Jason Williams (Wilba)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 /* Keymap BASE: (Base Layer) Default Layer
20 * ,-------------------. ,-------------------------------------------------------------------.
21 * |- | * | / |NmLK| |Esc| 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|pipe| ~ | Pscr|
22 * |-------------------| |-------------------------------------------------------------------|
23 * | | 9 | 8 | 7 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| BSPC | Del |
24 * | + |--------------| |-------------------------------------------------------------------|
25 * | | 6 | 5 | 4 | |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | Pgup|
26 * |-------------------| |-------------------------------------------------------------------|
27 * | | 3 | 2 | 1 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | Pgdn|
28 * | ENT|-------------------------------------------------------------------------------------|
29 * | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
30 * `------------------------------------------------------------------------------------------'
31 */
32 [0] = LAYOUT_ext65(
33 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,
34 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 ,
35 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,
36 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,
37 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
38 ),
39
40 [1] = LAYOUT_ext65(
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
46 ),
47
48 [2] = LAYOUT_ext65(
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
50 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
51 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
52 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
53 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
54 ),
55
56 [3] = LAYOUT_ext65(
57 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
58 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
59 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
60 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
62 )
63};
64
65void keyboard_pre_init_user(void) {
66 // Call the keyboard pre init code.
67
68 // Set our LED pins as output
69 setPinOutput(D5);
70 setPinOutput(D3);
71 setPinOutput(D2);
72 setPinOutput(D1);
73}
74
75void led_set_user(uint8_t usb_led) {
76 if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
77 writePinHigh(D5);
78 } else {
79 writePinLow(D5);
80 }
81 if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
82 writePinHigh(D3);
83 } else {
84 writePinLow(D3);
85 }
86 if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
87 writePinHigh(D2);
88 } else {
89 writePinLow(D2);
90 }
91}
92
93uint32_t layer_state_set_user(uint32_t state) {
94 switch (biton32(state)) {
95 case 1:
96 writePinHigh(D1);
97 break;
98 default: // for any other layers, or the default layer
99 writePinLow(D1);
100 break;
101 }
102 return state;
103}
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 @@
1# The VIA Ext65 Layout
2
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 @@
1EXT65
2===
3
4A southpaw inspired keyboard by [aeboards](https://aeboards.com/)
5
6Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
7Hardware Supported: EXT65
8Hardware Availability: Custom keyboard group buys
9
10Make example for this keyboard (after setting up your build environment):
11
12 make aeboards/ext65/rev1:default
13
14See 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 @@
1/* Copyright 2018 Jason Williams (Wilba) 1#include "rev1.h"
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16 2
17// Nothing to see here, move along... ;-) 3void keyboard_pre_init_user(void) {
4 // Call the keyboard pre init code.
5 // Set our LED pins as output
6 setPinOutput(D5);
7 setPinOutput(D3);
8 setPinOutput(D2);
9 setPinOutput(D1);
10}
18 11
12bool led_update_kb(led_t led_state) {
13 bool res = led_update_user(led_state);
14 if(res) {
15 writePin(D5, led_state.num_lock);
16 writePin(D3, led_state.caps_lock);
17 writePin(D2, led_state.scroll_lock);
18 }
19 return res;
20}
21
22layer_state_t layer_state_set_kb(layer_state_t state) {
23 switch (get_highest_layer(state)) {
24 case 1:
25 writePinHigh(D1);
26 break;
27 default: // for any other layers, or the default layer
28 writePinLow(D1);
29 break;
30 }
31 return layer_state_set_user(state);
32}
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 @@
1/* Copyright 2018 Jason Williams (Wilba) 1/* Copyright 2020 Harrison Chan (Xelus)
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -16,6 +16,7 @@
16 16
17#pragma once 17#pragma once
18 18
19#include "ext65.h"
19#include "quantum.h" 20#include "quantum.h"
20 21
21#define ____ KC_NO 22#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/>.
21#define VENDOR_ID 0x4145 // "AE" 21#define VENDOR_ID 0x4145 // "AE"
22#define PRODUCT_ID 0xA652 // AEboards EXT65 Rev2 22#define PRODUCT_ID 0xA652 // AEboards EXT65 Rev2
23#define DEVICE_VER 0x0001 23#define DEVICE_VER 0x0001
24#define MANUFACTURER AEboards 24#define MANUFACTURER AEBoards
25#define PRODUCT AEBoards Ext65 Rev2 25#define PRODUCT AEBoards Ext65 Rev2
26 26
27/* key matrix size */ 27/* 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 @@
1/* Copyright 2020 Harrison Chan (Xelus)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
1#pragma once 17#pragma once
2 18
19#include "ext65.h"
3#include "quantum.h" 20#include "quantum.h"
4 21
5#define ____ KC_NO 22#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 @@
1/* 1/*
2Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2019 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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 @@
1/* 1/*
2Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2019 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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 @@
1#include "660m.h" 1#include "660m.h"
2
3void board_init(void) {
4 SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
5 SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
6}
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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17/*
18 * This file has been automatically generated using ChibiStudio board
19 * generator plugin. Do not edit manually.
20 */
21
22#include "hal.h"
23#include "stm32_gpio.h"
24
25/*===========================================================================*/
26/* Driver local definitions. */
27/*===========================================================================*/
28
29/*===========================================================================*/
30/* Driver exported variables. */
31/*===========================================================================*/
32
33/*===========================================================================*/
34/* Driver local variables and types. */
35/*===========================================================================*/
36
37/**
38 * @brief Type of STM32 GPIO port setup.
39 */
40typedef struct {
41 uint32_t moder;
42 uint32_t otyper;
43 uint32_t ospeedr;
44 uint32_t pupdr;
45 uint32_t odr;
46 uint32_t afrl;
47 uint32_t afrh;
48} gpio_setup_t;
49
50/**
51 * @brief Type of STM32 GPIO initialization data.
52 */
53typedef struct {
54#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
55 gpio_setup_t PAData;
56#endif
57#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
58 gpio_setup_t PBData;
59#endif
60#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
61 gpio_setup_t PCData;
62#endif
63#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
64 gpio_setup_t PDData;
65#endif
66#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
67 gpio_setup_t PEData;
68#endif
69#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
70 gpio_setup_t PFData;
71#endif
72#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
73 gpio_setup_t PGData;
74#endif
75#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
76 gpio_setup_t PHData;
77#endif
78#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
79 gpio_setup_t PIData;
80#endif
81#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
82 gpio_setup_t PJData;
83#endif
84#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
85 gpio_setup_t PKData;
86#endif
87} gpio_config_t;
88
89/**
90 * @brief STM32 GPIO static initialization data.
91 */
92static const gpio_config_t gpio_default_config = {
93#if STM32_HAS_GPIOA
94 {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
95 VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
96#endif
97#if STM32_HAS_GPIOB
98 {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
99 VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
100#endif
101#if STM32_HAS_GPIOC
102 {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
103 VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
104#endif
105#if STM32_HAS_GPIOD
106 {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
107 VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
108#endif
109#if STM32_HAS_GPIOE
110 {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
111 VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
112#endif
113#if STM32_HAS_GPIOF
114 {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
115 VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
116#endif
117#if STM32_HAS_GPIOG
118 {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
119 VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
120#endif
121#if STM32_HAS_GPIOH
122 {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
123 VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
124#endif
125#if STM32_HAS_GPIOI
126 {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
127 VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
128#endif
129#if STM32_HAS_GPIOJ
130 {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR,
131 VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
132#endif
133#if STM32_HAS_GPIOK
134 {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR,
135 VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
136#endif
137};
138
139/*===========================================================================*/
140/* Driver local functions. */
141/*===========================================================================*/
142
143static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
144
145 gpiop->OTYPER = config->otyper;
146 gpiop->OSPEEDR = config->ospeedr;
147 gpiop->PUPDR = config->pupdr;
148 gpiop->ODR = config->odr;
149 gpiop->AFRL = config->afrl;
150 gpiop->AFRH = config->afrh;
151 gpiop->MODER = config->moder;
152}
153
154static void stm32_gpio_init(void) {
155
156 /* Enabling GPIO-related clocks, the mask comes from the
157 registry header file.*/
158 rccResetAHB(STM32_GPIO_EN_MASK);
159 rccEnableAHB(STM32_GPIO_EN_MASK, true);
160
161 /* Initializing all the defined GPIO ports.*/
162#if STM32_HAS_GPIOA
163 gpio_init(GPIOA, &gpio_default_config.PAData);
164#endif
165#if STM32_HAS_GPIOB
166 gpio_init(GPIOB, &gpio_default_config.PBData);
167#endif
168#if STM32_HAS_GPIOC
169 gpio_init(GPIOC, &gpio_default_config.PCData);
170#endif
171#if STM32_HAS_GPIOD
172 gpio_init(GPIOD, &gpio_default_config.PDData);
173#endif
174#if STM32_HAS_GPIOE
175 gpio_init(GPIOE, &gpio_default_config.PEData);
176#endif
177#if STM32_HAS_GPIOF
178 gpio_init(GPIOF, &gpio_default_config.PFData);
179#endif
180#if STM32_HAS_GPIOG
181 gpio_init(GPIOG, &gpio_default_config.PGData);
182#endif
183#if STM32_HAS_GPIOH
184 gpio_init(GPIOH, &gpio_default_config.PHData);
185#endif
186#if STM32_HAS_GPIOI
187 gpio_init(GPIOI, &gpio_default_config.PIData);
188#endif
189#if STM32_HAS_GPIOJ
190 gpio_init(GPIOJ, &gpio_default_config.PJData);
191#endif
192#if STM32_HAS_GPIOK
193 gpio_init(GPIOK, &gpio_default_config.PKData);
194#endif
195}
196
197/*===========================================================================*/
198/* Driver interrupt handlers. */
199/*===========================================================================*/
200
201/*===========================================================================*/
202/* Driver exported functions. */
203/*===========================================================================*/
204
205/**
206 * @brief Early initialization code.
207 * @details GPIO ports and system clocks are initialized before everything
208 * else.
209 */
210void __early_init(void) {
211 extern void enter_bootloader_mode_if_requested(void);
212 enter_bootloader_mode_if_requested();
213 stm32_gpio_init();
214 stm32_clock_init();
215}
216
217#if HAL_USE_SDC || defined(__DOXYGEN__)
218/**
219 * @brief SDC card detection.
220 */
221bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
222
223 (void)sdcp;
224 /* TODO: Fill the implementation.*/
225 return true;
226}
227
228/**
229 * @brief SDC card write protection detection.
230 */
231bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
232
233 (void)sdcp;
234 /* TODO: Fill the implementation.*/
235 return false;
236}
237#endif /* HAL_USE_SDC */
238
239#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
240/**
241 * @brief MMC_SPI card detection.
242 */
243bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
244
245 (void)mmcp;
246 /* TODO: Fill the implementation.*/
247 return true;
248}
249
250/**
251 * @brief MMC_SPI card write protection detection.
252 */
253bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
254
255 (void)mmcp;
256 /* TODO: Fill the implementation.*/
257 return false;
258}
259#endif
260
261/**
262 * @brief Board-specific initialization code.
263 * @todo Add your board-specific code, if any.
264 */
265void boardInit(void) {
266 SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
267 SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
268}
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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17/*
18 * This file has been automatically generated using ChibiStudio board
19 * generator plugin. Do not edit manually.
20 */
21
22#ifndef BOARD_H
23#define BOARD_H
24
25/*===========================================================================*/
26/* Driver constants. */
27/*===========================================================================*/
28
29/*
30 * Setup for ST STM32F072B-Discovery board.
31 */
32
33/*
34 * Board identifier.
35 */
36#define BOARD_ST_STM32F072B_DISCOVERY
37#define BOARD_NAME "ST STM32F072B-Discovery"
38
39/*
40 * Board oscillators-related settings.
41 * NOTE: HSE not fitted.
42 */
43#if !defined(STM32_LSECLK)
44#define STM32_LSECLK 32768
45#endif
46
47#define STM32_LSEDRV (3U << 3U)
48
49#if !defined(STM32_HSECLK)
50#define STM32_HSECLK 0U
51#endif
52
53#define STM32_HSE_BYPASS
54
55/*
56 * MCU type as defined in the ST header.
57 */
58#define STM32F072xB
59
60/*
61 * IO pins assignments.
62 */
63#define GPIOA_BUTTON 0U
64#define GPIOA_PIN1 1U
65#define GPIOA_PIN2 2U
66#define GPIOA_PIN3 3U
67#define GPIOA_PIN4 4U
68#define GPIOA_PIN5 5U
69#define GPIOA_PIN6 6U
70#define GPIOA_PIN7 7U
71#define GPIOA_PIN8 8U
72#define GPIOA_PIN9 9U
73#define GPIOA_PIN10 10U
74#define GPIOA_USB_DM 11U
75#define GPIOA_USB_DP 12U
76#define GPIOA_SWDIO 13U
77#define GPIOA_SWCLK 14U
78#define GPIOA_PIN15 15U
79
80#define GPIOB_PIN0 0U
81#define GPIOB_PIN1 1U
82#define GPIOB_PIN2 2U
83#define GPIOB_PIN3 3U
84#define GPIOB_PIN4 4U
85#define GPIOB_PIN5 5U
86#define GPIOB_PIN6 6U
87#define GPIOB_PIN7 7U
88#define GPIOB_PIN8 8U
89#define GPIOB_PIN9 9U
90#define GPIOB_PIN10 10U
91#define GPIOB_PIN11 11U
92#define GPIOB_PIN12 12U
93#define GPIOB_SPI2_SCK 13U
94#define GPIOB_SPI2_MISO 14U
95#define GPIOB_SPI2_MOSI 15U
96
97#define GPIOC_MEMS_CS 0U
98#define GPIOC_PIN1 1U
99#define GPIOC_PIN2 2U
100#define GPIOC_PIN3 3U
101#define GPIOC_PIN4 4U
102#define GPIOC_PIN5 5U
103#define GPIOC_LED_RED 6U
104#define GPIOC_LED_BLUE 7U
105#define GPIOC_LED_ORANGE 8U
106#define GPIOC_LED_GREEN 9U
107#define GPIOC_PIN10 10U
108#define GPIOC_PIN11 11U
109#define GPIOC_PIN12 12U
110#define GPIOC_PIN13 13U
111#define GPIOC_OSC32_IN 14U
112#define GPIOC_OSC32_OUT 15U
113
114#define GPIOD_PIN0 0U
115#define GPIOD_PIN1 1U
116#define GPIOD_PIN2 2U
117#define GPIOD_PIN3 3U
118#define GPIOD_PIN4 4U
119#define GPIOD_PIN5 5U
120#define GPIOD_PIN6 6U
121#define GPIOD_PIN7 7U
122#define GPIOD_PIN8 8U
123#define GPIOD_PIN9 9U
124#define GPIOD_PIN10 10U
125#define GPIOD_PIN11 11U
126#define GPIOD_PIN12 12U
127#define GPIOD_PIN13 13U
128#define GPIOD_PIN14 14U
129#define GPIOD_PIN15 15U
130
131#define GPIOE_PIN0 0U
132#define GPIOE_PIN1 1U
133#define GPIOE_PIN2 2U
134#define GPIOE_PIN3 3U
135#define GPIOE_PIN4 4U
136#define GPIOE_PIN5 5U
137#define GPIOE_PIN6 6U
138#define GPIOE_PIN7 7U
139#define GPIOE_PIN8 8U
140#define GPIOE_PIN9 9U
141#define GPIOE_PIN10 10U
142#define GPIOE_PIN11 11U
143#define GPIOE_PIN12 12U
144#define GPIOE_PIN13 13U
145#define GPIOE_PIN14 14U
146#define GPIOE_PIN15 15U
147
148#define GPIOF_OSC_IN 0U
149#define GPIOF_OSC_OUT 1U
150#define GPIOF_PIN2 2U
151#define GPIOF_PIN3 3U
152#define GPIOF_PIN4 4U
153#define GPIOF_PIN5 5U
154#define GPIOF_PIN6 6U
155#define GPIOF_PIN7 7U
156#define GPIOF_PIN8 8U
157#define GPIOF_PIN9 9U
158#define GPIOF_PIN10 10U
159#define GPIOF_PIN11 11U
160#define GPIOF_PIN12 12U
161#define GPIOF_PIN13 13U
162#define GPIOF_PIN14 14U
163#define GPIOF_PIN15 15U
164
165/*
166 * IO lines assignments.
167 */
168#define LINE_BUTTON PAL_LINE(GPIOA, 0U)
169#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
170#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
171#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
172#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
173#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U)
174#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U)
175#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U)
176#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U)
177#define LINE_LED_RED PAL_LINE(GPIOC, 6U)
178#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U)
179#define LINE_LED_ORANGE PAL_LINE(GPIOC, 8U)
180#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U)
181#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U)
182#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U)
183#define LINE_OSC_IN PAL_LINE(GPIOF, 0U)
184#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U)
185
186/*===========================================================================*/
187/* Driver pre-compile time settings. */
188/*===========================================================================*/
189
190/*===========================================================================*/
191/* Derived constants and error checks. */
192/*===========================================================================*/
193
194/*===========================================================================*/
195/* Driver data structures and types. */
196/*===========================================================================*/
197
198/*===========================================================================*/
199/* Driver macros. */
200/*===========================================================================*/
201
202/*
203 * I/O ports initial setup, this configuration is established soon after reset
204 * in the initialization code.
205 * Please refer to the STM32 Reference Manual for details.
206 */
207#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
208#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
209#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
210#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
211#define PIN_ODR_LOW(n) (0U << (n))
212#define PIN_ODR_HIGH(n) (1U << (n))
213#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
214#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
215#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
216#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
217#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
218#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
219#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
220#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
221#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
222#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
223
224/*
225 * GPIOA setup:
226 *
227 * PA0 - BUTTON (input floating).
228 * PA1 - PIN1 (input pullup).
229 * PA2 - PIN2 (input pullup).
230 * PA3 - PIN3 (input pullup).
231 * PA4 - PIN4 (input pullup).
232 * PA5 - PIN5 (input pullup).
233 * PA6 - PIN6 (input pullup).
234 * PA7 - PIN7 (input pullup).
235 * PA8 - PIN8 (input pullup).
236 * PA9 - PIN9 (input pullup).
237 * PA10 - PIN10 (input pullup).
238 * PA11 - USB_DM (input floating).
239 * PA12 - USB_DP (input floating).
240 * PA13 - SWDIO (alternate 0).
241 * PA14 - SWCLK (alternate 0).
242 * PA15 - PIN15 (input pullup).
243 */
244#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \
245 PIN_MODE_INPUT(GPIOA_PIN1) | \
246 PIN_MODE_INPUT(GPIOA_PIN2) | \
247 PIN_MODE_INPUT(GPIOA_PIN3) | \
248 PIN_MODE_INPUT(GPIOA_PIN4) | \
249 PIN_MODE_INPUT(GPIOA_PIN5) | \
250 PIN_MODE_INPUT(GPIOA_PIN6) | \
251 PIN_MODE_INPUT(GPIOA_PIN7) | \
252 PIN_MODE_INPUT(GPIOA_PIN8) | \
253 PIN_MODE_INPUT(GPIOA_PIN9) | \
254 PIN_MODE_INPUT(GPIOA_PIN10) | \
255 PIN_MODE_INPUT(GPIOA_USB_DM) | \
256 PIN_MODE_INPUT(GPIOA_USB_DP) | \
257 PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \
258 PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \
259 PIN_MODE_INPUT(GPIOA_PIN15))
260#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \
261 PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \
262 PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \
263 PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \
264 PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \
265 PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \
266 PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \
267 PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \
268 PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \
269 PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \
270 PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \
271 PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \
272 PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \
273 PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \
274 PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \
275 PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
276#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_BUTTON) | \
277 PIN_OSPEED_VERYLOW(GPIOA_PIN1) | \
278 PIN_OSPEED_VERYLOW(GPIOA_PIN2) | \
279 PIN_OSPEED_VERYLOW(GPIOA_PIN3) | \
280 PIN_OSPEED_VERYLOW(GPIOA_PIN4) | \
281 PIN_OSPEED_VERYLOW(GPIOA_PIN5) | \
282 PIN_OSPEED_VERYLOW(GPIOA_PIN6) | \
283 PIN_OSPEED_VERYLOW(GPIOA_PIN7) | \
284 PIN_OSPEED_VERYLOW(GPIOA_PIN8) | \
285 PIN_OSPEED_VERYLOW(GPIOA_PIN9) | \
286 PIN_OSPEED_VERYLOW(GPIOA_PIN10) | \
287 PIN_OSPEED_VERYLOW(GPIOA_USB_DM) | \
288 PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | \
289 PIN_OSPEED_HIGH(GPIOA_SWDIO) | \
290 PIN_OSPEED_HIGH(GPIOA_SWCLK) | \
291 PIN_OSPEED_HIGH(GPIOA_PIN15))
292#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \
293 PIN_PUPDR_PULLUP(GPIOA_PIN1) | \
294 PIN_PUPDR_PULLUP(GPIOA_PIN2) | \
295 PIN_PUPDR_PULLUP(GPIOA_PIN3) | \
296 PIN_PUPDR_PULLUP(GPIOA_PIN4) | \
297 PIN_PUPDR_PULLUP(GPIOA_PIN5) | \
298 PIN_PUPDR_PULLUP(GPIOA_PIN6) | \
299 PIN_PUPDR_PULLUP(GPIOA_PIN7) | \
300 PIN_PUPDR_PULLUP(GPIOA_PIN8) | \
301 PIN_PUPDR_PULLUP(GPIOA_PIN9) | \
302 PIN_PUPDR_PULLUP(GPIOA_PIN10) | \
303 PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \
304 PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \
305 PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \
306 PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \
307 PIN_PUPDR_PULLUP(GPIOA_PIN15))
308#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \
309 PIN_ODR_HIGH(GPIOA_PIN1) | \
310 PIN_ODR_HIGH(GPIOA_PIN2) | \
311 PIN_ODR_HIGH(GPIOA_PIN3) | \
312 PIN_ODR_HIGH(GPIOA_PIN4) | \
313 PIN_ODR_HIGH(GPIOA_PIN5) | \
314 PIN_ODR_HIGH(GPIOA_PIN6) | \
315 PIN_ODR_HIGH(GPIOA_PIN7) | \
316 PIN_ODR_HIGH(GPIOA_PIN8) | \
317 PIN_ODR_HIGH(GPIOA_PIN9) | \
318 PIN_ODR_HIGH(GPIOA_PIN10) | \
319 PIN_ODR_HIGH(GPIOA_USB_DM) | \
320 PIN_ODR_HIGH(GPIOA_USB_DP) | \
321 PIN_ODR_HIGH(GPIOA_SWDIO) | \
322 PIN_ODR_HIGH(GPIOA_SWCLK) | \
323 PIN_ODR_HIGH(GPIOA_PIN15))
324#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \
325 PIN_AFIO_AF(GPIOA_PIN1, 0U) | \
326 PIN_AFIO_AF(GPIOA_PIN2, 0U) | \
327 PIN_AFIO_AF(GPIOA_PIN3, 0U) | \
328 PIN_AFIO_AF(GPIOA_PIN4, 0U) | \
329 PIN_AFIO_AF(GPIOA_PIN5, 0U) | \
330 PIN_AFIO_AF(GPIOA_PIN6, 0U) | \
331 PIN_AFIO_AF(GPIOA_PIN7, 0U))
332#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0U) | \
333 PIN_AFIO_AF(GPIOA_PIN9, 0U) | \
334 PIN_AFIO_AF(GPIOA_PIN10, 0U) | \
335 PIN_AFIO_AF(GPIOA_USB_DM, 0U) | \
336 PIN_AFIO_AF(GPIOA_USB_DP, 0U) | \
337 PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \
338 PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \
339 PIN_AFIO_AF(GPIOA_PIN15, 0U))
340
341/*
342 * GPIOB setup:
343 *
344 * PB0 - PIN0 (input pullup).
345 * PB1 - PIN1 (input pullup).
346 * PB2 - PIN2 (input pullup).
347 * PB3 - PIN3 (input pullup).
348 * PB4 - PIN4 (input pullup).
349 * PB5 - PIN5 (input pullup).
350 * PB6 - PIN6 (input pullup).
351 * PB7 - PIN7 (input pullup).
352 * PB8 - PIN8 (input pullup).
353 * PB9 - PIN9 (input pullup).
354 * PB10 - PIN10 (input pullup).
355 * PB11 - PIN11 (input pullup).
356 * PB12 - PIN12 (input pullup).
357 * PB13 - SPI2_SCK (alternate 0).
358 * PB14 - SPI2_MISO (alternate 0).
359 * PB15 - SPI2_MOSI (alternate 0).
360 */
361#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \
362 PIN_MODE_INPUT(GPIOB_PIN1) | \
363 PIN_MODE_INPUT(GPIOB_PIN2) | \
364 PIN_MODE_INPUT(GPIOB_PIN3) | \
365 PIN_MODE_INPUT(GPIOB_PIN4) | \
366 PIN_MODE_INPUT(GPIOB_PIN5) | \
367 PIN_MODE_INPUT(GPIOB_PIN6) | \
368 PIN_MODE_INPUT(GPIOB_PIN7) | \
369 PIN_MODE_INPUT(GPIOB_PIN8) | \
370 PIN_MODE_INPUT(GPIOB_PIN9) | \
371 PIN_MODE_INPUT(GPIOB_PIN10) | \
372 PIN_MODE_INPUT(GPIOB_PIN11) | \
373 PIN_MODE_INPUT(GPIOB_PIN12) | \
374 PIN_MODE_ALTERNATE(GPIOB_SPI2_SCK) | \
375 PIN_MODE_ALTERNATE(GPIOB_SPI2_MISO) | \
376 PIN_MODE_ALTERNATE(GPIOB_SPI2_MOSI))
377#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \
378 PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \
379 PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \
380 PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \
381 PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \
382 PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \
383 PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \
384 PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \
385 PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \
386 PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \
387 PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \
388 PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \
389 PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \
390 PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SCK) | \
391 PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MISO) | \
392 PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MOSI))
393#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | \
394 PIN_OSPEED_VERYLOW(GPIOB_PIN1) | \
395 PIN_OSPEED_HIGH(GPIOB_PIN2) | \
396 PIN_OSPEED_HIGH(GPIOB_PIN3) | \
397 PIN_OSPEED_HIGH(GPIOB_PIN4) | \
398 PIN_OSPEED_VERYLOW(GPIOB_PIN5) | \
399 PIN_OSPEED_VERYLOW(GPIOB_PIN6) | \
400 PIN_OSPEED_VERYLOW(GPIOB_PIN7) | \
401 PIN_OSPEED_VERYLOW(GPIOB_PIN8) | \
402 PIN_OSPEED_VERYLOW(GPIOB_PIN9) | \
403 PIN_OSPEED_VERYLOW(GPIOB_PIN10) | \
404 PIN_OSPEED_VERYLOW(GPIOB_PIN11) | \
405 PIN_OSPEED_VERYLOW(GPIOB_PIN12) | \
406 PIN_OSPEED_VERYLOW(GPIOB_SPI2_SCK) | \
407 PIN_OSPEED_VERYLOW(GPIOB_SPI2_MISO) | \
408 PIN_OSPEED_VERYLOW(GPIOB_SPI2_MOSI))
409#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \
410 PIN_PUPDR_PULLUP(GPIOB_PIN1) | \
411 PIN_PUPDR_PULLUP(GPIOB_PIN2) | \
412 PIN_PUPDR_PULLUP(GPIOB_PIN3) | \
413 PIN_PUPDR_PULLUP(GPIOB_PIN4) | \
414 PIN_PUPDR_PULLUP(GPIOB_PIN5) | \
415 PIN_PUPDR_PULLUP(GPIOB_PIN6) | \
416 PIN_PUPDR_PULLUP(GPIOB_PIN7) | \
417 PIN_PUPDR_PULLUP(GPIOB_PIN8) | \
418 PIN_PUPDR_PULLUP(GPIOB_PIN9) | \
419 PIN_PUPDR_PULLUP(GPIOB_PIN10) | \
420 PIN_PUPDR_PULLUP(GPIOB_PIN11) | \
421 PIN_PUPDR_PULLUP(GPIOB_PIN12) | \
422 PIN_PUPDR_FLOATING(GPIOB_SPI2_SCK) | \
423 PIN_PUPDR_FLOATING(GPIOB_SPI2_MISO) | \
424 PIN_PUPDR_FLOATING(GPIOB_SPI2_MOSI))
425#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \
426 PIN_ODR_HIGH(GPIOB_PIN1) | \
427 PIN_ODR_HIGH(GPIOB_PIN2) | \
428 PIN_ODR_HIGH(GPIOB_PIN3) | \
429 PIN_ODR_HIGH(GPIOB_PIN4) | \
430 PIN_ODR_HIGH(GPIOB_PIN5) | \
431 PIN_ODR_HIGH(GPIOB_PIN6) | \
432 PIN_ODR_HIGH(GPIOB_PIN7) | \
433 PIN_ODR_HIGH(GPIOB_PIN8) | \
434 PIN_ODR_HIGH(GPIOB_PIN9) | \
435 PIN_ODR_HIGH(GPIOB_PIN10) | \
436 PIN_ODR_HIGH(GPIOB_PIN11) | \
437 PIN_ODR_HIGH(GPIOB_PIN12) | \
438 PIN_ODR_HIGH(GPIOB_SPI2_SCK) | \
439 PIN_ODR_HIGH(GPIOB_SPI2_MISO) | \
440 PIN_ODR_HIGH(GPIOB_SPI2_MOSI))
441#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \
442 PIN_AFIO_AF(GPIOB_PIN1, 0U) | \
443 PIN_AFIO_AF(GPIOB_PIN2, 0U) | \
444 PIN_AFIO_AF(GPIOB_PIN3, 0U) | \
445 PIN_AFIO_AF(GPIOB_PIN4, 0U) | \
446 PIN_AFIO_AF(GPIOB_PIN5, 0U) | \
447 PIN_AFIO_AF(GPIOB_PIN6, 0U) | \
448 PIN_AFIO_AF(GPIOB_PIN7, 0U))
449#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \
450 PIN_AFIO_AF(GPIOB_PIN9, 0U) | \
451 PIN_AFIO_AF(GPIOB_PIN10, 0U) | \
452 PIN_AFIO_AF(GPIOB_PIN11, 0U) | \
453 PIN_AFIO_AF(GPIOB_PIN12, 0U) | \
454 PIN_AFIO_AF(GPIOB_SPI2_SCK, 0U) | \
455 PIN_AFIO_AF(GPIOB_SPI2_MISO, 0U) | \
456 PIN_AFIO_AF(GPIOB_SPI2_MOSI, 0U))
457
458/*
459 * GPIOC setup:
460 *
461 * PC0 - MEMS_CS (output pushpull maximum).
462 * PC1 - PIN1 (input pullup).
463 * PC2 - PIN2 (input pullup).
464 * PC3 - PIN3 (input pullup).
465 * PC4 - PIN4 (input pullup).
466 * PC5 - PIN5 (input pullup).
467 * PC6 - LED_RED (output pushpull maximum).
468 * PC7 - LED_BLUE (output pushpull maximum).
469 * PC8 - LED_ORANGE (output pushpull maximum).
470 * PC9 - LED_GREEN (output pushpull maximum).
471 * PC10 - PIN10 (input pullup).
472 * PC11 - PIN11 (input pullup).
473 * PC12 - PIN12 (input pullup).
474 * PC13 - PIN13 (input pullup).
475 * PC14 - OSC32_IN (input floating).
476 * PC15 - OSC32_OUT (input floating).
477 */
478#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_MEMS_CS) | \
479 PIN_MODE_INPUT(GPIOC_PIN1) | \
480 PIN_MODE_INPUT(GPIOC_PIN2) | \
481 PIN_MODE_INPUT(GPIOC_PIN3) | \
482 PIN_MODE_INPUT(GPIOC_PIN4) | \
483 PIN_MODE_INPUT(GPIOC_PIN5) | \
484 PIN_MODE_OUTPUT(GPIOC_LED_RED) | \
485 PIN_MODE_OUTPUT(GPIOC_LED_BLUE) | \
486 PIN_MODE_OUTPUT(GPIOC_LED_ORANGE) | \
487 PIN_MODE_OUTPUT(GPIOC_LED_GREEN) | \
488 PIN_MODE_INPUT(GPIOC_PIN10) | \
489 PIN_MODE_INPUT(GPIOC_PIN11) | \
490 PIN_MODE_INPUT(GPIOC_PIN12) | \
491 PIN_MODE_INPUT(GPIOC_PIN13) | \
492 PIN_MODE_INPUT(GPIOC_OSC32_IN) | \
493 PIN_MODE_INPUT(GPIOC_OSC32_OUT))
494#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_MEMS_CS) | \
495 PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \
496 PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \
497 PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \
498 PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \
499 PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \
500 PIN_OTYPE_PUSHPULL(GPIOC_LED_RED) | \
501 PIN_OTYPE_PUSHPULL(GPIOC_LED_BLUE) | \
502 PIN_OTYPE_PUSHPULL(GPIOC_LED_ORANGE) | \
503 PIN_OTYPE_PUSHPULL(GPIOC_LED_GREEN) | \
504 PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \
505 PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \
506 PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \
507 PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \
508 PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \
509 PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT))
510#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_MEMS_CS) | \
511 PIN_OSPEED_VERYLOW(GPIOC_PIN1) | \
512 PIN_OSPEED_VERYLOW(GPIOC_PIN2) | \
513 PIN_OSPEED_VERYLOW(GPIOC_PIN3) | \
514 PIN_OSPEED_VERYLOW(GPIOC_PIN4) | \
515 PIN_OSPEED_VERYLOW(GPIOC_PIN5) | \
516 PIN_OSPEED_HIGH(GPIOC_LED_RED) | \
517 PIN_OSPEED_HIGH(GPIOC_LED_BLUE) | \
518 PIN_OSPEED_HIGH(GPIOC_LED_ORANGE) | \
519 PIN_OSPEED_HIGH(GPIOC_LED_GREEN) | \
520 PIN_OSPEED_VERYLOW(GPIOC_PIN10) | \
521 PIN_OSPEED_VERYLOW(GPIOC_PIN11) | \
522 PIN_OSPEED_VERYLOW(GPIOC_PIN12) | \
523 PIN_OSPEED_VERYLOW(GPIOC_PIN13) | \
524 PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | \
525 PIN_OSPEED_HIGH(GPIOC_OSC32_OUT))
526#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_MEMS_CS) | \
527 PIN_PUPDR_PULLUP(GPIOC_PIN1) | \
528 PIN_PUPDR_PULLUP(GPIOC_PIN2) | \
529 PIN_PUPDR_PULLUP(GPIOC_PIN3) | \
530 PIN_PUPDR_PULLUP(GPIOC_PIN4) | \
531 PIN_PUPDR_PULLUP(GPIOC_PIN5) | \
532 PIN_PUPDR_FLOATING(GPIOC_LED_RED) | \
533 PIN_PUPDR_FLOATING(GPIOC_LED_BLUE) | \
534 PIN_PUPDR_FLOATING(GPIOC_LED_ORANGE) | \
535 PIN_PUPDR_FLOATING(GPIOC_LED_GREEN) | \
536 PIN_PUPDR_PULLUP(GPIOC_PIN10) | \
537 PIN_PUPDR_PULLUP(GPIOC_PIN11) | \
538 PIN_PUPDR_PULLUP(GPIOC_PIN12) | \
539 PIN_PUPDR_PULLUP(GPIOC_PIN13) | \
540 PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \
541 PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT))
542#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_MEMS_CS) | \
543 PIN_ODR_HIGH(GPIOC_PIN1) | \
544 PIN_ODR_HIGH(GPIOC_PIN2) | \
545 PIN_ODR_HIGH(GPIOC_PIN3) | \
546 PIN_ODR_HIGH(GPIOC_PIN4) | \
547 PIN_ODR_HIGH(GPIOC_PIN5) | \
548 PIN_ODR_LOW(GPIOC_LED_RED) | \
549 PIN_ODR_LOW(GPIOC_LED_BLUE) | \
550 PIN_ODR_LOW(GPIOC_LED_ORANGE) | \
551 PIN_ODR_LOW(GPIOC_LED_GREEN) | \
552 PIN_ODR_HIGH(GPIOC_PIN10) | \
553 PIN_ODR_HIGH(GPIOC_PIN11) | \
554 PIN_ODR_HIGH(GPIOC_PIN12) | \
555 PIN_ODR_HIGH(GPIOC_PIN13) | \
556 PIN_ODR_HIGH(GPIOC_OSC32_IN) | \
557 PIN_ODR_HIGH(GPIOC_OSC32_OUT))
558#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_MEMS_CS, 0U) | \
559 PIN_AFIO_AF(GPIOC_PIN1, 0U) | \
560 PIN_AFIO_AF(GPIOC_PIN2, 0U) | \
561 PIN_AFIO_AF(GPIOC_PIN3, 0U) | \
562 PIN_AFIO_AF(GPIOC_PIN4, 0U) | \
563 PIN_AFIO_AF(GPIOC_PIN5, 0U) | \
564 PIN_AFIO_AF(GPIOC_LED_RED, 0U) | \
565 PIN_AFIO_AF(GPIOC_LED_BLUE, 0U))
566#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_LED_ORANGE, 0U) | \
567 PIN_AFIO_AF(GPIOC_LED_GREEN, 0U) | \
568 PIN_AFIO_AF(GPIOC_PIN10, 0U) | \
569 PIN_AFIO_AF(GPIOC_PIN11, 0U) | \
570 PIN_AFIO_AF(GPIOC_PIN12, 0U) | \
571 PIN_AFIO_AF(GPIOC_PIN13, 0U) | \
572 PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | \
573 PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U))
574
575/*
576 * GPIOD setup:
577 *
578 * PD0 - PIN0 (input pullup).
579 * PD1 - PIN1 (input pullup).
580 * PD2 - PIN2 (input pullup).
581 * PD3 - PIN3 (input pullup).
582 * PD4 - PIN4 (input pullup).
583 * PD5 - PIN5 (input pullup).
584 * PD6 - PIN6 (input pullup).
585 * PD7 - PIN7 (input pullup).
586 * PD8 - PIN8 (input pullup).
587 * PD9 - PIN9 (input pullup).
588 * PD10 - PIN10 (input pullup).
589 * PD11 - PIN11 (input pullup).
590 * PD12 - PIN12 (input pullup).
591 * PD13 - PIN13 (input pullup).
592 * PD14 - PIN14 (input pullup).
593 * PD15 - PIN15 (input pullup).
594 */
595#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \
596 PIN_MODE_INPUT(GPIOD_PIN1) | \
597 PIN_MODE_INPUT(GPIOD_PIN2) | \
598 PIN_MODE_INPUT(GPIOD_PIN3) | \
599 PIN_MODE_INPUT(GPIOD_PIN4) | \
600 PIN_MODE_INPUT(GPIOD_PIN5) | \
601 PIN_MODE_INPUT(GPIOD_PIN6) | \
602 PIN_MODE_INPUT(GPIOD_PIN7) | \
603 PIN_MODE_INPUT(GPIOD_PIN8) | \
604 PIN_MODE_INPUT(GPIOD_PIN9) | \
605 PIN_MODE_INPUT(GPIOD_PIN10) | \
606 PIN_MODE_INPUT(GPIOD_PIN11) | \
607 PIN_MODE_INPUT(GPIOD_PIN12) | \
608 PIN_MODE_INPUT(GPIOD_PIN13) | \
609 PIN_MODE_INPUT(GPIOD_PIN14) | \
610 PIN_MODE_INPUT(GPIOD_PIN15))
611#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \
612 PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \
613 PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \
614 PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \
615 PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \
616 PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \
617 PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \
618 PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \
619 PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \
620 PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \
621 PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \
622 PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \
623 PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \
624 PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \
625 PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \
626 PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
627#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | \
628 PIN_OSPEED_VERYLOW(GPIOD_PIN1) | \
629 PIN_OSPEED_VERYLOW(GPIOD_PIN2) | \
630 PIN_OSPEED_VERYLOW(GPIOD_PIN3) | \
631 PIN_OSPEED_VERYLOW(GPIOD_PIN4) | \
632 PIN_OSPEED_VERYLOW(GPIOD_PIN5) | \
633 PIN_OSPEED_VERYLOW(GPIOD_PIN6) | \
634 PIN_OSPEED_VERYLOW(GPIOD_PIN7) | \
635 PIN_OSPEED_VERYLOW(GPIOD_PIN8) | \
636 PIN_OSPEED_VERYLOW(GPIOD_PIN9) | \
637 PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \
638 PIN_OSPEED_VERYLOW(GPIOD_PIN11) | \
639 PIN_OSPEED_VERYLOW(GPIOD_PIN12) | \
640 PIN_OSPEED_VERYLOW(GPIOD_PIN13) | \
641 PIN_OSPEED_VERYLOW(GPIOD_PIN14) | \
642 PIN_OSPEED_VERYLOW(GPIOD_PIN15))
643#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \
644 PIN_PUPDR_PULLUP(GPIOD_PIN1) | \
645 PIN_PUPDR_PULLUP(GPIOD_PIN2) | \
646 PIN_PUPDR_PULLUP(GPIOD_PIN3) | \
647 PIN_PUPDR_PULLUP(GPIOD_PIN4) | \
648 PIN_PUPDR_PULLUP(GPIOD_PIN5) | \
649 PIN_PUPDR_PULLUP(GPIOD_PIN6) | \
650 PIN_PUPDR_PULLUP(GPIOD_PIN7) | \
651 PIN_PUPDR_PULLUP(GPIOD_PIN8) | \
652 PIN_PUPDR_PULLUP(GPIOD_PIN9) | \
653 PIN_PUPDR_PULLUP(GPIOD_PIN10) | \
654 PIN_PUPDR_PULLUP(GPIOD_PIN11) | \
655 PIN_PUPDR_PULLUP(GPIOD_PIN12) | \
656 PIN_PUPDR_PULLUP(GPIOD_PIN13) | \
657 PIN_PUPDR_PULLUP(GPIOD_PIN14) | \
658 PIN_PUPDR_PULLUP(GPIOD_PIN15))
659#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \
660 PIN_ODR_HIGH(GPIOD_PIN1) | \
661 PIN_ODR_HIGH(GPIOD_PIN2) | \
662 PIN_ODR_HIGH(GPIOD_PIN3) | \
663 PIN_ODR_HIGH(GPIOD_PIN4) | \
664 PIN_ODR_HIGH(GPIOD_PIN5) | \
665 PIN_ODR_HIGH(GPIOD_PIN6) | \
666 PIN_ODR_HIGH(GPIOD_PIN7) | \
667 PIN_ODR_HIGH(GPIOD_PIN8) | \
668 PIN_ODR_HIGH(GPIOD_PIN9) | \
669 PIN_ODR_HIGH(GPIOD_PIN10) | \
670 PIN_ODR_HIGH(GPIOD_PIN11) | \
671 PIN_ODR_HIGH(GPIOD_PIN12) | \
672 PIN_ODR_HIGH(GPIOD_PIN13) | \
673 PIN_ODR_HIGH(GPIOD_PIN14) | \
674 PIN_ODR_HIGH(GPIOD_PIN15))
675#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \
676 PIN_AFIO_AF(GPIOD_PIN1, 0U) | \
677 PIN_AFIO_AF(GPIOD_PIN2, 0U) | \
678 PIN_AFIO_AF(GPIOD_PIN3, 0U) | \
679 PIN_AFIO_AF(GPIOD_PIN4, 0U) | \
680 PIN_AFIO_AF(GPIOD_PIN5, 0U) | \
681 PIN_AFIO_AF(GPIOD_PIN6, 0U) | \
682 PIN_AFIO_AF(GPIOD_PIN7, 0U))
683#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \
684 PIN_AFIO_AF(GPIOD_PIN9, 0U) | \
685 PIN_AFIO_AF(GPIOD_PIN10, 0U) | \
686 PIN_AFIO_AF(GPIOD_PIN11, 0U) | \
687 PIN_AFIO_AF(GPIOD_PIN12, 0U) | \
688 PIN_AFIO_AF(GPIOD_PIN13, 0U) | \
689 PIN_AFIO_AF(GPIOD_PIN14, 0U) | \
690 PIN_AFIO_AF(GPIOD_PIN15, 0U))
691
692/*
693 * GPIOE setup:
694 *
695 * PE0 - PIN0 (input pullup).
696 * PE1 - PIN1 (input pullup).
697 * PE2 - PIN2 (input pullup).
698 * PE3 - PIN3 (input pullup).
699 * PE4 - PIN4 (input pullup).
700 * PE5 - PIN5 (input pullup).
701 * PE6 - PIN6 (input pullup).
702 * PE7 - PIN7 (input pullup).
703 * PE8 - PIN8 (input pullup).
704 * PE9 - PIN9 (input pullup).
705 * PE10 - PIN10 (input pullup).
706 * PE11 - PIN11 (input pullup).
707 * PE12 - PIN12 (input pullup).
708 * PE13 - PIN13 (input pullup).
709 * PE14 - PIN14 (input pullup).
710 * PE15 - PIN15 (input pullup).
711 */
712#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \
713 PIN_MODE_INPUT(GPIOE_PIN1) | \
714 PIN_MODE_INPUT(GPIOE_PIN2) | \
715 PIN_MODE_INPUT(GPIOE_PIN3) | \
716 PIN_MODE_INPUT(GPIOE_PIN4) | \
717 PIN_MODE_INPUT(GPIOE_PIN5) | \
718 PIN_MODE_INPUT(GPIOE_PIN6) | \
719 PIN_MODE_INPUT(GPIOE_PIN7) | \
720 PIN_MODE_INPUT(GPIOE_PIN8) | \
721 PIN_MODE_INPUT(GPIOE_PIN9) | \
722 PIN_MODE_INPUT(GPIOE_PIN10) | \
723 PIN_MODE_INPUT(GPIOE_PIN11) | \
724 PIN_MODE_INPUT(GPIOE_PIN12) | \
725 PIN_MODE_INPUT(GPIOE_PIN13) | \
726 PIN_MODE_INPUT(GPIOE_PIN14) | \
727 PIN_MODE_INPUT(GPIOE_PIN15))
728#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \
729 PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \
730 PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \
731 PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \
732 PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \
733 PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \
734 PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \
735 PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \
736 PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \
737 PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \
738 PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \
739 PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \
740 PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \
741 PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \
742 PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \
743 PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
744#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) | \
745 PIN_OSPEED_VERYLOW(GPIOE_PIN1) | \
746 PIN_OSPEED_VERYLOW(GPIOE_PIN2) | \
747 PIN_OSPEED_VERYLOW(GPIOE_PIN3) | \
748 PIN_OSPEED_VERYLOW(GPIOE_PIN4) | \
749 PIN_OSPEED_VERYLOW(GPIOE_PIN5) | \
750 PIN_OSPEED_VERYLOW(GPIOE_PIN6) | \
751 PIN_OSPEED_VERYLOW(GPIOE_PIN7) | \
752 PIN_OSPEED_VERYLOW(GPIOE_PIN8) | \
753 PIN_OSPEED_VERYLOW(GPIOE_PIN9) | \
754 PIN_OSPEED_VERYLOW(GPIOE_PIN10) | \
755 PIN_OSPEED_VERYLOW(GPIOE_PIN11) | \
756 PIN_OSPEED_VERYLOW(GPIOE_PIN12) | \
757 PIN_OSPEED_VERYLOW(GPIOE_PIN13) | \
758 PIN_OSPEED_VERYLOW(GPIOE_PIN14) | \
759 PIN_OSPEED_VERYLOW(GPIOE_PIN15))
760#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \
761 PIN_PUPDR_PULLUP(GPIOE_PIN1) | \
762 PIN_PUPDR_PULLUP(GPIOE_PIN2) | \
763 PIN_PUPDR_PULLUP(GPIOE_PIN3) | \
764 PIN_PUPDR_PULLUP(GPIOE_PIN4) | \
765 PIN_PUPDR_PULLUP(GPIOE_PIN5) | \
766 PIN_PUPDR_PULLUP(GPIOE_PIN6) | \
767 PIN_PUPDR_PULLUP(GPIOE_PIN7) | \
768 PIN_PUPDR_PULLUP(GPIOE_PIN8) | \
769 PIN_PUPDR_PULLUP(GPIOE_PIN9) | \
770 PIN_PUPDR_PULLUP(GPIOE_PIN10) | \
771 PIN_PUPDR_PULLUP(GPIOE_PIN11) | \
772 PIN_PUPDR_PULLUP(GPIOE_PIN12) | \
773 PIN_PUPDR_PULLUP(GPIOE_PIN13) | \
774 PIN_PUPDR_PULLUP(GPIOE_PIN14) | \
775 PIN_PUPDR_PULLUP(GPIOE_PIN15))
776#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \
777 PIN_ODR_HIGH(GPIOE_PIN1) | \
778 PIN_ODR_HIGH(GPIOE_PIN2) | \
779 PIN_ODR_HIGH(GPIOE_PIN3) | \
780 PIN_ODR_HIGH(GPIOE_PIN4) | \
781 PIN_ODR_HIGH(GPIOE_PIN5) | \
782 PIN_ODR_HIGH(GPIOE_PIN6) | \
783 PIN_ODR_HIGH(GPIOE_PIN7) | \
784 PIN_ODR_HIGH(GPIOE_PIN8) | \
785 PIN_ODR_HIGH(GPIOE_PIN9) | \
786 PIN_ODR_HIGH(GPIOE_PIN10) | \
787 PIN_ODR_HIGH(GPIOE_PIN11) | \
788 PIN_ODR_HIGH(GPIOE_PIN12) | \
789 PIN_ODR_HIGH(GPIOE_PIN13) | \
790 PIN_ODR_HIGH(GPIOE_PIN14) | \
791 PIN_ODR_HIGH(GPIOE_PIN15))
792#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \
793 PIN_AFIO_AF(GPIOE_PIN1, 0U) | \
794 PIN_AFIO_AF(GPIOE_PIN2, 0U) | \
795 PIN_AFIO_AF(GPIOE_PIN3, 0U) | \
796 PIN_AFIO_AF(GPIOE_PIN4, 0U) | \
797 PIN_AFIO_AF(GPIOE_PIN5, 0U) | \
798 PIN_AFIO_AF(GPIOE_PIN6, 0U) | \
799 PIN_AFIO_AF(GPIOE_PIN7, 0U))
800#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \
801 PIN_AFIO_AF(GPIOE_PIN9, 0U) | \
802 PIN_AFIO_AF(GPIOE_PIN10, 0U) | \
803 PIN_AFIO_AF(GPIOE_PIN11, 0U) | \
804 PIN_AFIO_AF(GPIOE_PIN12, 0U) | \
805 PIN_AFIO_AF(GPIOE_PIN13, 0U) | \
806 PIN_AFIO_AF(GPIOE_PIN14, 0U) | \
807 PIN_AFIO_AF(GPIOE_PIN15, 0U))
808
809/*
810 * GPIOF setup:
811 *
812 * PF0 - OSC_IN (input floating).
813 * PF1 - OSC_OUT (input floating).
814 * PF2 - PIN2 (input pullup).
815 * PF3 - PIN3 (input pullup).
816 * PF4 - PIN4 (input pullup).
817 * PF5 - PIN5 (input pullup).
818 * PF6 - PIN6 (input pullup).
819 * PF7 - PIN7 (input pullup).
820 * PF8 - PIN8 (input pullup).
821 * PF9 - PIN9 (input pullup).
822 * PF10 - PIN10 (input pullup).
823 * PF11 - PIN11 (input pullup).
824 * PF12 - PIN12 (input pullup).
825 * PF13 - PIN13 (input pullup).
826 * PF14 - PIN14 (input pullup).
827 * PF15 - PIN15 (input pullup).
828 */
829#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_OSC_IN) | \
830 PIN_MODE_INPUT(GPIOF_OSC_OUT) | \
831 PIN_MODE_INPUT(GPIOF_PIN2) | \
832 PIN_MODE_INPUT(GPIOF_PIN3) | \
833 PIN_MODE_INPUT(GPIOF_PIN4) | \
834 PIN_MODE_INPUT(GPIOF_PIN5) | \
835 PIN_MODE_INPUT(GPIOF_PIN6) | \
836 PIN_MODE_INPUT(GPIOF_PIN7) | \
837 PIN_MODE_INPUT(GPIOF_PIN8) | \
838 PIN_MODE_INPUT(GPIOF_PIN9) | \
839 PIN_MODE_INPUT(GPIOF_PIN10) | \
840 PIN_MODE_INPUT(GPIOF_PIN11) | \
841 PIN_MODE_INPUT(GPIOF_PIN12) | \
842 PIN_MODE_INPUT(GPIOF_PIN13) | \
843 PIN_MODE_INPUT(GPIOF_PIN14) | \
844 PIN_MODE_INPUT(GPIOF_PIN15))
845#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) | \
846 PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) | \
847 PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \
848 PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \
849 PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \
850 PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \
851 PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \
852 PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \
853 PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \
854 PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \
855 PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \
856 PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \
857 PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \
858 PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \
859 PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \
860 PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
861#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOF_OSC_IN) | \
862 PIN_OSPEED_VERYLOW(GPIOF_OSC_OUT) | \
863 PIN_OSPEED_VERYLOW(GPIOF_PIN2) | \
864 PIN_OSPEED_VERYLOW(GPIOF_PIN3) | \
865 PIN_OSPEED_VERYLOW(GPIOF_PIN4) | \
866 PIN_OSPEED_VERYLOW(GPIOF_PIN5) | \
867 PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \
868 PIN_OSPEED_VERYLOW(GPIOF_PIN7) | \
869 PIN_OSPEED_VERYLOW(GPIOF_PIN8) | \
870 PIN_OSPEED_VERYLOW(GPIOF_PIN9) | \
871 PIN_OSPEED_VERYLOW(GPIOF_PIN10) | \
872 PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \
873 PIN_OSPEED_VERYLOW(GPIOF_PIN12) | \
874 PIN_OSPEED_VERYLOW(GPIOF_PIN13) | \
875 PIN_OSPEED_VERYLOW(GPIOF_PIN14) | \
876 PIN_OSPEED_VERYLOW(GPIOF_PIN15))
877#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) | \
878 PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) | \
879 PIN_PUPDR_PULLUP(GPIOF_PIN2) | \
880 PIN_PUPDR_PULLUP(GPIOF_PIN3) | \
881 PIN_PUPDR_PULLUP(GPIOF_PIN4) | \
882 PIN_PUPDR_PULLUP(GPIOF_PIN5) | \
883 PIN_PUPDR_PULLUP(GPIOF_PIN6) | \
884 PIN_PUPDR_PULLUP(GPIOF_PIN7) | \
885 PIN_PUPDR_PULLUP(GPIOF_PIN8) | \
886 PIN_PUPDR_PULLUP(GPIOF_PIN9) | \
887 PIN_PUPDR_PULLUP(GPIOF_PIN10) | \
888 PIN_PUPDR_PULLUP(GPIOF_PIN11) | \
889 PIN_PUPDR_PULLUP(GPIOF_PIN12) | \
890 PIN_PUPDR_PULLUP(GPIOF_PIN13) | \
891 PIN_PUPDR_PULLUP(GPIOF_PIN14) | \
892 PIN_PUPDR_PULLUP(GPIOF_PIN15))
893#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_OSC_IN) | \
894 PIN_ODR_HIGH(GPIOF_OSC_OUT) | \
895 PIN_ODR_HIGH(GPIOF_PIN2) | \
896 PIN_ODR_HIGH(GPIOF_PIN3) | \
897 PIN_ODR_HIGH(GPIOF_PIN4) | \
898 PIN_ODR_HIGH(GPIOF_PIN5) | \
899 PIN_ODR_HIGH(GPIOF_PIN6) | \
900 PIN_ODR_HIGH(GPIOF_PIN7) | \
901 PIN_ODR_HIGH(GPIOF_PIN8) | \
902 PIN_ODR_HIGH(GPIOF_PIN9) | \
903 PIN_ODR_HIGH(GPIOF_PIN10) | \
904 PIN_ODR_HIGH(GPIOF_PIN11) | \
905 PIN_ODR_HIGH(GPIOF_PIN12) | \
906 PIN_ODR_HIGH(GPIOF_PIN13) | \
907 PIN_ODR_HIGH(GPIOF_PIN14) | \
908 PIN_ODR_HIGH(GPIOF_PIN15))
909#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_OSC_IN, 0U) | \
910 PIN_AFIO_AF(GPIOF_OSC_OUT, 0U) | \
911 PIN_AFIO_AF(GPIOF_PIN2, 0U) | \
912 PIN_AFIO_AF(GPIOF_PIN3, 0U) | \
913 PIN_AFIO_AF(GPIOF_PIN4, 0U) | \
914 PIN_AFIO_AF(GPIOF_PIN5, 0U) | \
915 PIN_AFIO_AF(GPIOF_PIN6, 0U) | \
916 PIN_AFIO_AF(GPIOF_PIN7, 0U))
917#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \
918 PIN_AFIO_AF(GPIOF_PIN9, 0U) | \
919 PIN_AFIO_AF(GPIOF_PIN10, 0U) | \
920 PIN_AFIO_AF(GPIOF_PIN11, 0U) | \
921 PIN_AFIO_AF(GPIOF_PIN12, 0U) | \
922 PIN_AFIO_AF(GPIOF_PIN13, 0U) | \
923 PIN_AFIO_AF(GPIOF_PIN14, 0U) | \
924 PIN_AFIO_AF(GPIOF_PIN15, 0U))
925
926/*===========================================================================*/
927/* External declarations. */
928/*===========================================================================*/
929
930#if !defined(_FROM_ASM_)
931#ifdef __cplusplus
932extern "C" {
933#endif
934 void boardInit(void);
935#ifdef __cplusplus
936}
937#endif
938#endif /* _FROM_ASM_ */
939
940#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 @@
1# List of all the board related files.
2BOARDSRC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY/board.c
3
4# Required include directories
5BOARDINC = $(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 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- STM32F0xx board Template -->
3<board
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/boards/stm32f0xx_board.xsd">
6 <configuration_settings>
7 <templates_path>resources/gencfg/processors/boards/stm32f0xx/templates</templates_path>
8 <output_path>..</output_path>
9 <hal_version>3.0.x</hal_version>
10 </configuration_settings>
11 <board_name>ST STM32F072B-Discovery</board_name>
12 <board_id>ST_STM32F072B_DISCOVERY</board_id>
13 <board_functions></board_functions>
14 <subtype>STM32F072xB</subtype>
15 <clocks HSEFrequency="0" HSEBypass="true" LSEFrequency="0"
16 LSEBypass="false" LSEDrive="3 High Drive (default)" />
17 <ports>
18 <GPIOA>
19 <pin0
20 ID="BUTTON"
21 Type="PushPull"
22 Speed="Minimum"
23 Resistor="Floating"
24 Level="High"
25 Mode="Input"
26 Alternate="0" />
27 <pin1
28 ID=""
29 Type="PushPull"
30 Speed="Minimum"
31 Resistor="PullUp"
32 Level="High"
33 Mode="Input"
34 Alternate="0" />
35 <pin2
36 ID=""
37 Type="PushPull"
38 Speed="Minimum"
39 Resistor="PullUp"
40 Level="High"
41 Mode="Input"
42 Alternate="0" />
43 <pin3
44 ID=""
45 Type="PushPull"
46 Speed="Minimum"
47 Resistor="PullUp"
48 Level="High"
49 Mode="Input"
50 Alternate="0" />
51 <pin4
52 ID=""
53 Type="PushPull"
54 Speed="Minimum"
55 Resistor="PullUp"
56 Level="High"
57 Mode="Input"
58 Alternate="0" />
59 <pin5
60 ID=""
61 Type="PushPull"
62 Speed="Minimum"
63 Resistor="PullUp"
64 Level="High"
65 Mode="Input"
66 Alternate="0" />
67 <pin6
68 ID=""
69 Type="PushPull"
70 Speed="Minimum"
71 Resistor="PullUp"
72 Level="High"
73 Mode="Input"
74 Alternate="0" />
75 <pin7
76 ID=""
77 Type="PushPull"
78 Speed="Minimum"
79 Resistor="PullUp"
80 Level="High"
81 Mode="Input"
82 Alternate="0" />
83 <pin8
84 ID=""
85 Type="PushPull"
86 Speed="Minimum"
87 Resistor="PullUp"
88 Level="High"
89 Mode="Input"
90 Alternate="0" />
91 <pin9
92 ID=""
93 Type="PushPull"
94 Speed="Minimum"
95 Resistor="PullUp"
96 Level="High"
97 Mode="Input"
98 Alternate="0" />
99 <pin10
100 ID=""
101 Type="PushPull"
102 Speed="Minimum"
103 Resistor="PullUp"
104 Level="High"
105 Mode="Input"
106 Alternate="0" />
107 <pin11
108 ID="USB_DM"
109 Type="PushPull"
110 Speed="Minimum"
111 Resistor="Floating"
112 Level="High"
113 Mode="Input"
114 Alternate="0" />
115 <pin12
116 ID="USB_DP"
117 Type="PushPull"
118 Speed="Minimum"
119 Resistor="Floating"
120 Level="High"
121 Mode="Input"
122 Alternate="0" />
123 <pin13
124 ID="SWDIO"
125 Type="PushPull"
126 Speed="Maximum"
127 Resistor="PullUp"
128 Level="High"
129 Mode="Alternate"
130 Alternate="0" />
131 <pin14
132 ID="SWCLK"
133 Type="PushPull"
134 Speed="Maximum"
135 Resistor="PullDown"
136 Level="High"
137 Mode="Alternate"
138 Alternate="0" />
139 <pin15
140 ID=""
141 Type="PushPull"
142 Speed="Maximum"
143 Resistor="PullUp"
144 Level="High"
145 Mode="Input"
146 Alternate="0" />
147 </GPIOA>
148 <GPIOB>
149 <pin0
150 ID=""
151 Type="PushPull"
152 Speed="Minimum"
153 Resistor="PullUp"
154 Level="High"
155 Mode="Input"
156 Alternate="0" />
157 <pin1
158 ID=""
159 Type="PushPull"
160 Speed="Minimum"
161 Resistor="PullUp"
162 Level="High"
163 Mode="Input"
164 Alternate="0" />
165 <pin2
166 ID=""
167 Type="PushPull"
168 Speed="Maximum"
169 Resistor="PullUp"
170 Level="High"
171 Mode="Input"
172 Alternate="0" />
173 <pin3
174 ID=""
175 Type="PushPull"
176 Speed="Maximum"
177 Resistor="PullUp"
178 Level="High"
179 Mode="Input"
180 Alternate="0" />
181 <pin4
182 ID=""
183 Type="PushPull"
184 Speed="Maximum"
185 Resistor="PullUp"
186 Level="High"
187 Mode="Input"
188 Alternate="0" />
189 <pin5
190 ID=""
191 Type="PushPull"
192 Speed="Minimum"
193 Resistor="PullUp"
194 Level="High"
195 Mode="Input"
196 Alternate="0" />
197 <pin6
198 ID=""
199 Type="PushPull"
200 Speed="Minimum"
201 Resistor="PullUp"
202 Level="High"
203 Mode="Input"
204 Alternate="0" />
205 <pin7
206 ID=""
207 Type="PushPull"
208 Speed="Minimum"
209 Resistor="PullUp"
210 Level="High"
211 Mode="Input"
212 Alternate="0" />
213 <pin8
214 ID=""
215 Type="PushPull"
216 Speed="Minimum"
217 Resistor="PullUp"
218 Level="High"
219 Mode="Input"
220 Alternate="0" />
221 <pin9
222 ID=""
223 Type="PushPull"
224 Speed="Minimum"
225 Resistor="PullUp"
226 Level="High"
227 Mode="Input"
228 Alternate="0" />
229 <pin10
230 ID=""
231 Type="PushPull"
232 Speed="Minimum"
233 Resistor="PullUp"
234 Level="High"
235 Mode="Input"
236 Alternate="0" />
237 <pin11
238 ID=""
239 Type="PushPull"
240 Speed="Minimum"
241 Resistor="PullUp"
242 Level="High"
243 Mode="Input"
244 Alternate="0" />
245 <pin12
246 ID=""
247 Type="PushPull"
248 Speed="Minimum"
249 Resistor="PullUp"
250 Level="High"
251 Mode="Input"
252 Alternate="0" />
253 <pin13
254 ID="SPI2_SCK"
255 Type="PushPull"
256 Speed="Minimum"
257 Resistor="Floating"
258 Level="High"
259 Mode="Alternate"
260 Alternate="0" />
261 <pin14
262 ID="SPI2_MISO"
263 Type="PushPull"
264 Speed="Minimum"
265 Resistor="Floating"
266 Level="High"
267 Mode="Alternate"
268 Alternate="0" />
269 <pin15
270 ID="SPI2_MOSI"
271 Type="PushPull"
272 Speed="Minimum"
273 Resistor="Floating"
274 Level="High"
275 Mode="Alternate"
276 Alternate="0" />
277 </GPIOB>
278 <GPIOC>
279 <pin0
280 ID="MEMS_CS"
281 Type="PushPull"
282 Speed="Maximum"
283 Resistor="Floating"
284 Level="High"
285 Mode="Output"
286 Alternate="0" />
287 <pin1
288 ID=""
289 Type="PushPull"
290 Speed="Minimum"
291 Resistor="PullUp"
292 Level="High"
293 Mode="Input"
294 Alternate="0" />
295 <pin2
296 ID=""
297 Type="PushPull"
298 Speed="Minimum"
299 Resistor="PullUp"
300 Level="High"
301 Mode="Input"
302 Alternate="0" />
303 <pin3
304 ID=""
305 Type="PushPull"
306 Speed="Minimum"
307 Resistor="PullUp"
308 Level="High"
309 Mode="Input"
310 Alternate="0" />
311 <pin4
312 ID=""
313 Type="PushPull"
314 Speed="Minimum"
315 Resistor="PullUp"
316 Level="High"
317 Mode="Input"
318 Alternate="0" />
319 <pin5
320 ID=""
321 Type="PushPull"
322 Speed="Minimum"
323 Resistor="PullUp"
324 Level="High"
325 Mode="Input"
326 Alternate="0" />
327 <pin6
328 ID="LED_RED"
329 Type="PushPull"
330 Speed="Maximum"
331 Resistor="Floating"
332 Level="Low"
333 Mode="Output"
334 Alternate="0" />
335 <pin7
336 ID="LED_BLUE"
337 Type="PushPull"
338 Speed="Maximum"
339 Resistor="Floating"
340 Level="Low"
341 Mode="Output"
342 Alternate="0" />
343 <pin8
344 ID="LED_ORANGE"
345 Type="PushPull"
346 Speed="Maximum"
347 Resistor="Floating"
348 Level="Low"
349 Mode="Output"
350 Alternate="0" ></pin8>
351 <pin9
352 ID="LED_GREEN"
353 Type="PushPull"
354 Speed="Maximum"
355 Resistor="Floating"
356 Level="Low"
357 Mode="Output"
358 Alternate="0" />
359 <pin10
360 ID=""
361 Type="PushPull"
362 Speed="Minimum"
363 Resistor="PullUp"
364 Level="High"
365 Mode="Input"
366 Alternate="0" />
367 <pin11
368 ID=""
369 Type="PushPull"
370 Speed="Minimum"
371 Resistor="PullUp"
372 Level="High"
373 Mode="Input"
374 Alternate="0" />
375 <pin12
376 ID=""
377 Type="PushPull"
378 Speed="Minimum"
379 Resistor="PullUp"
380 Level="High"
381 Mode="Input"
382 Alternate="0" />
383 <pin13
384 ID=""
385 Type="PushPull"
386 Speed="Minimum"
387 Resistor="PullUp"
388 Level="High"
389 Mode="Input"
390 Alternate="0" />
391 <pin14
392 ID="OSC32_IN"
393 Type="PushPull"
394 Speed="Maximum"
395 Resistor="Floating"
396 Level="High"
397 Mode="Input"
398 Alternate="0" />
399 <pin15
400 ID="OSC32_OUT"
401 Type="PushPull"
402 Speed="Maximum"
403 Resistor="Floating"
404 Level="High"
405 Mode="Input"
406 Alternate="0" />
407 </GPIOC>
408 <GPIOD>
409 <pin0
410 ID=""
411 Type="PushPull"
412 Speed="Minimum"
413 Resistor="PullUp"
414 Level="High"
415 Mode="Input"
416 Alternate="0" />
417 <pin1
418 ID=""
419 Type="PushPull"
420 Speed="Minimum"
421 Resistor="PullUp"
422 Level="High"
423 Mode="Input"
424 Alternate="0" />
425 <pin2
426 ID=""
427 Type="PushPull"
428 Speed="Minimum"
429 Resistor="PullUp"
430 Level="High"
431 Mode="Input"
432 Alternate="0" />
433 <pin3
434 ID=""
435 Type="PushPull"
436 Speed="Minimum"
437 Resistor="PullUp"
438 Level="High"
439 Mode="Input"
440 Alternate="0" />
441 <pin4
442 ID=""
443 Type="PushPull"
444 Speed="Minimum"
445 Resistor="PullUp"
446 Level="High"
447 Mode="Input"
448 Alternate="0" />
449 <pin5
450 ID=""
451 Type="PushPull"
452 Speed="Minimum"
453 Resistor="PullUp"
454 Level="High"
455 Mode="Input"
456 Alternate="0" />
457 <pin6
458 ID=""
459 Type="PushPull"
460 Speed="Minimum"
461 Resistor="PullUp"
462 Level="High"
463 Mode="Input"
464 Alternate="0" />
465 <pin7
466 ID=""
467 Type="PushPull"
468 Speed="Minimum"
469 Resistor="PullUp"
470 Level="High"
471 Mode="Input"
472 Alternate="0" />
473 <pin8
474 ID=""
475 Type="PushPull"
476 Speed="Minimum"
477 Resistor="PullUp"
478 Level="High"
479 Mode="Input"
480 Alternate="0" />
481 <pin9
482 ID=""
483 Type="PushPull"
484 Speed="Minimum"
485 Resistor="PullUp"
486 Level="High"
487 Mode="Input"
488 Alternate="0" />
489 <pin10
490 ID=""
491 Type="PushPull"
492 Speed="Minimum"
493 Resistor="PullUp"
494 Level="High"
495 Mode="Input"
496 Alternate="0" />
497 <pin11
498 ID=""
499 Type="PushPull"
500 Speed="Minimum"
501 Resistor="PullUp"
502 Level="High"
503 Mode="Input"
504 Alternate="0" />
505 <pin12
506 ID=""
507 Type="PushPull"
508 Speed="Minimum"
509 Resistor="PullUp"
510 Level="High"
511 Mode="Input"
512 Alternate="0" />
513 <pin13
514 ID=""
515 Type="PushPull"
516 Speed="Minimum"
517 Resistor="PullUp"
518 Level="High"
519 Mode="Input"
520 Alternate="0" />
521 <pin14
522 ID=""
523 Type="PushPull"
524 Speed="Minimum"
525 Resistor="PullUp"
526 Level="High"
527 Mode="Input"
528 Alternate="0" />
529 <pin15
530 ID=""
531 Type="PushPull"
532 Speed="Minimum"
533 Resistor="PullUp"
534 Level="High"
535 Mode="Input"
536 Alternate="0" />
537 </GPIOD>
538 <GPIOE>
539 <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
540 Level="High" Mode="Input" Alternate="0" />
541 <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
542 Level="High" Mode="Input" Alternate="0" />
543 <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
544 Level="High" Mode="Input" Alternate="0" />
545 <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
546 Level="High" Mode="Input" Alternate="0" />
547 <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
548 Level="High" Mode="Input" Alternate="0" />
549 <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
550 Level="High" Mode="Input" Alternate="0" />
551 <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
552 Level="High" Mode="Input" Alternate="0" />
553 <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
554 Level="High" Mode="Input" Alternate="0" />
555 <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
556 Level="High" Mode="Input" Alternate="0" />
557 <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
558 Level="High" Mode="Input" Alternate="0" />
559 <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
560 Level="High" Mode="Input" Alternate="0" />
561 <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
562 Level="High" Mode="Input" Alternate="0" />
563 <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
564 Level="High" Mode="Input" Alternate="0" />
565 <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
566 Level="High" Mode="Input" Alternate="0" />
567 <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
568 Level="High" Mode="Input" Alternate="0" />
569 <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
570 Level="High" Mode="Input" Alternate="0" />
571 </GPIOE>
572 <GPIOF>
573 <pin0
574 ID="OSC_IN"
575 Type="PushPull"
576 Speed="Minimum"
577 Resistor="Floating"
578 Level="High"
579 Mode="Input"
580 Alternate="0" />
581 <pin1
582 ID="OSC_OUT"
583 Type="PushPull"
584 Speed="Minimum"
585 Resistor="Floating"
586 Level="High"
587 Mode="Input"
588 Alternate="0" />
589 <pin2
590 ID=""
591 Type="PushPull"
592 Speed="Minimum"
593 Resistor="PullUp"
594 Level="High"
595 Mode="Input"
596 Alternate="0" />
597 <pin3
598 ID=""
599 Type="PushPull"
600 Speed="Minimum"
601 Resistor="PullUp"
602 Level="High"
603 Mode="Input"
604 Alternate="0" />
605 <pin4
606 ID=""
607 Type="PushPull"
608 Speed="Minimum"
609 Resistor="PullUp"
610 Level="High"
611 Mode="Input"
612 Alternate="0" />
613 <pin5
614 ID=""
615 Type="PushPull"
616 Speed="Minimum"
617 Resistor="PullUp"
618 Level="High"
619 Mode="Input"
620 Alternate="0" />
621 <pin6
622 ID=""
623 Type="PushPull"
624 Speed="Minimum"
625 Resistor="PullUp"
626 Level="High"
627 Mode="Input"
628 Alternate="0" />
629 <pin7
630 ID=""
631 Type="PushPull"
632 Speed="Minimum"
633 Resistor="PullUp"
634 Level="High"
635 Mode="Input"
636 Alternate="0" />
637 <pin8
638 ID=""
639 Type="PushPull"
640 Speed="Minimum"
641 Resistor="PullUp"
642 Level="High"
643 Mode="Input"
644 Alternate="0" />
645 <pin9
646 ID=""
647 Type="PushPull"
648 Speed="Minimum"
649 Resistor="PullUp"
650 Level="High"
651 Mode="Input"
652 Alternate="0" />
653 <pin10
654 ID=""
655 Type="PushPull"
656 Speed="Minimum"
657 Resistor="PullUp"
658 Level="High"
659 Mode="Input"
660 Alternate="0" />
661 <pin11
662 ID=""
663 Type="PushPull"
664 Speed="Minimum"
665 Resistor="PullUp"
666 Level="High"
667 Mode="Input"
668 Alternate="0" />
669 <pin12
670 ID=""
671 Type="PushPull"
672 Speed="Minimum"
673 Resistor="PullUp"
674 Level="High"
675 Mode="Input"
676 Alternate="0" />
677 <pin13
678 ID=""
679 Type="PushPull"
680 Speed="Minimum"
681 Resistor="PullUp"
682 Level="High"
683 Mode="Input"
684 Alternate="0" />
685 <pin14
686 ID=""
687 Type="PushPull"
688 Speed="Minimum"
689 Resistor="PullUp"
690 Level="High"
691 Mode="Input"
692 Alternate="0" />
693 <pin15
694 ID=""
695 Type="PushPull"
696 Speed="Minimum"
697 Resistor="PullUp"
698 Level="High"
699 Mode="Input"
700 Alternate="0" />
701 </GPIOF>
702 </ports>
703</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/>.
17 17
18#pragma once 18#pragma once
19 19
20/* Ensure we jump to bootloader if the RESET keycode was pressed */
21#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
22
23/* LSE clock */
24#define STM32_LSECLK 32768
25
20/* USB Device descriptor parameter */ 26/* USB Device descriptor parameter */
21#define VENDOR_ID 0xA22A 27#define VENDOR_ID 0xA22A
22#define PRODUCT_ID 0x6600 28#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 @@
1# MCU name 1# MCU name
2MCU = STM32F072 2MCU = STM32F072
3BOARD = ST_STM32F072B_DISCOVERY 3BOARD = GENERIC_STM32_F072XB
4 4
5# Build Options 5# Build Options
6# comment out to disable the options. 6# 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
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20BLUETOOTH_ENABLE = no # Enable Bluetooth 20BLUETOOTH_ENABLE = no # Enable Bluetooth
21AUDIO_ENABLE = no # Audio output 21AUDIO_ENABLE = no # Audio output
22RGB_MATRIX_ENABLE = WS2812 22RGB_MATRIX_ENABLE = yes
23RGB_MATRIX_DRIVER = WS2812
23 24
24LAYOUTS = planck_mit 25LAYOUTS = planck_mit
25LAYOUTS_HAS_RGB = yes 26LAYOUTS_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
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth 21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output 22AUDIO_ENABLE = no # Audio output
23RGB_MATRIX_ENABLE = WS2812 23RGB_MATRIX_ENABLE = yes
24RGB_MATRIX_DRIVER = WS2812
24LAYOUTS = 60_ansi 25LAYOUTS = 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33RGB_MATRIX_ENABLE = WS2812 33RGB_MATRIX_ENABLE = yes
34RGB_MATRIX_DRIVER = WS2812
34LTO_ENABLE = yes 35LTO_ENABLE = yes
35 36
36# partially generated by KBFirmware JSON to QMK Parser 37# 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
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth 21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output 22AUDIO_ENABLE = no # Audio output
23RGB_MATRIX_ENABLE = WS2812 23RGB_MATRIX_ENABLE = yes
24RGB_MATRIX_DRIVER = WS2812
24LTO_ENABLE = yes 25LTO_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
16CUSTOM_MATRIX = no # Custom matrix file 16CUSTOM_MATRIX = no # Custom matrix file
17AUDIO_ENABLE = yes 17AUDIO_ENABLE = yes
18RGBLIGHT_ENABLE = no 18RGBLIGHT_ENABLE = no
19RGB_MATRIX_ENABLE = no #WS2812 19RGB_MATRIX_ENABLE = no
20RGB_MATRIX_DRIVER = WS2812
20HAPTIC_ENABLE += DRV2605L 21HAPTIC_ENABLE += DRV2605L
21QWIIC_ENABLE += MICRO_OLED 22QWIIC_ENABLE += MICRO_OLED
22# SERIAL_LINK_ENABLE = yes 23# 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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17/*
18 * This file has been automatically generated using ChibiStudio board
19 * generator plugin. Do not edit manually.
20 */
21
22#include "hal.h"
23#include "stm32_gpio.h"
24
25/*===========================================================================*/
26/* Driver local definitions. */
27/*===========================================================================*/
28
29/*===========================================================================*/
30/* Driver exported variables. */
31/*===========================================================================*/
32
33/*===========================================================================*/
34/* Driver local variables and types. */
35/*===========================================================================*/
36
37/**
38 * @brief Type of STM32 GPIO port setup.
39 */
40typedef struct {
41 uint32_t moder;
42 uint32_t otyper;
43 uint32_t ospeedr;
44 uint32_t pupdr;
45 uint32_t odr;
46 uint32_t afrl;
47 uint32_t afrh;
48} gpio_setup_t;
49
50/**
51 * @brief Type of STM32 GPIO initialization data.
52 */
53typedef struct {
54#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
55 gpio_setup_t PAData;
56#endif
57#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
58 gpio_setup_t PBData;
59#endif
60#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
61 gpio_setup_t PCData;
62#endif
63#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
64 gpio_setup_t PDData;
65#endif
66#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
67 gpio_setup_t PEData;
68#endif
69#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
70 gpio_setup_t PFData;
71#endif
72#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
73 gpio_setup_t PGData;
74#endif
75#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
76 gpio_setup_t PHData;
77#endif
78#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
79 gpio_setup_t PIData;
80#endif
81#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
82 gpio_setup_t PJData;
83#endif
84#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
85 gpio_setup_t PKData;
86#endif
87} gpio_config_t;
88
89/**
90 * @brief STM32 GPIO static initialization data.
91 */
92static const gpio_config_t gpio_default_config = {
93#if STM32_HAS_GPIOA
94 {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
95 VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
96#endif
97#if STM32_HAS_GPIOB
98 {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
99 VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
100#endif
101#if STM32_HAS_GPIOC
102 {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
103 VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
104#endif
105#if STM32_HAS_GPIOD
106 {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
107 VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
108#endif
109#if STM32_HAS_GPIOE
110 {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
111 VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
112#endif
113#if STM32_HAS_GPIOF
114 {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
115 VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
116#endif
117#if STM32_HAS_GPIOG
118 {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
119 VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
120#endif
121#if STM32_HAS_GPIOH
122 {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
123 VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
124#endif
125#if STM32_HAS_GPIOI
126 {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
127 VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
128#endif
129#if STM32_HAS_GPIOJ
130 {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR,
131 VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
132#endif
133#if STM32_HAS_GPIOK
134 {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR,
135 VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
136#endif
137};
138
139/*===========================================================================*/
140/* Driver local functions. */
141/*===========================================================================*/
142
143static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
144
145 gpiop->OTYPER = config->otyper;
146 gpiop->OSPEEDR = config->ospeedr;
147 gpiop->PUPDR = config->pupdr;
148 gpiop->ODR = config->odr;
149 gpiop->AFRL = config->afrl;
150 gpiop->AFRH = config->afrh;
151 gpiop->MODER = config->moder;
152}
153
154static void stm32_gpio_init(void) {
155
156 /* Enabling GPIO-related clocks, the mask comes from the
157 registry header file.*/
158 rccResetAHB(STM32_GPIO_EN_MASK);
159 rccEnableAHB(STM32_GPIO_EN_MASK, true);
160
161 /* Initializing all the defined GPIO ports.*/
162#if STM32_HAS_GPIOA
163 gpio_init(GPIOA, &gpio_default_config.PAData);
164#endif
165#if STM32_HAS_GPIOB
166 gpio_init(GPIOB, &gpio_default_config.PBData);
167#endif
168#if STM32_HAS_GPIOC
169 gpio_init(GPIOC, &gpio_default_config.PCData);
170#endif
171#if STM32_HAS_GPIOD
172 gpio_init(GPIOD, &gpio_default_config.PDData);
173#endif
174#if STM32_HAS_GPIOE
175 gpio_init(GPIOE, &gpio_default_config.PEData);
176#endif
177#if STM32_HAS_GPIOF
178 gpio_init(GPIOF, &gpio_default_config.PFData);
179#endif
180#if STM32_HAS_GPIOG
181 gpio_init(GPIOG, &gpio_default_config.PGData);
182#endif
183#if STM32_HAS_GPIOH
184 gpio_init(GPIOH, &gpio_default_config.PHData);
185#endif
186#if STM32_HAS_GPIOI
187 gpio_init(GPIOI, &gpio_default_config.PIData);
188#endif
189#if STM32_HAS_GPIOJ
190 gpio_init(GPIOJ, &gpio_default_config.PJData);
191#endif
192#if STM32_HAS_GPIOK
193 gpio_init(GPIOK, &gpio_default_config.PKData);
194#endif
195}
196
197/*===========================================================================*/
198/* Driver interrupt handlers. */
199/*===========================================================================*/
200
201/*===========================================================================*/
202/* Driver exported functions. */
203/*===========================================================================*/
204
205/**
206 * @brief Early initialization code.
207 * @details GPIO ports and system clocks are initialized before everything
208 * else.
209 */
210void __early_init(void) {
211 extern void enter_bootloader_mode_if_requested(void);
212 enter_bootloader_mode_if_requested();
213 stm32_gpio_init();
214 stm32_clock_init();
215}
216
217#if HAL_USE_SDC || defined(__DOXYGEN__)
218/**
219 * @brief SDC card detection.
220 */
221bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
222
223 (void)sdcp;
224 /* TODO: Fill the implementation.*/
225 return true;
226}
227
228/**
229 * @brief SDC card write protection detection.
230 */
231bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
232
233 (void)sdcp;
234 /* TODO: Fill the implementation.*/
235 return false;
236}
237#endif /* HAL_USE_SDC */
238
239#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
240/**
241 * @brief MMC_SPI card detection.
242 */
243bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
244
245 (void)mmcp;
246 /* TODO: Fill the implementation.*/
247 return true;
248}
249
250/**
251 * @brief MMC_SPI card write protection detection.
252 */
253bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
254
255 (void)mmcp;
256 /* TODO: Fill the implementation.*/
257 return false;
258}
259#endif
260
261/**
262 * @brief Board-specific initialization code.
263 * @todo Add your board-specific code, if any.
264 */
265void boardInit(void) {
266 SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
267 SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
268}
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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17/*
18 * This file has been automatically generated using ChibiStudio board
19 * generator plugin. Do not edit manually.
20 */
21
22#ifndef BOARD_H
23#define BOARD_H
24
25/*===========================================================================*/
26/* Driver constants. */
27/*===========================================================================*/
28
29/*
30 * Setup for ST STM32F072B-Discovery board.
31 */
32
33/*
34 * Board identifier.
35 */
36#define BOARD_ST_STM32F072B_DISCOVERY
37#define BOARD_NAME "ST STM32F072B-Discovery"
38
39/*
40 * Board oscillators-related settings.
41 * NOTE: HSE not fitted.
42 */
43#if !defined(STM32_LSECLK)
44#define STM32_LSECLK 32768
45#endif
46
47#define STM32_LSEDRV (3U << 3U)
48
49#if !defined(STM32_HSECLK)
50#define STM32_HSECLK 0U
51#endif
52
53#define STM32_HSE_BYPASS
54
55/*
56 * MCU type as defined in the ST header.
57 */
58#define STM32F072xB
59
60/*
61 * IO pins assignments.
62 */
63#define GPIOA_BUTTON 0U
64#define GPIOA_PIN1 1U
65#define GPIOA_PIN2 2U
66#define GPIOA_PIN3 3U
67#define GPIOA_PIN4 4U
68#define GPIOA_PIN5 5U
69#define GPIOA_PIN6 6U
70#define GPIOA_PIN7 7U
71#define GPIOA_PIN8 8U
72#define GPIOA_PIN9 9U
73#define GPIOA_PIN10 10U
74#define GPIOA_USB_DM 11U
75#define GPIOA_USB_DP 12U
76#define GPIOA_SWDIO 13U
77#define GPIOA_SWCLK 14U
78#define GPIOA_PIN15 15U
79
80#define GPIOB_PIN0 0U
81#define GPIOB_PIN1 1U
82#define GPIOB_PIN2 2U
83#define GPIOB_PIN3 3U
84#define GPIOB_PIN4 4U
85#define GPIOB_PIN5 5U
86#define GPIOB_PIN6 6U
87#define GPIOB_PIN7 7U
88#define GPIOB_PIN8 8U
89#define GPIOB_PIN9 9U
90#define GPIOB_PIN10 10U
91#define GPIOB_PIN11 11U
92#define GPIOB_PIN12 12U
93#define GPIOB_SPI2_SCK 13U
94#define GPIOB_SPI2_MISO 14U
95#define GPIOB_SPI2_MOSI 15U
96
97#define GPIOC_MEMS_CS 0U
98#define GPIOC_PIN1 1U
99#define GPIOC_PIN2 2U
100#define GPIOC_PIN3 3U
101#define GPIOC_PIN4 4U
102#define GPIOC_PIN5 5U
103#define GPIOC_LED_RED 6U
104#define GPIOC_LED_BLUE 7U
105#define GPIOC_LED_ORANGE 8U
106#define GPIOC_LED_GREEN 9U
107#define GPIOC_PIN10 10U
108#define GPIOC_PIN11 11U
109#define GPIOC_PIN12 12U
110#define GPIOC_PIN13 13U
111#define GPIOC_OSC32_IN 14U
112#define GPIOC_OSC32_OUT 15U
113
114#define GPIOD_PIN0 0U
115#define GPIOD_PIN1 1U
116#define GPIOD_PIN2 2U
117#define GPIOD_PIN3 3U
118#define GPIOD_PIN4 4U
119#define GPIOD_PIN5 5U
120#define GPIOD_PIN6 6U
121#define GPIOD_PIN7 7U
122#define GPIOD_PIN8 8U
123#define GPIOD_PIN9 9U
124#define GPIOD_PIN10 10U
125#define GPIOD_PIN11 11U
126#define GPIOD_PIN12 12U
127#define GPIOD_PIN13 13U
128#define GPIOD_PIN14 14U
129#define GPIOD_PIN15 15U
130
131#define GPIOE_PIN0 0U
132#define GPIOE_PIN1 1U
133#define GPIOE_PIN2 2U
134#define GPIOE_PIN3 3U
135#define GPIOE_PIN4 4U
136#define GPIOE_PIN5 5U
137#define GPIOE_PIN6 6U
138#define GPIOE_PIN7 7U
139#define GPIOE_PIN8 8U
140#define GPIOE_PIN9 9U
141#define GPIOE_PIN10 10U
142#define GPIOE_PIN11 11U
143#define GPIOE_PIN12 12U
144#define GPIOE_PIN13 13U
145#define GPIOE_PIN14 14U
146#define GPIOE_PIN15 15U
147
148#define GPIOF_OSC_IN 0U
149#define GPIOF_OSC_OUT 1U
150#define GPIOF_PIN2 2U
151#define GPIOF_PIN3 3U
152#define GPIOF_PIN4 4U
153#define GPIOF_PIN5 5U
154#define GPIOF_PIN6 6U
155#define GPIOF_PIN7 7U
156#define GPIOF_PIN8 8U
157#define GPIOF_PIN9 9U
158#define GPIOF_PIN10 10U
159#define GPIOF_PIN11 11U
160#define GPIOF_PIN12 12U
161#define GPIOF_PIN13 13U
162#define GPIOF_PIN14 14U
163#define GPIOF_PIN15 15U
164
165/*
166 * IO lines assignments.
167 */
168#define LINE_BUTTON PAL_LINE(GPIOA, 0U)
169#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
170#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
171#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
172#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
173#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U)
174#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U)
175#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U)
176#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U)
177#define LINE_LED_RED PAL_LINE(GPIOC, 6U)
178#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U)
179#define LINE_LED_ORANGE PAL_LINE(GPIOC, 8U)
180#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U)
181#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U)
182#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U)
183#define LINE_OSC_IN PAL_LINE(GPIOF, 0U)
184#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U)
185
186/*===========================================================================*/
187/* Driver pre-compile time settings. */
188/*===========================================================================*/
189
190/*===========================================================================*/
191/* Derived constants and error checks. */
192/*===========================================================================*/
193
194/*===========================================================================*/
195/* Driver data structures and types. */
196/*===========================================================================*/
197
198/*===========================================================================*/
199/* Driver macros. */
200/*===========================================================================*/
201
202/*
203 * I/O ports initial setup, this configuration is established soon after reset
204 * in the initialization code.
205 * Please refer to the STM32 Reference Manual for details.
206 */
207#define PIN_MODE_INPUT(n) (0U << ((n) * 2U))
208#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U))
209#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U))
210#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U))
211#define PIN_ODR_LOW(n) (0U << (n))
212#define PIN_ODR_HIGH(n) (1U << (n))
213#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
214#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
215#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U))
216#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U))
217#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U))
218#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U))
219#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U))
220#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U))
221#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U))
222#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
223
224/*
225 * GPIOA setup:
226 *
227 * PA0 - BUTTON (input floating).
228 * PA1 - PIN1 (input pullup).
229 * PA2 - PIN2 (input pullup).
230 * PA3 - PIN3 (input pullup).
231 * PA4 - PIN4 (input pullup).
232 * PA5 - PIN5 (input pullup).
233 * PA6 - PIN6 (input pullup).
234 * PA7 - PIN7 (input pullup).
235 * PA8 - PIN8 (input pullup).
236 * PA9 - PIN9 (input pullup).
237 * PA10 - PIN10 (input pullup).
238 * PA11 - USB_DM (input floating).
239 * PA12 - USB_DP (input floating).
240 * PA13 - SWDIO (alternate 0).
241 * PA14 - SWCLK (alternate 0).
242 * PA15 - PIN15 (input pullup).
243 */
244#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \
245 PIN_MODE_INPUT(GPIOA_PIN1) | \
246 PIN_MODE_INPUT(GPIOA_PIN2) | \
247 PIN_MODE_INPUT(GPIOA_PIN3) | \
248 PIN_MODE_INPUT(GPIOA_PIN4) | \
249 PIN_MODE_INPUT(GPIOA_PIN5) | \
250 PIN_MODE_INPUT(GPIOA_PIN6) | \
251 PIN_MODE_INPUT(GPIOA_PIN7) | \
252 PIN_MODE_INPUT(GPIOA_PIN8) | \
253 PIN_MODE_INPUT(GPIOA_PIN9) | \
254 PIN_MODE_INPUT(GPIOA_PIN10) | \
255 PIN_MODE_INPUT(GPIOA_USB_DM) | \
256 PIN_MODE_INPUT(GPIOA_USB_DP) | \
257 PIN_MODE_ALTERNATE(GPIOA_SWDIO) | \
258 PIN_MODE_ALTERNATE(GPIOA_SWCLK) | \
259 PIN_MODE_INPUT(GPIOA_PIN15))
260#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_BUTTON) | \
261 PIN_OTYPE_PUSHPULL(GPIOA_PIN1) | \
262 PIN_OTYPE_PUSHPULL(GPIOA_PIN2) | \
263 PIN_OTYPE_PUSHPULL(GPIOA_PIN3) | \
264 PIN_OTYPE_PUSHPULL(GPIOA_PIN4) | \
265 PIN_OTYPE_PUSHPULL(GPIOA_PIN5) | \
266 PIN_OTYPE_PUSHPULL(GPIOA_PIN6) | \
267 PIN_OTYPE_PUSHPULL(GPIOA_PIN7) | \
268 PIN_OTYPE_PUSHPULL(GPIOA_PIN8) | \
269 PIN_OTYPE_PUSHPULL(GPIOA_PIN9) | \
270 PIN_OTYPE_PUSHPULL(GPIOA_PIN10) | \
271 PIN_OTYPE_PUSHPULL(GPIOA_USB_DM) | \
272 PIN_OTYPE_PUSHPULL(GPIOA_USB_DP) | \
273 PIN_OTYPE_PUSHPULL(GPIOA_SWDIO) | \
274 PIN_OTYPE_PUSHPULL(GPIOA_SWCLK) | \
275 PIN_OTYPE_PUSHPULL(GPIOA_PIN15))
276#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOA_BUTTON) | \
277 PIN_OSPEED_VERYLOW(GPIOA_PIN1) | \
278 PIN_OSPEED_VERYLOW(GPIOA_PIN2) | \
279 PIN_OSPEED_VERYLOW(GPIOA_PIN3) | \
280 PIN_OSPEED_VERYLOW(GPIOA_PIN4) | \
281 PIN_OSPEED_VERYLOW(GPIOA_PIN5) | \
282 PIN_OSPEED_VERYLOW(GPIOA_PIN6) | \
283 PIN_OSPEED_VERYLOW(GPIOA_PIN7) | \
284 PIN_OSPEED_VERYLOW(GPIOA_PIN8) | \
285 PIN_OSPEED_VERYLOW(GPIOA_PIN9) | \
286 PIN_OSPEED_VERYLOW(GPIOA_PIN10) | \
287 PIN_OSPEED_VERYLOW(GPIOA_USB_DM) | \
288 PIN_OSPEED_VERYLOW(GPIOA_USB_DP) | \
289 PIN_OSPEED_HIGH(GPIOA_SWDIO) | \
290 PIN_OSPEED_HIGH(GPIOA_SWCLK) | \
291 PIN_OSPEED_HIGH(GPIOA_PIN15))
292#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING(GPIOA_BUTTON) | \
293 PIN_PUPDR_PULLUP(GPIOA_PIN1) | \
294 PIN_PUPDR_PULLUP(GPIOA_PIN2) | \
295 PIN_PUPDR_PULLUP(GPIOA_PIN3) | \
296 PIN_PUPDR_PULLUP(GPIOA_PIN4) | \
297 PIN_PUPDR_PULLUP(GPIOA_PIN5) | \
298 PIN_PUPDR_PULLUP(GPIOA_PIN6) | \
299 PIN_PUPDR_PULLUP(GPIOA_PIN7) | \
300 PIN_PUPDR_PULLUP(GPIOA_PIN8) | \
301 PIN_PUPDR_PULLUP(GPIOA_PIN9) | \
302 PIN_PUPDR_PULLUP(GPIOA_PIN10) | \
303 PIN_PUPDR_FLOATING(GPIOA_USB_DM) | \
304 PIN_PUPDR_FLOATING(GPIOA_USB_DP) | \
305 PIN_PUPDR_PULLUP(GPIOA_SWDIO) | \
306 PIN_PUPDR_PULLDOWN(GPIOA_SWCLK) | \
307 PIN_PUPDR_PULLUP(GPIOA_PIN15))
308#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_BUTTON) | \
309 PIN_ODR_HIGH(GPIOA_PIN1) | \
310 PIN_ODR_HIGH(GPIOA_PIN2) | \
311 PIN_ODR_HIGH(GPIOA_PIN3) | \
312 PIN_ODR_HIGH(GPIOA_PIN4) | \
313 PIN_ODR_HIGH(GPIOA_PIN5) | \
314 PIN_ODR_HIGH(GPIOA_PIN6) | \
315 PIN_ODR_HIGH(GPIOA_PIN7) | \
316 PIN_ODR_HIGH(GPIOA_PIN8) | \
317 PIN_ODR_HIGH(GPIOA_PIN9) | \
318 PIN_ODR_HIGH(GPIOA_PIN10) | \
319 PIN_ODR_HIGH(GPIOA_USB_DM) | \
320 PIN_ODR_HIGH(GPIOA_USB_DP) | \
321 PIN_ODR_HIGH(GPIOA_SWDIO) | \
322 PIN_ODR_HIGH(GPIOA_SWCLK) | \
323 PIN_ODR_HIGH(GPIOA_PIN15))
324#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_BUTTON, 0U) | \
325 PIN_AFIO_AF(GPIOA_PIN1, 0U) | \
326 PIN_AFIO_AF(GPIOA_PIN2, 0U) | \
327 PIN_AFIO_AF(GPIOA_PIN3, 0U) | \
328 PIN_AFIO_AF(GPIOA_PIN4, 0U) | \
329 PIN_AFIO_AF(GPIOA_PIN5, 0U) | \
330 PIN_AFIO_AF(GPIOA_PIN6, 0U) | \
331 PIN_AFIO_AF(GPIOA_PIN7, 0U))
332#define VAL_GPIOA_AFRH (PIN_AFIO_AF(GPIOA_PIN8, 0U) | \
333 PIN_AFIO_AF(GPIOA_PIN9, 0U) | \
334 PIN_AFIO_AF(GPIOA_PIN10, 0U) | \
335 PIN_AFIO_AF(GPIOA_USB_DM, 0U) | \
336 PIN_AFIO_AF(GPIOA_USB_DP, 0U) | \
337 PIN_AFIO_AF(GPIOA_SWDIO, 0U) | \
338 PIN_AFIO_AF(GPIOA_SWCLK, 0U) | \
339 PIN_AFIO_AF(GPIOA_PIN15, 0U))
340
341/*
342 * GPIOB setup:
343 *
344 * PB0 - PIN0 (input pullup).
345 * PB1 - PIN1 (input pullup).
346 * PB2 - PIN2 (input pullup).
347 * PB3 - PIN3 (input pullup).
348 * PB4 - PIN4 (input pullup).
349 * PB5 - PIN5 (input pullup).
350 * PB6 - PIN6 (input pullup).
351 * PB7 - PIN7 (input pullup).
352 * PB8 - PIN8 (input pullup).
353 * PB9 - PIN9 (input pullup).
354 * PB10 - PIN10 (input pullup).
355 * PB11 - PIN11 (input pullup).
356 * PB12 - PIN12 (input pullup).
357 * PB13 - SPI2_SCK (alternate 0).
358 * PB14 - SPI2_MISO (alternate 0).
359 * PB15 - SPI2_MOSI (alternate 0).
360 */
361#define VAL_GPIOB_MODER (PIN_MODE_INPUT(GPIOB_PIN0) | \
362 PIN_MODE_INPUT(GPIOB_PIN1) | \
363 PIN_MODE_INPUT(GPIOB_PIN2) | \
364 PIN_MODE_INPUT(GPIOB_PIN3) | \
365 PIN_MODE_INPUT(GPIOB_PIN4) | \
366 PIN_MODE_INPUT(GPIOB_PIN5) | \
367 PIN_MODE_INPUT(GPIOB_PIN6) | \
368 PIN_MODE_INPUT(GPIOB_PIN7) | \
369 PIN_MODE_INPUT(GPIOB_PIN8) | \
370 PIN_MODE_INPUT(GPIOB_PIN9) | \
371 PIN_MODE_INPUT(GPIOB_PIN10) | \
372 PIN_MODE_INPUT(GPIOB_PIN11) | \
373 PIN_MODE_INPUT(GPIOB_PIN12) | \
374 PIN_MODE_ALTERNATE(GPIOB_SPI2_SCK) | \
375 PIN_MODE_ALTERNATE(GPIOB_SPI2_MISO) | \
376 PIN_MODE_ALTERNATE(GPIOB_SPI2_MOSI))
377#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(GPIOB_PIN0) | \
378 PIN_OTYPE_PUSHPULL(GPIOB_PIN1) | \
379 PIN_OTYPE_PUSHPULL(GPIOB_PIN2) | \
380 PIN_OTYPE_PUSHPULL(GPIOB_PIN3) | \
381 PIN_OTYPE_PUSHPULL(GPIOB_PIN4) | \
382 PIN_OTYPE_PUSHPULL(GPIOB_PIN5) | \
383 PIN_OTYPE_PUSHPULL(GPIOB_PIN6) | \
384 PIN_OTYPE_PUSHPULL(GPIOB_PIN7) | \
385 PIN_OTYPE_PUSHPULL(GPIOB_PIN8) | \
386 PIN_OTYPE_PUSHPULL(GPIOB_PIN9) | \
387 PIN_OTYPE_PUSHPULL(GPIOB_PIN10) | \
388 PIN_OTYPE_PUSHPULL(GPIOB_PIN11) | \
389 PIN_OTYPE_PUSHPULL(GPIOB_PIN12) | \
390 PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SCK) | \
391 PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MISO) | \
392 PIN_OTYPE_PUSHPULL(GPIOB_SPI2_MOSI))
393#define VAL_GPIOB_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOB_PIN0) | \
394 PIN_OSPEED_VERYLOW(GPIOB_PIN1) | \
395 PIN_OSPEED_HIGH(GPIOB_PIN2) | \
396 PIN_OSPEED_HIGH(GPIOB_PIN3) | \
397 PIN_OSPEED_HIGH(GPIOB_PIN4) | \
398 PIN_OSPEED_VERYLOW(GPIOB_PIN5) | \
399 PIN_OSPEED_VERYLOW(GPIOB_PIN6) | \
400 PIN_OSPEED_VERYLOW(GPIOB_PIN7) | \
401 PIN_OSPEED_VERYLOW(GPIOB_PIN8) | \
402 PIN_OSPEED_VERYLOW(GPIOB_PIN9) | \
403 PIN_OSPEED_VERYLOW(GPIOB_PIN10) | \
404 PIN_OSPEED_VERYLOW(GPIOB_PIN11) | \
405 PIN_OSPEED_VERYLOW(GPIOB_PIN12) | \
406 PIN_OSPEED_VERYLOW(GPIOB_SPI2_SCK) | \
407 PIN_OSPEED_VERYLOW(GPIOB_SPI2_MISO) | \
408 PIN_OSPEED_VERYLOW(GPIOB_SPI2_MOSI))
409#define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(GPIOB_PIN0) | \
410 PIN_PUPDR_PULLUP(GPIOB_PIN1) | \
411 PIN_PUPDR_PULLUP(GPIOB_PIN2) | \
412 PIN_PUPDR_PULLUP(GPIOB_PIN3) | \
413 PIN_PUPDR_PULLUP(GPIOB_PIN4) | \
414 PIN_PUPDR_PULLUP(GPIOB_PIN5) | \
415 PIN_PUPDR_PULLUP(GPIOB_PIN6) | \
416 PIN_PUPDR_PULLUP(GPIOB_PIN7) | \
417 PIN_PUPDR_PULLUP(GPIOB_PIN8) | \
418 PIN_PUPDR_PULLUP(GPIOB_PIN9) | \
419 PIN_PUPDR_PULLUP(GPIOB_PIN10) | \
420 PIN_PUPDR_PULLUP(GPIOB_PIN11) | \
421 PIN_PUPDR_PULLUP(GPIOB_PIN12) | \
422 PIN_PUPDR_FLOATING(GPIOB_SPI2_SCK) | \
423 PIN_PUPDR_FLOATING(GPIOB_SPI2_MISO) | \
424 PIN_PUPDR_FLOATING(GPIOB_SPI2_MOSI))
425#define VAL_GPIOB_ODR (PIN_ODR_HIGH(GPIOB_PIN0) | \
426 PIN_ODR_HIGH(GPIOB_PIN1) | \
427 PIN_ODR_HIGH(GPIOB_PIN2) | \
428 PIN_ODR_HIGH(GPIOB_PIN3) | \
429 PIN_ODR_HIGH(GPIOB_PIN4) | \
430 PIN_ODR_HIGH(GPIOB_PIN5) | \
431 PIN_ODR_HIGH(GPIOB_PIN6) | \
432 PIN_ODR_HIGH(GPIOB_PIN7) | \
433 PIN_ODR_HIGH(GPIOB_PIN8) | \
434 PIN_ODR_HIGH(GPIOB_PIN9) | \
435 PIN_ODR_HIGH(GPIOB_PIN10) | \
436 PIN_ODR_HIGH(GPIOB_PIN11) | \
437 PIN_ODR_HIGH(GPIOB_PIN12) | \
438 PIN_ODR_HIGH(GPIOB_SPI2_SCK) | \
439 PIN_ODR_HIGH(GPIOB_SPI2_MISO) | \
440 PIN_ODR_HIGH(GPIOB_SPI2_MOSI))
441#define VAL_GPIOB_AFRL (PIN_AFIO_AF(GPIOB_PIN0, 0U) | \
442 PIN_AFIO_AF(GPIOB_PIN1, 0U) | \
443 PIN_AFIO_AF(GPIOB_PIN2, 0U) | \
444 PIN_AFIO_AF(GPIOB_PIN3, 0U) | \
445 PIN_AFIO_AF(GPIOB_PIN4, 0U) | \
446 PIN_AFIO_AF(GPIOB_PIN5, 0U) | \
447 PIN_AFIO_AF(GPIOB_PIN6, 0U) | \
448 PIN_AFIO_AF(GPIOB_PIN7, 0U))
449#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_PIN8, 0U) | \
450 PIN_AFIO_AF(GPIOB_PIN9, 0U) | \
451 PIN_AFIO_AF(GPIOB_PIN10, 0U) | \
452 PIN_AFIO_AF(GPIOB_PIN11, 0U) | \
453 PIN_AFIO_AF(GPIOB_PIN12, 0U) | \
454 PIN_AFIO_AF(GPIOB_SPI2_SCK, 0U) | \
455 PIN_AFIO_AF(GPIOB_SPI2_MISO, 0U) | \
456 PIN_AFIO_AF(GPIOB_SPI2_MOSI, 0U))
457
458/*
459 * GPIOC setup:
460 *
461 * PC0 - MEMS_CS (output pushpull maximum).
462 * PC1 - PIN1 (input pullup).
463 * PC2 - PIN2 (input pullup).
464 * PC3 - PIN3 (input pullup).
465 * PC4 - PIN4 (input pullup).
466 * PC5 - PIN5 (input pullup).
467 * PC6 - LED_RED (output pushpull maximum).
468 * PC7 - LED_BLUE (output pushpull maximum).
469 * PC8 - LED_ORANGE (output pushpull maximum).
470 * PC9 - LED_GREEN (output pushpull maximum).
471 * PC10 - PIN10 (input pullup).
472 * PC11 - PIN11 (input pullup).
473 * PC12 - PIN12 (input pullup).
474 * PC13 - PIN13 (input pullup).
475 * PC14 - OSC32_IN (input floating).
476 * PC15 - OSC32_OUT (input floating).
477 */
478#define VAL_GPIOC_MODER (PIN_MODE_OUTPUT(GPIOC_MEMS_CS) | \
479 PIN_MODE_INPUT(GPIOC_PIN1) | \
480 PIN_MODE_INPUT(GPIOC_PIN2) | \
481 PIN_MODE_INPUT(GPIOC_PIN3) | \
482 PIN_MODE_INPUT(GPIOC_PIN4) | \
483 PIN_MODE_INPUT(GPIOC_PIN5) | \
484 PIN_MODE_OUTPUT(GPIOC_LED_RED) | \
485 PIN_MODE_OUTPUT(GPIOC_LED_BLUE) | \
486 PIN_MODE_OUTPUT(GPIOC_LED_ORANGE) | \
487 PIN_MODE_OUTPUT(GPIOC_LED_GREEN) | \
488 PIN_MODE_INPUT(GPIOC_PIN10) | \
489 PIN_MODE_INPUT(GPIOC_PIN11) | \
490 PIN_MODE_INPUT(GPIOC_PIN12) | \
491 PIN_MODE_INPUT(GPIOC_PIN13) | \
492 PIN_MODE_INPUT(GPIOC_OSC32_IN) | \
493 PIN_MODE_INPUT(GPIOC_OSC32_OUT))
494#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(GPIOC_MEMS_CS) | \
495 PIN_OTYPE_PUSHPULL(GPIOC_PIN1) | \
496 PIN_OTYPE_PUSHPULL(GPIOC_PIN2) | \
497 PIN_OTYPE_PUSHPULL(GPIOC_PIN3) | \
498 PIN_OTYPE_PUSHPULL(GPIOC_PIN4) | \
499 PIN_OTYPE_PUSHPULL(GPIOC_PIN5) | \
500 PIN_OTYPE_PUSHPULL(GPIOC_LED_RED) | \
501 PIN_OTYPE_PUSHPULL(GPIOC_LED_BLUE) | \
502 PIN_OTYPE_PUSHPULL(GPIOC_LED_ORANGE) | \
503 PIN_OTYPE_PUSHPULL(GPIOC_LED_GREEN) | \
504 PIN_OTYPE_PUSHPULL(GPIOC_PIN10) | \
505 PIN_OTYPE_PUSHPULL(GPIOC_PIN11) | \
506 PIN_OTYPE_PUSHPULL(GPIOC_PIN12) | \
507 PIN_OTYPE_PUSHPULL(GPIOC_PIN13) | \
508 PIN_OTYPE_PUSHPULL(GPIOC_OSC32_IN) | \
509 PIN_OTYPE_PUSHPULL(GPIOC_OSC32_OUT))
510#define VAL_GPIOC_OSPEEDR (PIN_OSPEED_HIGH(GPIOC_MEMS_CS) | \
511 PIN_OSPEED_VERYLOW(GPIOC_PIN1) | \
512 PIN_OSPEED_VERYLOW(GPIOC_PIN2) | \
513 PIN_OSPEED_VERYLOW(GPIOC_PIN3) | \
514 PIN_OSPEED_VERYLOW(GPIOC_PIN4) | \
515 PIN_OSPEED_VERYLOW(GPIOC_PIN5) | \
516 PIN_OSPEED_HIGH(GPIOC_LED_RED) | \
517 PIN_OSPEED_HIGH(GPIOC_LED_BLUE) | \
518 PIN_OSPEED_HIGH(GPIOC_LED_ORANGE) | \
519 PIN_OSPEED_HIGH(GPIOC_LED_GREEN) | \
520 PIN_OSPEED_VERYLOW(GPIOC_PIN10) | \
521 PIN_OSPEED_VERYLOW(GPIOC_PIN11) | \
522 PIN_OSPEED_VERYLOW(GPIOC_PIN12) | \
523 PIN_OSPEED_VERYLOW(GPIOC_PIN13) | \
524 PIN_OSPEED_HIGH(GPIOC_OSC32_IN) | \
525 PIN_OSPEED_HIGH(GPIOC_OSC32_OUT))
526#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING(GPIOC_MEMS_CS) | \
527 PIN_PUPDR_PULLUP(GPIOC_PIN1) | \
528 PIN_PUPDR_PULLUP(GPIOC_PIN2) | \
529 PIN_PUPDR_PULLUP(GPIOC_PIN3) | \
530 PIN_PUPDR_PULLUP(GPIOC_PIN4) | \
531 PIN_PUPDR_PULLUP(GPIOC_PIN5) | \
532 PIN_PUPDR_FLOATING(GPIOC_LED_RED) | \
533 PIN_PUPDR_FLOATING(GPIOC_LED_BLUE) | \
534 PIN_PUPDR_FLOATING(GPIOC_LED_ORANGE) | \
535 PIN_PUPDR_FLOATING(GPIOC_LED_GREEN) | \
536 PIN_PUPDR_PULLUP(GPIOC_PIN10) | \
537 PIN_PUPDR_PULLUP(GPIOC_PIN11) | \
538 PIN_PUPDR_PULLUP(GPIOC_PIN12) | \
539 PIN_PUPDR_PULLUP(GPIOC_PIN13) | \
540 PIN_PUPDR_FLOATING(GPIOC_OSC32_IN) | \
541 PIN_PUPDR_FLOATING(GPIOC_OSC32_OUT))
542#define VAL_GPIOC_ODR (PIN_ODR_HIGH(GPIOC_MEMS_CS) | \
543 PIN_ODR_HIGH(GPIOC_PIN1) | \
544 PIN_ODR_HIGH(GPIOC_PIN2) | \
545 PIN_ODR_HIGH(GPIOC_PIN3) | \
546 PIN_ODR_HIGH(GPIOC_PIN4) | \
547 PIN_ODR_HIGH(GPIOC_PIN5) | \
548 PIN_ODR_LOW(GPIOC_LED_RED) | \
549 PIN_ODR_LOW(GPIOC_LED_BLUE) | \
550 PIN_ODR_LOW(GPIOC_LED_ORANGE) | \
551 PIN_ODR_LOW(GPIOC_LED_GREEN) | \
552 PIN_ODR_HIGH(GPIOC_PIN10) | \
553 PIN_ODR_HIGH(GPIOC_PIN11) | \
554 PIN_ODR_HIGH(GPIOC_PIN12) | \
555 PIN_ODR_HIGH(GPIOC_PIN13) | \
556 PIN_ODR_HIGH(GPIOC_OSC32_IN) | \
557 PIN_ODR_HIGH(GPIOC_OSC32_OUT))
558#define VAL_GPIOC_AFRL (PIN_AFIO_AF(GPIOC_MEMS_CS, 0U) | \
559 PIN_AFIO_AF(GPIOC_PIN1, 0U) | \
560 PIN_AFIO_AF(GPIOC_PIN2, 0U) | \
561 PIN_AFIO_AF(GPIOC_PIN3, 0U) | \
562 PIN_AFIO_AF(GPIOC_PIN4, 0U) | \
563 PIN_AFIO_AF(GPIOC_PIN5, 0U) | \
564 PIN_AFIO_AF(GPIOC_LED_RED, 0U) | \
565 PIN_AFIO_AF(GPIOC_LED_BLUE, 0U))
566#define VAL_GPIOC_AFRH (PIN_AFIO_AF(GPIOC_LED_ORANGE, 0U) | \
567 PIN_AFIO_AF(GPIOC_LED_GREEN, 0U) | \
568 PIN_AFIO_AF(GPIOC_PIN10, 0U) | \
569 PIN_AFIO_AF(GPIOC_PIN11, 0U) | \
570 PIN_AFIO_AF(GPIOC_PIN12, 0U) | \
571 PIN_AFIO_AF(GPIOC_PIN13, 0U) | \
572 PIN_AFIO_AF(GPIOC_OSC32_IN, 0U) | \
573 PIN_AFIO_AF(GPIOC_OSC32_OUT, 0U))
574
575/*
576 * GPIOD setup:
577 *
578 * PD0 - PIN0 (input pullup).
579 * PD1 - PIN1 (input pullup).
580 * PD2 - PIN2 (input pullup).
581 * PD3 - PIN3 (input pullup).
582 * PD4 - PIN4 (input pullup).
583 * PD5 - PIN5 (input pullup).
584 * PD6 - PIN6 (input pullup).
585 * PD7 - PIN7 (input pullup).
586 * PD8 - PIN8 (input pullup).
587 * PD9 - PIN9 (input pullup).
588 * PD10 - PIN10 (input pullup).
589 * PD11 - PIN11 (input pullup).
590 * PD12 - PIN12 (input pullup).
591 * PD13 - PIN13 (input pullup).
592 * PD14 - PIN14 (input pullup).
593 * PD15 - PIN15 (input pullup).
594 */
595#define VAL_GPIOD_MODER (PIN_MODE_INPUT(GPIOD_PIN0) | \
596 PIN_MODE_INPUT(GPIOD_PIN1) | \
597 PIN_MODE_INPUT(GPIOD_PIN2) | \
598 PIN_MODE_INPUT(GPIOD_PIN3) | \
599 PIN_MODE_INPUT(GPIOD_PIN4) | \
600 PIN_MODE_INPUT(GPIOD_PIN5) | \
601 PIN_MODE_INPUT(GPIOD_PIN6) | \
602 PIN_MODE_INPUT(GPIOD_PIN7) | \
603 PIN_MODE_INPUT(GPIOD_PIN8) | \
604 PIN_MODE_INPUT(GPIOD_PIN9) | \
605 PIN_MODE_INPUT(GPIOD_PIN10) | \
606 PIN_MODE_INPUT(GPIOD_PIN11) | \
607 PIN_MODE_INPUT(GPIOD_PIN12) | \
608 PIN_MODE_INPUT(GPIOD_PIN13) | \
609 PIN_MODE_INPUT(GPIOD_PIN14) | \
610 PIN_MODE_INPUT(GPIOD_PIN15))
611#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL(GPIOD_PIN0) | \
612 PIN_OTYPE_PUSHPULL(GPIOD_PIN1) | \
613 PIN_OTYPE_PUSHPULL(GPIOD_PIN2) | \
614 PIN_OTYPE_PUSHPULL(GPIOD_PIN3) | \
615 PIN_OTYPE_PUSHPULL(GPIOD_PIN4) | \
616 PIN_OTYPE_PUSHPULL(GPIOD_PIN5) | \
617 PIN_OTYPE_PUSHPULL(GPIOD_PIN6) | \
618 PIN_OTYPE_PUSHPULL(GPIOD_PIN7) | \
619 PIN_OTYPE_PUSHPULL(GPIOD_PIN8) | \
620 PIN_OTYPE_PUSHPULL(GPIOD_PIN9) | \
621 PIN_OTYPE_PUSHPULL(GPIOD_PIN10) | \
622 PIN_OTYPE_PUSHPULL(GPIOD_PIN11) | \
623 PIN_OTYPE_PUSHPULL(GPIOD_PIN12) | \
624 PIN_OTYPE_PUSHPULL(GPIOD_PIN13) | \
625 PIN_OTYPE_PUSHPULL(GPIOD_PIN14) | \
626 PIN_OTYPE_PUSHPULL(GPIOD_PIN15))
627#define VAL_GPIOD_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOD_PIN0) | \
628 PIN_OSPEED_VERYLOW(GPIOD_PIN1) | \
629 PIN_OSPEED_VERYLOW(GPIOD_PIN2) | \
630 PIN_OSPEED_VERYLOW(GPIOD_PIN3) | \
631 PIN_OSPEED_VERYLOW(GPIOD_PIN4) | \
632 PIN_OSPEED_VERYLOW(GPIOD_PIN5) | \
633 PIN_OSPEED_VERYLOW(GPIOD_PIN6) | \
634 PIN_OSPEED_VERYLOW(GPIOD_PIN7) | \
635 PIN_OSPEED_VERYLOW(GPIOD_PIN8) | \
636 PIN_OSPEED_VERYLOW(GPIOD_PIN9) | \
637 PIN_OSPEED_VERYLOW(GPIOD_PIN10) | \
638 PIN_OSPEED_VERYLOW(GPIOD_PIN11) | \
639 PIN_OSPEED_VERYLOW(GPIOD_PIN12) | \
640 PIN_OSPEED_VERYLOW(GPIOD_PIN13) | \
641 PIN_OSPEED_VERYLOW(GPIOD_PIN14) | \
642 PIN_OSPEED_VERYLOW(GPIOD_PIN15))
643#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP(GPIOD_PIN0) | \
644 PIN_PUPDR_PULLUP(GPIOD_PIN1) | \
645 PIN_PUPDR_PULLUP(GPIOD_PIN2) | \
646 PIN_PUPDR_PULLUP(GPIOD_PIN3) | \
647 PIN_PUPDR_PULLUP(GPIOD_PIN4) | \
648 PIN_PUPDR_PULLUP(GPIOD_PIN5) | \
649 PIN_PUPDR_PULLUP(GPIOD_PIN6) | \
650 PIN_PUPDR_PULLUP(GPIOD_PIN7) | \
651 PIN_PUPDR_PULLUP(GPIOD_PIN8) | \
652 PIN_PUPDR_PULLUP(GPIOD_PIN9) | \
653 PIN_PUPDR_PULLUP(GPIOD_PIN10) | \
654 PIN_PUPDR_PULLUP(GPIOD_PIN11) | \
655 PIN_PUPDR_PULLUP(GPIOD_PIN12) | \
656 PIN_PUPDR_PULLUP(GPIOD_PIN13) | \
657 PIN_PUPDR_PULLUP(GPIOD_PIN14) | \
658 PIN_PUPDR_PULLUP(GPIOD_PIN15))
659#define VAL_GPIOD_ODR (PIN_ODR_HIGH(GPIOD_PIN0) | \
660 PIN_ODR_HIGH(GPIOD_PIN1) | \
661 PIN_ODR_HIGH(GPIOD_PIN2) | \
662 PIN_ODR_HIGH(GPIOD_PIN3) | \
663 PIN_ODR_HIGH(GPIOD_PIN4) | \
664 PIN_ODR_HIGH(GPIOD_PIN5) | \
665 PIN_ODR_HIGH(GPIOD_PIN6) | \
666 PIN_ODR_HIGH(GPIOD_PIN7) | \
667 PIN_ODR_HIGH(GPIOD_PIN8) | \
668 PIN_ODR_HIGH(GPIOD_PIN9) | \
669 PIN_ODR_HIGH(GPIOD_PIN10) | \
670 PIN_ODR_HIGH(GPIOD_PIN11) | \
671 PIN_ODR_HIGH(GPIOD_PIN12) | \
672 PIN_ODR_HIGH(GPIOD_PIN13) | \
673 PIN_ODR_HIGH(GPIOD_PIN14) | \
674 PIN_ODR_HIGH(GPIOD_PIN15))
675#define VAL_GPIOD_AFRL (PIN_AFIO_AF(GPIOD_PIN0, 0U) | \
676 PIN_AFIO_AF(GPIOD_PIN1, 0U) | \
677 PIN_AFIO_AF(GPIOD_PIN2, 0U) | \
678 PIN_AFIO_AF(GPIOD_PIN3, 0U) | \
679 PIN_AFIO_AF(GPIOD_PIN4, 0U) | \
680 PIN_AFIO_AF(GPIOD_PIN5, 0U) | \
681 PIN_AFIO_AF(GPIOD_PIN6, 0U) | \
682 PIN_AFIO_AF(GPIOD_PIN7, 0U))
683#define VAL_GPIOD_AFRH (PIN_AFIO_AF(GPIOD_PIN8, 0U) | \
684 PIN_AFIO_AF(GPIOD_PIN9, 0U) | \
685 PIN_AFIO_AF(GPIOD_PIN10, 0U) | \
686 PIN_AFIO_AF(GPIOD_PIN11, 0U) | \
687 PIN_AFIO_AF(GPIOD_PIN12, 0U) | \
688 PIN_AFIO_AF(GPIOD_PIN13, 0U) | \
689 PIN_AFIO_AF(GPIOD_PIN14, 0U) | \
690 PIN_AFIO_AF(GPIOD_PIN15, 0U))
691
692/*
693 * GPIOE setup:
694 *
695 * PE0 - PIN0 (input pullup).
696 * PE1 - PIN1 (input pullup).
697 * PE2 - PIN2 (input pullup).
698 * PE3 - PIN3 (input pullup).
699 * PE4 - PIN4 (input pullup).
700 * PE5 - PIN5 (input pullup).
701 * PE6 - PIN6 (input pullup).
702 * PE7 - PIN7 (input pullup).
703 * PE8 - PIN8 (input pullup).
704 * PE9 - PIN9 (input pullup).
705 * PE10 - PIN10 (input pullup).
706 * PE11 - PIN11 (input pullup).
707 * PE12 - PIN12 (input pullup).
708 * PE13 - PIN13 (input pullup).
709 * PE14 - PIN14 (input pullup).
710 * PE15 - PIN15 (input pullup).
711 */
712#define VAL_GPIOE_MODER (PIN_MODE_INPUT(GPIOE_PIN0) | \
713 PIN_MODE_INPUT(GPIOE_PIN1) | \
714 PIN_MODE_INPUT(GPIOE_PIN2) | \
715 PIN_MODE_INPUT(GPIOE_PIN3) | \
716 PIN_MODE_INPUT(GPIOE_PIN4) | \
717 PIN_MODE_INPUT(GPIOE_PIN5) | \
718 PIN_MODE_INPUT(GPIOE_PIN6) | \
719 PIN_MODE_INPUT(GPIOE_PIN7) | \
720 PIN_MODE_INPUT(GPIOE_PIN8) | \
721 PIN_MODE_INPUT(GPIOE_PIN9) | \
722 PIN_MODE_INPUT(GPIOE_PIN10) | \
723 PIN_MODE_INPUT(GPIOE_PIN11) | \
724 PIN_MODE_INPUT(GPIOE_PIN12) | \
725 PIN_MODE_INPUT(GPIOE_PIN13) | \
726 PIN_MODE_INPUT(GPIOE_PIN14) | \
727 PIN_MODE_INPUT(GPIOE_PIN15))
728#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL(GPIOE_PIN0) | \
729 PIN_OTYPE_PUSHPULL(GPIOE_PIN1) | \
730 PIN_OTYPE_PUSHPULL(GPIOE_PIN2) | \
731 PIN_OTYPE_PUSHPULL(GPIOE_PIN3) | \
732 PIN_OTYPE_PUSHPULL(GPIOE_PIN4) | \
733 PIN_OTYPE_PUSHPULL(GPIOE_PIN5) | \
734 PIN_OTYPE_PUSHPULL(GPIOE_PIN6) | \
735 PIN_OTYPE_PUSHPULL(GPIOE_PIN7) | \
736 PIN_OTYPE_PUSHPULL(GPIOE_PIN8) | \
737 PIN_OTYPE_PUSHPULL(GPIOE_PIN9) | \
738 PIN_OTYPE_PUSHPULL(GPIOE_PIN10) | \
739 PIN_OTYPE_PUSHPULL(GPIOE_PIN11) | \
740 PIN_OTYPE_PUSHPULL(GPIOE_PIN12) | \
741 PIN_OTYPE_PUSHPULL(GPIOE_PIN13) | \
742 PIN_OTYPE_PUSHPULL(GPIOE_PIN14) | \
743 PIN_OTYPE_PUSHPULL(GPIOE_PIN15))
744#define VAL_GPIOE_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOE_PIN0) | \
745 PIN_OSPEED_VERYLOW(GPIOE_PIN1) | \
746 PIN_OSPEED_VERYLOW(GPIOE_PIN2) | \
747 PIN_OSPEED_VERYLOW(GPIOE_PIN3) | \
748 PIN_OSPEED_VERYLOW(GPIOE_PIN4) | \
749 PIN_OSPEED_VERYLOW(GPIOE_PIN5) | \
750 PIN_OSPEED_VERYLOW(GPIOE_PIN6) | \
751 PIN_OSPEED_VERYLOW(GPIOE_PIN7) | \
752 PIN_OSPEED_VERYLOW(GPIOE_PIN8) | \
753 PIN_OSPEED_VERYLOW(GPIOE_PIN9) | \
754 PIN_OSPEED_VERYLOW(GPIOE_PIN10) | \
755 PIN_OSPEED_VERYLOW(GPIOE_PIN11) | \
756 PIN_OSPEED_VERYLOW(GPIOE_PIN12) | \
757 PIN_OSPEED_VERYLOW(GPIOE_PIN13) | \
758 PIN_OSPEED_VERYLOW(GPIOE_PIN14) | \
759 PIN_OSPEED_VERYLOW(GPIOE_PIN15))
760#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP(GPIOE_PIN0) | \
761 PIN_PUPDR_PULLUP(GPIOE_PIN1) | \
762 PIN_PUPDR_PULLUP(GPIOE_PIN2) | \
763 PIN_PUPDR_PULLUP(GPIOE_PIN3) | \
764 PIN_PUPDR_PULLUP(GPIOE_PIN4) | \
765 PIN_PUPDR_PULLUP(GPIOE_PIN5) | \
766 PIN_PUPDR_PULLUP(GPIOE_PIN6) | \
767 PIN_PUPDR_PULLUP(GPIOE_PIN7) | \
768 PIN_PUPDR_PULLUP(GPIOE_PIN8) | \
769 PIN_PUPDR_PULLUP(GPIOE_PIN9) | \
770 PIN_PUPDR_PULLUP(GPIOE_PIN10) | \
771 PIN_PUPDR_PULLUP(GPIOE_PIN11) | \
772 PIN_PUPDR_PULLUP(GPIOE_PIN12) | \
773 PIN_PUPDR_PULLUP(GPIOE_PIN13) | \
774 PIN_PUPDR_PULLUP(GPIOE_PIN14) | \
775 PIN_PUPDR_PULLUP(GPIOE_PIN15))
776#define VAL_GPIOE_ODR (PIN_ODR_HIGH(GPIOE_PIN0) | \
777 PIN_ODR_HIGH(GPIOE_PIN1) | \
778 PIN_ODR_HIGH(GPIOE_PIN2) | \
779 PIN_ODR_HIGH(GPIOE_PIN3) | \
780 PIN_ODR_HIGH(GPIOE_PIN4) | \
781 PIN_ODR_HIGH(GPIOE_PIN5) | \
782 PIN_ODR_HIGH(GPIOE_PIN6) | \
783 PIN_ODR_HIGH(GPIOE_PIN7) | \
784 PIN_ODR_HIGH(GPIOE_PIN8) | \
785 PIN_ODR_HIGH(GPIOE_PIN9) | \
786 PIN_ODR_HIGH(GPIOE_PIN10) | \
787 PIN_ODR_HIGH(GPIOE_PIN11) | \
788 PIN_ODR_HIGH(GPIOE_PIN12) | \
789 PIN_ODR_HIGH(GPIOE_PIN13) | \
790 PIN_ODR_HIGH(GPIOE_PIN14) | \
791 PIN_ODR_HIGH(GPIOE_PIN15))
792#define VAL_GPIOE_AFRL (PIN_AFIO_AF(GPIOE_PIN0, 0U) | \
793 PIN_AFIO_AF(GPIOE_PIN1, 0U) | \
794 PIN_AFIO_AF(GPIOE_PIN2, 0U) | \
795 PIN_AFIO_AF(GPIOE_PIN3, 0U) | \
796 PIN_AFIO_AF(GPIOE_PIN4, 0U) | \
797 PIN_AFIO_AF(GPIOE_PIN5, 0U) | \
798 PIN_AFIO_AF(GPIOE_PIN6, 0U) | \
799 PIN_AFIO_AF(GPIOE_PIN7, 0U))
800#define VAL_GPIOE_AFRH (PIN_AFIO_AF(GPIOE_PIN8, 0U) | \
801 PIN_AFIO_AF(GPIOE_PIN9, 0U) | \
802 PIN_AFIO_AF(GPIOE_PIN10, 0U) | \
803 PIN_AFIO_AF(GPIOE_PIN11, 0U) | \
804 PIN_AFIO_AF(GPIOE_PIN12, 0U) | \
805 PIN_AFIO_AF(GPIOE_PIN13, 0U) | \
806 PIN_AFIO_AF(GPIOE_PIN14, 0U) | \
807 PIN_AFIO_AF(GPIOE_PIN15, 0U))
808
809/*
810 * GPIOF setup:
811 *
812 * PF0 - OSC_IN (input floating).
813 * PF1 - OSC_OUT (input floating).
814 * PF2 - PIN2 (input pullup).
815 * PF3 - PIN3 (input pullup).
816 * PF4 - PIN4 (input pullup).
817 * PF5 - PIN5 (input pullup).
818 * PF6 - PIN6 (input pullup).
819 * PF7 - PIN7 (input pullup).
820 * PF8 - PIN8 (input pullup).
821 * PF9 - PIN9 (input pullup).
822 * PF10 - PIN10 (input pullup).
823 * PF11 - PIN11 (input pullup).
824 * PF12 - PIN12 (input pullup).
825 * PF13 - PIN13 (input pullup).
826 * PF14 - PIN14 (input pullup).
827 * PF15 - PIN15 (input pullup).
828 */
829#define VAL_GPIOF_MODER (PIN_MODE_INPUT(GPIOF_OSC_IN) | \
830 PIN_MODE_INPUT(GPIOF_OSC_OUT) | \
831 PIN_MODE_INPUT(GPIOF_PIN2) | \
832 PIN_MODE_INPUT(GPIOF_PIN3) | \
833 PIN_MODE_INPUT(GPIOF_PIN4) | \
834 PIN_MODE_INPUT(GPIOF_PIN5) | \
835 PIN_MODE_INPUT(GPIOF_PIN6) | \
836 PIN_MODE_INPUT(GPIOF_PIN7) | \
837 PIN_MODE_INPUT(GPIOF_PIN8) | \
838 PIN_MODE_INPUT(GPIOF_PIN9) | \
839 PIN_MODE_INPUT(GPIOF_PIN10) | \
840 PIN_MODE_INPUT(GPIOF_PIN11) | \
841 PIN_MODE_INPUT(GPIOF_PIN12) | \
842 PIN_MODE_INPUT(GPIOF_PIN13) | \
843 PIN_MODE_INPUT(GPIOF_PIN14) | \
844 PIN_MODE_INPUT(GPIOF_PIN15))
845#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL(GPIOF_OSC_IN) | \
846 PIN_OTYPE_PUSHPULL(GPIOF_OSC_OUT) | \
847 PIN_OTYPE_PUSHPULL(GPIOF_PIN2) | \
848 PIN_OTYPE_PUSHPULL(GPIOF_PIN3) | \
849 PIN_OTYPE_PUSHPULL(GPIOF_PIN4) | \
850 PIN_OTYPE_PUSHPULL(GPIOF_PIN5) | \
851 PIN_OTYPE_PUSHPULL(GPIOF_PIN6) | \
852 PIN_OTYPE_PUSHPULL(GPIOF_PIN7) | \
853 PIN_OTYPE_PUSHPULL(GPIOF_PIN8) | \
854 PIN_OTYPE_PUSHPULL(GPIOF_PIN9) | \
855 PIN_OTYPE_PUSHPULL(GPIOF_PIN10) | \
856 PIN_OTYPE_PUSHPULL(GPIOF_PIN11) | \
857 PIN_OTYPE_PUSHPULL(GPIOF_PIN12) | \
858 PIN_OTYPE_PUSHPULL(GPIOF_PIN13) | \
859 PIN_OTYPE_PUSHPULL(GPIOF_PIN14) | \
860 PIN_OTYPE_PUSHPULL(GPIOF_PIN15))
861#define VAL_GPIOF_OSPEEDR (PIN_OSPEED_VERYLOW(GPIOF_OSC_IN) | \
862 PIN_OSPEED_VERYLOW(GPIOF_OSC_OUT) | \
863 PIN_OSPEED_VERYLOW(GPIOF_PIN2) | \
864 PIN_OSPEED_VERYLOW(GPIOF_PIN3) | \
865 PIN_OSPEED_VERYLOW(GPIOF_PIN4) | \
866 PIN_OSPEED_VERYLOW(GPIOF_PIN5) | \
867 PIN_OSPEED_VERYLOW(GPIOF_PIN6) | \
868 PIN_OSPEED_VERYLOW(GPIOF_PIN7) | \
869 PIN_OSPEED_VERYLOW(GPIOF_PIN8) | \
870 PIN_OSPEED_VERYLOW(GPIOF_PIN9) | \
871 PIN_OSPEED_VERYLOW(GPIOF_PIN10) | \
872 PIN_OSPEED_VERYLOW(GPIOF_PIN11) | \
873 PIN_OSPEED_VERYLOW(GPIOF_PIN12) | \
874 PIN_OSPEED_VERYLOW(GPIOF_PIN13) | \
875 PIN_OSPEED_VERYLOW(GPIOF_PIN14) | \
876 PIN_OSPEED_VERYLOW(GPIOF_PIN15))
877#define VAL_GPIOF_PUPDR (PIN_PUPDR_FLOATING(GPIOF_OSC_IN) | \
878 PIN_PUPDR_FLOATING(GPIOF_OSC_OUT) | \
879 PIN_PUPDR_PULLUP(GPIOF_PIN2) | \
880 PIN_PUPDR_PULLUP(GPIOF_PIN3) | \
881 PIN_PUPDR_PULLUP(GPIOF_PIN4) | \
882 PIN_PUPDR_PULLUP(GPIOF_PIN5) | \
883 PIN_PUPDR_PULLUP(GPIOF_PIN6) | \
884 PIN_PUPDR_PULLUP(GPIOF_PIN7) | \
885 PIN_PUPDR_PULLUP(GPIOF_PIN8) | \
886 PIN_PUPDR_PULLUP(GPIOF_PIN9) | \
887 PIN_PUPDR_PULLUP(GPIOF_PIN10) | \
888 PIN_PUPDR_PULLUP(GPIOF_PIN11) | \
889 PIN_PUPDR_PULLUP(GPIOF_PIN12) | \
890 PIN_PUPDR_PULLUP(GPIOF_PIN13) | \
891 PIN_PUPDR_PULLUP(GPIOF_PIN14) | \
892 PIN_PUPDR_PULLUP(GPIOF_PIN15))
893#define VAL_GPIOF_ODR (PIN_ODR_HIGH(GPIOF_OSC_IN) | \
894 PIN_ODR_HIGH(GPIOF_OSC_OUT) | \
895 PIN_ODR_HIGH(GPIOF_PIN2) | \
896 PIN_ODR_HIGH(GPIOF_PIN3) | \
897 PIN_ODR_HIGH(GPIOF_PIN4) | \
898 PIN_ODR_HIGH(GPIOF_PIN5) | \
899 PIN_ODR_HIGH(GPIOF_PIN6) | \
900 PIN_ODR_HIGH(GPIOF_PIN7) | \
901 PIN_ODR_HIGH(GPIOF_PIN8) | \
902 PIN_ODR_HIGH(GPIOF_PIN9) | \
903 PIN_ODR_HIGH(GPIOF_PIN10) | \
904 PIN_ODR_HIGH(GPIOF_PIN11) | \
905 PIN_ODR_HIGH(GPIOF_PIN12) | \
906 PIN_ODR_HIGH(GPIOF_PIN13) | \
907 PIN_ODR_HIGH(GPIOF_PIN14) | \
908 PIN_ODR_HIGH(GPIOF_PIN15))
909#define VAL_GPIOF_AFRL (PIN_AFIO_AF(GPIOF_OSC_IN, 0U) | \
910 PIN_AFIO_AF(GPIOF_OSC_OUT, 0U) | \
911 PIN_AFIO_AF(GPIOF_PIN2, 0U) | \
912 PIN_AFIO_AF(GPIOF_PIN3, 0U) | \
913 PIN_AFIO_AF(GPIOF_PIN4, 0U) | \
914 PIN_AFIO_AF(GPIOF_PIN5, 0U) | \
915 PIN_AFIO_AF(GPIOF_PIN6, 0U) | \
916 PIN_AFIO_AF(GPIOF_PIN7, 0U))
917#define VAL_GPIOF_AFRH (PIN_AFIO_AF(GPIOF_PIN8, 0U) | \
918 PIN_AFIO_AF(GPIOF_PIN9, 0U) | \
919 PIN_AFIO_AF(GPIOF_PIN10, 0U) | \
920 PIN_AFIO_AF(GPIOF_PIN11, 0U) | \
921 PIN_AFIO_AF(GPIOF_PIN12, 0U) | \
922 PIN_AFIO_AF(GPIOF_PIN13, 0U) | \
923 PIN_AFIO_AF(GPIOF_PIN14, 0U) | \
924 PIN_AFIO_AF(GPIOF_PIN15, 0U))
925
926/*===========================================================================*/
927/* External declarations. */
928/*===========================================================================*/
929
930#if !defined(_FROM_ASM_)
931#ifdef __cplusplus
932extern "C" {
933#endif
934 void boardInit(void);
935#ifdef __cplusplus
936}
937#endif
938#endif /* _FROM_ASM_ */
939
940#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 @@
1# List of all the board related files.
2BOARDSRC = $(BOARD_PATH)/boards/ST_STM32F072B_DISCOVERY/board.c
3
4# Required include directories
5BOARDINC = $(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 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- STM32F0xx board Template -->
3<board
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:noNamespaceSchemaLocation="http://www.chibios.org/xml/schema/boards/stm32f0xx_board.xsd">
6 <configuration_settings>
7 <templates_path>resources/gencfg/processors/boards/stm32f0xx/templates</templates_path>
8 <output_path>..</output_path>
9 <hal_version>3.0.x</hal_version>
10 </configuration_settings>
11 <board_name>ST STM32F072B-Discovery</board_name>
12 <board_id>ST_STM32F072B_DISCOVERY</board_id>
13 <board_functions></board_functions>
14 <subtype>STM32F072xB</subtype>
15 <clocks HSEFrequency="0" HSEBypass="true" LSEFrequency="0"
16 LSEBypass="false" LSEDrive="3 High Drive (default)" />
17 <ports>
18 <GPIOA>
19 <pin0
20 ID="BUTTON"
21 Type="PushPull"
22 Speed="Minimum"
23 Resistor="Floating"
24 Level="High"
25 Mode="Input"
26 Alternate="0" />
27 <pin1
28 ID=""
29 Type="PushPull"
30 Speed="Minimum"
31 Resistor="PullUp"
32 Level="High"
33 Mode="Input"
34 Alternate="0" />
35 <pin2
36 ID=""
37 Type="PushPull"
38 Speed="Minimum"
39 Resistor="PullUp"
40 Level="High"
41 Mode="Input"
42 Alternate="0" />
43 <pin3
44 ID=""
45 Type="PushPull"
46 Speed="Minimum"
47 Resistor="PullUp"
48 Level="High"
49 Mode="Input"
50 Alternate="0" />
51 <pin4
52 ID=""
53 Type="PushPull"
54 Speed="Minimum"
55 Resistor="PullUp"
56 Level="High"
57 Mode="Input"
58 Alternate="0" />
59 <pin5
60 ID=""
61 Type="PushPull"
62 Speed="Minimum"
63 Resistor="PullUp"
64 Level="High"
65 Mode="Input"
66 Alternate="0" />
67 <pin6
68 ID=""
69 Type="PushPull"
70 Speed="Minimum"
71 Resistor="PullUp"
72 Level="High"
73 Mode="Input"
74 Alternate="0" />
75 <pin7
76 ID=""
77 Type="PushPull"
78 Speed="Minimum"
79 Resistor="PullUp"
80 Level="High"
81 Mode="Input"
82 Alternate="0" />
83 <pin8
84 ID=""
85 Type="PushPull"
86 Speed="Minimum"
87 Resistor="PullUp"
88 Level="High"
89 Mode="Input"
90 Alternate="0" />
91 <pin9
92 ID=""
93 Type="PushPull"
94 Speed="Minimum"
95 Resistor="PullUp"
96 Level="High"
97 Mode="Input"
98 Alternate="0" />
99 <pin10
100 ID=""
101 Type="PushPull"
102 Speed="Minimum"
103 Resistor="PullUp"
104 Level="High"
105 Mode="Input"
106 Alternate="0" />
107 <pin11
108 ID="USB_DM"
109 Type="PushPull"
110 Speed="Minimum"
111 Resistor="Floating"
112 Level="High"
113 Mode="Input"
114 Alternate="0" />
115 <pin12
116 ID="USB_DP"
117 Type="PushPull"
118 Speed="Minimum"
119 Resistor="Floating"
120 Level="High"
121 Mode="Input"
122 Alternate="0" />
123 <pin13
124 ID="SWDIO"
125 Type="PushPull"
126 Speed="Maximum"
127 Resistor="PullUp"
128 Level="High"
129 Mode="Alternate"
130 Alternate="0" />
131 <pin14
132 ID="SWCLK"
133 Type="PushPull"
134 Speed="Maximum"
135 Resistor="PullDown"
136 Level="High"
137 Mode="Alternate"
138 Alternate="0" />
139 <pin15
140 ID=""
141 Type="PushPull"
142 Speed="Maximum"
143 Resistor="PullUp"
144 Level="High"
145 Mode="Input"
146 Alternate="0" />
147 </GPIOA>
148 <GPIOB>
149 <pin0
150 ID=""
151 Type="PushPull"
152 Speed="Minimum"
153 Resistor="PullUp"
154 Level="High"
155 Mode="Input"
156 Alternate="0" />
157 <pin1
158 ID=""
159 Type="PushPull"
160 Speed="Minimum"
161 Resistor="PullUp"
162 Level="High"
163 Mode="Input"
164 Alternate="0" />
165 <pin2
166 ID=""
167 Type="PushPull"
168 Speed="Maximum"
169 Resistor="PullUp"
170 Level="High"
171 Mode="Input"
172 Alternate="0" />
173 <pin3
174 ID=""
175 Type="PushPull"
176 Speed="Maximum"
177 Resistor="PullUp"
178 Level="High"
179 Mode="Input"
180 Alternate="0" />
181 <pin4
182 ID=""
183 Type="PushPull"
184 Speed="Maximum"
185 Resistor="PullUp"
186 Level="High"
187 Mode="Input"
188 Alternate="0" />
189 <pin5
190 ID=""
191 Type="PushPull"
192 Speed="Minimum"
193 Resistor="PullUp"
194 Level="High"
195 Mode="Input"
196 Alternate="0" />
197 <pin6
198 ID=""
199 Type="PushPull"
200 Speed="Minimum"
201 Resistor="PullUp"
202 Level="High"
203 Mode="Input"
204 Alternate="0" />
205 <pin7
206 ID=""
207 Type="PushPull"
208 Speed="Minimum"
209 Resistor="PullUp"
210 Level="High"
211 Mode="Input"
212 Alternate="0" />
213 <pin8
214 ID=""
215 Type="PushPull"
216 Speed="Minimum"
217 Resistor="PullUp"
218 Level="High"
219 Mode="Input"
220 Alternate="0" />
221 <pin9
222 ID=""
223 Type="PushPull"
224 Speed="Minimum"
225 Resistor="PullUp"
226 Level="High"
227 Mode="Input"
228 Alternate="0" />
229 <pin10
230 ID=""
231 Type="PushPull"
232 Speed="Minimum"
233 Resistor="PullUp"
234 Level="High"
235 Mode="Input"
236 Alternate="0" />
237 <pin11
238 ID=""
239 Type="PushPull"
240 Speed="Minimum"
241 Resistor="PullUp"
242 Level="High"
243 Mode="Input"
244 Alternate="0" />
245 <pin12
246 ID=""
247 Type="PushPull"
248 Speed="Minimum"
249 Resistor="PullUp"
250 Level="High"
251 Mode="Input"
252 Alternate="0" />
253 <pin13
254 ID="SPI2_SCK"
255 Type="PushPull"
256 Speed="Minimum"
257 Resistor="Floating"
258 Level="High"
259 Mode="Alternate"
260 Alternate="0" />
261 <pin14
262 ID="SPI2_MISO"
263 Type="PushPull"
264 Speed="Minimum"
265 Resistor="Floating"
266 Level="High"
267 Mode="Alternate"
268 Alternate="0" />
269 <pin15
270 ID="SPI2_MOSI"
271 Type="PushPull"
272 Speed="Minimum"
273 Resistor="Floating"
274 Level="High"
275 Mode="Alternate"
276 Alternate="0" />
277 </GPIOB>
278 <GPIOC>
279 <pin0
280 ID="MEMS_CS"
281 Type="PushPull"
282 Speed="Maximum"
283 Resistor="Floating"
284 Level="High"
285 Mode="Output"
286 Alternate="0" />
287 <pin1
288 ID=""
289 Type="PushPull"
290 Speed="Minimum"
291 Resistor="PullUp"
292 Level="High"
293 Mode="Input"
294 Alternate="0" />
295 <pin2
296 ID=""
297 Type="PushPull"
298 Speed="Minimum"
299 Resistor="PullUp"
300 Level="High"
301 Mode="Input"
302 Alternate="0" />
303 <pin3
304 ID=""
305 Type="PushPull"
306 Speed="Minimum"
307 Resistor="PullUp"
308 Level="High"
309 Mode="Input"
310 Alternate="0" />
311 <pin4
312 ID=""
313 Type="PushPull"
314 Speed="Minimum"
315 Resistor="PullUp"
316 Level="High"
317 Mode="Input"
318 Alternate="0" />
319 <pin5
320 ID=""
321 Type="PushPull"
322 Speed="Minimum"
323 Resistor="PullUp"
324 Level="High"
325 Mode="Input"
326 Alternate="0" />
327 <pin6
328 ID="LED_RED"
329 Type="PushPull"
330 Speed="Maximum"
331 Resistor="Floating"
332 Level="Low"
333 Mode="Output"
334 Alternate="0" />
335 <pin7
336 ID="LED_BLUE"
337 Type="PushPull"
338 Speed="Maximum"
339 Resistor="Floating"
340 Level="Low"
341 Mode="Output"
342 Alternate="0" />
343 <pin8
344 ID="LED_ORANGE"
345 Type="PushPull"
346 Speed="Maximum"
347 Resistor="Floating"
348 Level="Low"
349 Mode="Output"
350 Alternate="0" ></pin8>
351 <pin9
352 ID="LED_GREEN"
353 Type="PushPull"
354 Speed="Maximum"
355 Resistor="Floating"
356 Level="Low"
357 Mode="Output"
358 Alternate="0" />
359 <pin10
360 ID=""
361 Type="PushPull"
362 Speed="Minimum"
363 Resistor="PullUp"
364 Level="High"
365 Mode="Input"
366 Alternate="0" />
367 <pin11
368 ID=""
369 Type="PushPull"
370 Speed="Minimum"
371 Resistor="PullUp"
372 Level="High"
373 Mode="Input"
374 Alternate="0" />
375 <pin12
376 ID=""
377 Type="PushPull"
378 Speed="Minimum"
379 Resistor="PullUp"
380 Level="High"
381 Mode="Input"
382 Alternate="0" />
383 <pin13
384 ID=""
385 Type="PushPull"
386 Speed="Minimum"
387 Resistor="PullUp"
388 Level="High"
389 Mode="Input"
390 Alternate="0" />
391 <pin14
392 ID="OSC32_IN"
393 Type="PushPull"
394 Speed="Maximum"
395 Resistor="Floating"
396 Level="High"
397 Mode="Input"
398 Alternate="0" />
399 <pin15
400 ID="OSC32_OUT"
401 Type="PushPull"
402 Speed="Maximum"
403 Resistor="Floating"
404 Level="High"
405 Mode="Input"
406 Alternate="0" />
407 </GPIOC>
408 <GPIOD>
409 <pin0
410 ID=""
411 Type="PushPull"
412 Speed="Minimum"
413 Resistor="PullUp"
414 Level="High"
415 Mode="Input"
416 Alternate="0" />
417 <pin1
418 ID=""
419 Type="PushPull"
420 Speed="Minimum"
421 Resistor="PullUp"
422 Level="High"
423 Mode="Input"
424 Alternate="0" />
425 <pin2
426 ID=""
427 Type="PushPull"
428 Speed="Minimum"
429 Resistor="PullUp"
430 Level="High"
431 Mode="Input"
432 Alternate="0" />
433 <pin3
434 ID=""
435 Type="PushPull"
436 Speed="Minimum"
437 Resistor="PullUp"
438 Level="High"
439 Mode="Input"
440 Alternate="0" />
441 <pin4
442 ID=""
443 Type="PushPull"
444 Speed="Minimum"
445 Resistor="PullUp"
446 Level="High"
447 Mode="Input"
448 Alternate="0" />
449 <pin5
450 ID=""
451 Type="PushPull"
452 Speed="Minimum"
453 Resistor="PullUp"
454 Level="High"
455 Mode="Input"
456 Alternate="0" />
457 <pin6
458 ID=""
459 Type="PushPull"
460 Speed="Minimum"
461 Resistor="PullUp"
462 Level="High"
463 Mode="Input"
464 Alternate="0" />
465 <pin7
466 ID=""
467 Type="PushPull"
468 Speed="Minimum"
469 Resistor="PullUp"
470 Level="High"
471 Mode="Input"
472 Alternate="0" />
473 <pin8
474 ID=""
475 Type="PushPull"
476 Speed="Minimum"
477 Resistor="PullUp"
478 Level="High"
479 Mode="Input"
480 Alternate="0" />
481 <pin9
482 ID=""
483 Type="PushPull"
484 Speed="Minimum"
485 Resistor="PullUp"
486 Level="High"
487 Mode="Input"
488 Alternate="0" />
489 <pin10
490 ID=""
491 Type="PushPull"
492 Speed="Minimum"
493 Resistor="PullUp"
494 Level="High"
495 Mode="Input"
496 Alternate="0" />
497 <pin11
498 ID=""
499 Type="PushPull"
500 Speed="Minimum"
501 Resistor="PullUp"
502 Level="High"
503 Mode="Input"
504 Alternate="0" />
505 <pin12
506 ID=""
507 Type="PushPull"
508 Speed="Minimum"
509 Resistor="PullUp"
510 Level="High"
511 Mode="Input"
512 Alternate="0" />
513 <pin13
514 ID=""
515 Type="PushPull"
516 Speed="Minimum"
517 Resistor="PullUp"
518 Level="High"
519 Mode="Input"
520 Alternate="0" />
521 <pin14
522 ID=""
523 Type="PushPull"
524 Speed="Minimum"
525 Resistor="PullUp"
526 Level="High"
527 Mode="Input"
528 Alternate="0" />
529 <pin15
530 ID=""
531 Type="PushPull"
532 Speed="Minimum"
533 Resistor="PullUp"
534 Level="High"
535 Mode="Input"
536 Alternate="0" />
537 </GPIOD>
538 <GPIOE>
539 <pin0 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
540 Level="High" Mode="Input" Alternate="0" />
541 <pin1 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
542 Level="High" Mode="Input" Alternate="0" />
543 <pin2 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
544 Level="High" Mode="Input" Alternate="0" />
545 <pin3 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
546 Level="High" Mode="Input" Alternate="0" />
547 <pin4 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
548 Level="High" Mode="Input" Alternate="0" />
549 <pin5 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
550 Level="High" Mode="Input" Alternate="0" />
551 <pin6 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
552 Level="High" Mode="Input" Alternate="0" />
553 <pin7 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
554 Level="High" Mode="Input" Alternate="0" />
555 <pin8 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
556 Level="High" Mode="Input" Alternate="0" />
557 <pin9 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
558 Level="High" Mode="Input" Alternate="0" />
559 <pin10 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
560 Level="High" Mode="Input" Alternate="0" />
561 <pin11 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
562 Level="High" Mode="Input" Alternate="0" />
563 <pin12 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
564 Level="High" Mode="Input" Alternate="0" />
565 <pin13 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
566 Level="High" Mode="Input" Alternate="0" />
567 <pin14 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
568 Level="High" Mode="Input" Alternate="0" />
569 <pin15 ID="" Type="PushPull" Speed="Minimum" Resistor="PullUp"
570 Level="High" Mode="Input" Alternate="0" />
571 </GPIOE>
572 <GPIOF>
573 <pin0
574 ID="OSC_IN"
575 Type="PushPull"
576 Speed="Minimum"
577 Resistor="Floating"
578 Level="High"
579 Mode="Input"
580 Alternate="0" />
581 <pin1
582 ID="OSC_OUT"
583 Type="PushPull"
584 Speed="Minimum"
585 Resistor="Floating"
586 Level="High"
587 Mode="Input"
588 Alternate="0" />
589 <pin2
590 ID=""
591 Type="PushPull"
592 Speed="Minimum"
593 Resistor="PullUp"
594 Level="High"
595 Mode="Input"
596 Alternate="0" />
597 <pin3
598 ID=""
599 Type="PushPull"
600 Speed="Minimum"
601 Resistor="PullUp"
602 Level="High"
603 Mode="Input"
604 Alternate="0" />
605 <pin4
606 ID=""
607 Type="PushPull"
608 Speed="Minimum"
609 Resistor="PullUp"
610 Level="High"
611 Mode="Input"
612 Alternate="0" />
613 <pin5
614 ID=""
615 Type="PushPull"
616 Speed="Minimum"
617 Resistor="PullUp"
618 Level="High"
619 Mode="Input"
620 Alternate="0" />
621 <pin6
622 ID=""
623 Type="PushPull"
624 Speed="Minimum"
625 Resistor="PullUp"
626 Level="High"
627 Mode="Input"
628 Alternate="0" />
629 <pin7
630 ID=""
631 Type="PushPull"
632 Speed="Minimum"
633 Resistor="PullUp"
634 Level="High"
635 Mode="Input"
636 Alternate="0" />
637 <pin8
638 ID=""
639 Type="PushPull"
640 Speed="Minimum"
641 Resistor="PullUp"
642 Level="High"
643 Mode="Input"
644 Alternate="0" />
645 <pin9
646 ID=""
647 Type="PushPull"
648 Speed="Minimum"
649 Resistor="PullUp"
650 Level="High"
651 Mode="Input"
652 Alternate="0" />
653 <pin10
654 ID=""
655 Type="PushPull"
656 Speed="Minimum"
657 Resistor="PullUp"
658 Level="High"
659 Mode="Input"
660 Alternate="0" />
661 <pin11
662 ID=""
663 Type="PushPull"
664 Speed="Minimum"
665 Resistor="PullUp"
666 Level="High"
667 Mode="Input"
668 Alternate="0" />
669 <pin12
670 ID=""
671 Type="PushPull"
672 Speed="Minimum"
673 Resistor="PullUp"
674 Level="High"
675 Mode="Input"
676 Alternate="0" />
677 <pin13
678 ID=""
679 Type="PushPull"
680 Speed="Minimum"
681 Resistor="PullUp"
682 Level="High"
683 Mode="Input"
684 Alternate="0" />
685 <pin14
686 ID=""
687 Type="PushPull"
688 Speed="Minimum"
689 Resistor="PullUp"
690 Level="High"
691 Mode="Input"
692 Alternate="0" />
693 <pin15
694 ID=""
695 Type="PushPull"
696 Speed="Minimum"
697 Resistor="PullUp"
698 Level="High"
699 Mode="Input"
700 Alternate="0" />
701 </GPIOF>
702 </ports>
703</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/>.
17 17
18#pragma once 18#pragma once
19 19
20/* Ensure we jump to bootloader if the RESET keycode was pressed */
21#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
22
23/* LSE clock */
24#define STM32_LSECLK 32768
25
20/* USB Device descriptor parameter */ 26/* USB Device descriptor parameter */
21#define VENDOR_ID 0xCA04 27#define VENDOR_ID 0xCA04
22#define PRODUCT_ID 0x57F5 28#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 @@
1# MCU name 1# MCU name
2MCU = STM32F072 2MCU = STM32F072
3BOARD = ST_STM32F072B_DISCOVERY 3BOARD = GENERIC_STM32_F072XB
4 4
5# Build Options 5# Build Options
6# comment out to disable the options. 6# 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 = {
54 .level = BACKLIGHT_LEVELS 54 .level = BACKLIGHT_LEVELS
55}; 55};
56 56
57void board_init(void) {
58 SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
59 SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
60}
61
57#ifdef VIA_ENABLE 62#ifdef VIA_ENABLE
58 63
59void backlight_get_value( uint8_t *data ) 64void 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 @@
2MCU = STM32F303 2MCU = STM32F303
3 3
4# LED Configuration 4# LED Configuration
5LED_MATRIX_ENABLE = IS31FL3731 5LED_MATRIX_ENABLE = yes
6LED_MATRIX_DRIVER = IS31FL3731
6 7
7# Build Options 8# Build Options
8# comment out to disable the options. 9# 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 @@
1# Speedo
2
3![Speedo](http://assets.cozykeys.xyz/images/keyboards/speedo/speedo-v3.0-angle-led-front_1600x1600.png)
4
5- Keyboard Maintainer: [Paul Ewing](https://github.com/pcewing)
6- Hardware Supported: Elite-C
7- Hardware Availability: [Speedo Repository](https://github.com/cozykeys/speedo)
8
9Make example for this keyboard (after setting up your build environment):
10
11 make speedo:default
12
13Flashing example for this keyboard:
14
15 make speedo:default:flash
16
17See the
18[build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and
19the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for
20more information. Brand new to QMK? Start with our
21[Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
22
23## Flashing the Firmware
24
25See the QMK docs for handwiring a keyboard; there is a section with
26instructions 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 @@
1/*
2Copyright 2020 Paul Ewing
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#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 @@
1/*
2Copyright 2020 Paul Ewing
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#pragma once
18
19#ifdef KEYBOARD_cozykeys_speedo_v2
20 #include "speedo_v2.h"
21#elif KEYBOARD_cozykeys_speedo_v3
22 #include "speedo_v3.h"
23#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 @@
1/*
2Copyright 2020 Paul Ewing
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#pragma once
18
19#include "config_common.h"
20
21// USB Device descriptor parameter
22#define VENDOR_ID 0xFEED
23#define PRODUCT_ID 0x1192
24#define DEVICE_VER 0x0002
25#define MANUFACTURER CozyKeys
26#define PRODUCT Speedo
27
28// Key matrix size
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 14
31
32// Keyboard Matrix Assignments
33#define MATRIX_ROW_PINS { D1, D2, D3, C6, C7 }
34#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, D0, B7, B3, B2, B1, B0 }
35#define UNUSED_PINS { D5, D4, D6, D7, B4 }
36#define DIODE_DIRECTION COL2ROW
37
38// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed
39#define DEBOUNCE 5
40
41// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
42#define LOCKING_SUPPORT_ENABLE
43// Locking resynchronize hack
44#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 @@
1{
2 "keyboard_name": "Speedo",
3 "url": "https://github.com/cozykeys/speedo",
4 "maintainer": "pcewing",
5 "width": 14,
6 "height": 5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 { "label": "k01", "x": 0.693, "y": 0.0, "r": 10 },
11 { "label": "k02", "x": 1.675, "y": 0.173, "r": 10 },
12 { "label": "k03", "x": 2.685, "y": 0.191, "r": 10 },
13 { "label": "k04", "x": 3.712, "y": 0.106, "r": 10 },
14 { "label": "k05", "x": 4.64, "y": 0.589, "r": 10 },
15 { "label": "k06", "x": 5.577, "y": 1.021, "r": 10 },
16 { "label": "k07", "x": 7.571, "y": 1.021, "r": -10 },
17 { "label": "k08", "x": 8.507, "y": 0.589, "r": -10 },
18 { "label": "k09", "x": 9.435, "y": 0.106, "r": -10 },
19 { "label": "k10", "x": 10.463, "y": 0.191, "r": -10 },
20 { "label": "k11", "x": 11.472, "y": 0.173, "r": -10 },
21 { "label": "k12", "x": 12.454, "y": 0.0, "r": -10 },
22 { "label": "k13", "x": 0.52, "y": 0.982, "r": 10 },
23 { "label": "k14", "x": 1.502, "y": 1.155, "r": 10 },
24 { "label": "k15", "x": 2.511, "y": 1.174, "r": 10 },
25 { "label": "k16", "x": 3.539, "y": 1.088, "r": 10 },
26 { "label": "k17", "x": 4.467, "y": 1.572, "r": 10 },
27 { "label": "k18", "x": 5.403, "y": 2.003, "r": 10 },
28 { "label": "k19", "x": 6.574, "y": 2.559, "r": 0 },
29 { "label": "k20", "x": 7.744, "y": 2.003, "r": -10 },
30 { "label": "k21", "x": 8.681, "y": 1.572, "r": -10 },
31 { "label": "k22", "x": 9.608, "y": 1.088, "r": -10 },
32 { "label": "k23", "x": 10.636, "y": 1.174, "r": -10 },
33 { "label": "k24", "x": 11.645, "y": 1.155, "r": -10 },
34 { "label": "k25", "x": 12.628, "y": 0.982, "r": -10 },
35 { "label": "k26", "x": 0.346, "y": 1.964, "r": 10 },
36 { "label": "k27", "x": 1.329, "y": 2.138, "r": 10 },
37 { "label": "k28", "x": 2.338, "y": 2.156, "r": 10 },
38 { "label": "k29", "x": 3.366, "y": 2.07, "r": 10 },
39 { "label": "k30", "x": 4.294, "y": 2.554, "r": 10 },
40 { "label": "k31", "x": 5.23, "y": 2.986, "r": 10 },
41 { "label": "k32", "x": 6.574, "y": 3.557, "r": 0 },
42 { "label": "k33", "x": 7.917, "y": 2.986, "r": -10 },
43 { "label": "k34", "x": 8.854, "y": 2.554, "r": -10 },
44 { "label": "k35", "x": 9.781, "y": 2.07, "r": -10 },
45 { "label": "k36", "x": 10.809, "y": 2.156, "r": -10 },
46 { "label": "k37", "x": 11.819, "y": 2.138, "r": -10 },
47 { "label": "k38", "x": 12.801, "y": 1.964, "r": -10 },
48 { "label": "k39", "x": 0.173, "y": 2.947, "r": 10 },
49 { "label": "k40", "x": 1.155, "y": 3.12, "r": 10 },
50 { "label": "k41", "x": 2.165, "y": 3.138, "r": 10 },
51 { "label": "k42", "x": 3.193, "y": 3.053, "r": 10 },
52 { "label": "k43", "x": 4.12, "y": 3.536, "r": 10 },
53 { "label": "k44", "x": 5.057, "y": 3.968, "r": 10 },
54 { "label": "k45", "x": 6.075, "y": 4.554, "r": 0 },
55 { "label": "k46", "x": 7.072, "y": 4.554, "r": 0 },
56 { "label": "k47", "x": 8.09, "y": 3.968, "r": -10 },
57 { "label": "k48", "x": 9.027, "y": 3.536, "r": -10 },
58 { "label": "k49", "x": 9.954, "y": 3.053, "r": -10 },
59 { "label": "k50", "x": 10.982, "y": 3.138, "r": -10 },
60 { "label": "k51", "x": 11.992, "y": 3.12, "r": -10 },
61 { "label": "k52", "x": 12.974, "y": 2.947, "r": -10 },
62 { "label": "k53", "x": 0.0, "y": 3.929, "r": 10 },
63 { "label": "k54", "x": 0.982, "y": 4.102, "r": 10 },
64 { "label": "k55", "x": 1.992, "y": 4.12, "r": 10 },
65 { "label": "k56", "x": 3.02, "y": 4.035, "r": 10 },
66 { "label": "k57", "x": 3.947, "y": 4.518, "r": 10 },
67 { "label": "k58", "x": 4.994, "y": 5.235, "r": 40 },
68 { "label": "k59", "x": 5.753, "y": 6.064, "r": 55 },
69 { "label": "k60", "x": 7.395, "y": 6.064, "r": -55 },
70 { "label": "k61", "x": 8.154, "y": 5.235, "r": 40 },
71 { "label": "k62", "x": 9.2, "y": 4.518, "r": -10 },
72 { "label": "k63", "x": 10.128, "y": 4.035, "r": -10 },
73 { "label": "k64", "x": 11.155, "y": 4.12, "r": -10 },
74 { "label": "k65", "x": 12.165, "y": 4.102, "r": -10 },
75 { "label": "k66", "x": 13.147, "y": 3.929, "r": -10 }
76 ]
77 }
78 }
79}
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 @@
1/* Copyright 2017 Paul Ewing 1/*
2 * 2Copyright 2020 Paul Ewing
3 * This program is free software: you can redistribute it and/or modify 3
4 * it under the terms of the GNU General Public License as published by 4This program is free software: you can redistribute it and/or modify
5 * the Free Software Foundation, either version 2 of the License, or 5it under the terms of the GNU General Public License as published by
6 * (at your option) any later version. 6the Free Software Foundation, either version 2 of the License, or
7 * 7(at your option) any later version.
8 * This program is distributed in the hope that it will be useful, 8
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9This program is distributed in the hope that it will be useful,
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * GNU General Public License for more details. 11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * 12GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License 13
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14You should have received a copy of the GNU General Public License
15 */ 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
16#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
17 18
18#define FN MO(_FN) 19enum {
19#define TORST TO(_RESET) 20 LAYER_DEFAULT,
20#define TODFT TO(_DEFAULT) 21 LAYER_FN,
21#define TODO KC_NO 22 LAYER_RESET,
22 23
23enum speedo_layers { 24 __LAYER_COUNT,
24 _DEFAULT,
25 _FN,
26 _RESET
27}; 25};
28 26
29const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 27#define FN MO(LAYER_FN)
28#define TORST TO(LAYER_RESET)
29#define TODFT TO(LAYER_DEFAULT)
30#define TODO KC_NO
30 31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31 33
32[_DEFAULT] = LAYOUT( 34[LAYER_DEFAULT] = LAYOUT(
33 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \ 35 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \
34 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, \ 36 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, \
35 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 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] = {
37 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 \ 39 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 \
38), 40),
39 41
40[_FN] = LAYOUT( 42[LAYER_FN] = LAYOUT(
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TORST, \ 43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TORST, \
42 _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, _______, KC_PGUP, KC_HOME, KC_END, _______, _______, _______, \ 44 _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, _______, KC_PGUP, KC_HOME, KC_END, _______, _______, _______, \
43 KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PAUS, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, \ 45 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] = {
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
46), 48),
47 49
48[_RESET] = LAYOUT( 50[LAYER_RESET] = LAYOUT(
49 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TODFT, \ 51 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TODFT, \
50 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, \ 52 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, \
51 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, \ 53 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] = {
54) 56)
55 57
56}; 58};
57
58void matrix_init_user(void) {
59
60}
61
62void matrix_scan_user(void) {
63
64}
65
66bool process_record_user(uint16_t keycode, keyrecord_t *record) {
67 return true;
68}
69
70void led_set_user(uint8_t usb_led) {
71
72}
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 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = halfkay
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_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 @@
1/*
2Copyright 2020 Paul Ewing
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#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 @@
1/*
2Copyright 2020 Paul Ewing
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#pragma once
18
19#include "quantum.h"
20
21#define ___ KC_NO
22
23#define LAYOUT( \
24 k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, \
25 k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, \
26 k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, \
27 k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, \
28 k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 \
29) \
30{ \
31 { k01, k01, k03, k04, k05, k06, ___, ___, k07, k08, k09, k10, k11, k12 }, \
32 { k13, k15, k15, k16, k17, k18, k19, ___, k20, k21, k22, k23, k24, k25 }, \
33 { k26, k28, k28, k29, k30, k31, ___, k32, k33, k34, k35, k36, k37, k38 }, \
34 { k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52 }, \
35 { k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 } \
36}
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 @@
1/*
2Copyright 2020 Paul Ewing
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#pragma once
18
19#include "config_common.h"
20
21// USB Device descriptor parameter
22#define VENDOR_ID 0xFEED
23#define PRODUCT_ID 0x1192
24#define DEVICE_VER 0x0003
25#define MANUFACTURER CozyKeys
26#define PRODUCT Speedo
27
28// Key matrix size
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 14
31
32// Keyboard Matrix Assignments
33#define MATRIX_ROW_PINS { F0, F1, C7, D5, B7 }
34#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B6, B2, E6, D7, C6, D4, D0, D1 }
35#define UNUSED_PINS { D2, D3, B0, B4 }
36#define DIODE_DIRECTION COL2ROW
37
38#ifdef RGBLIGHT_ENABLE
39#define RGB_DI_PIN B5
40#define RGBLED_NUM 12
41#define RGBLIGHT_HUE_STEP 8
42#define RGBLIGHT_SAT_STEP 8
43#define RGBLIGHT_VAL_STEP 8
44#define RGBLIGHT_LIMIT_VAL 255
45#define RGBLIGHT_SLEEP
46#define RGBLIGHT_ANIMATIONS
47#define RGBLIGHT_BREATHE_TABLE_SIZE 256
48#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85
49#define RGBLIGHT_EFFECT_BREATHE_MAX 255
50#endif
51
52// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed
53#define DEBOUNCE 5
54
55// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
56#define LOCKING_SUPPORT_ENABLE
57// Locking resynchronize hack
58#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 @@
1{
2 "keyboard_name": "Speedo",
3 "url": "https://github.com/cozykeys/speedo",
4 "maintainer": "pcewing",
5 "width": 14,
6 "height": 5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 { "label": "k01", "x": 0.695, "y": 0, "r": 10 },
11 { "label": "k02", "x": 1.679, "y": 0.174, "r": 10 },
12 { "label": "k03", "x": 2.692, "y": 0.192, "r": 10 },
13 { "label": "k04", "x": 3.722, "y": 0.107, "r": 10 },
14 { "label": "k05", "x": 4.652, "y": 0.591, "r": 10 },
15 { "label": "k06", "x": 5.591, "y": 1.023, "r": 10 },
16 { "label": "k07", "x": 9.457, "y": 1.023, "r": -10 },
17 { "label": "k08", "x": 10.396, "y": 0.591, "r": -10 },
18 { "label": "k09", "x": 11.326, "y": 0.107, "r": -10 },
19 { "label": "k10", "x": 12.356, "y": 0.192, "r": -10 },
20 { "label": "k11", "x": 13.369, "y": 0.174, "r": -10 },
21 { "label": "k12", "x": 14.353, "y": 0, "r": -10 },
22 { "label": "k13", "x": 0.521, "y": 0.985, "r": 10 },
23 { "label": "k14", "x": 1.506, "y": 1.158, "r": 10 },
24 { "label": "k15", "x": 2.518, "y": 1.177, "r": 10 },
25 { "label": "k16", "x": 3.548, "y": 1.092, "r": 10 },
26 { "label": "k17", "x": 4.478, "y": 1.576, "r": 10 },
27 { "label": "k18", "x": 5.418, "y": 2.008, "r": 10 },
28 { "label": "k19", "x": 7.524, "y": 3.305, "r": 0 },
29 { "label": "k20", "x": 9.63, "y": 2.008, "r": -10 },
30 { "label": "k21", "x": 10.57, "y": 1.576, "r": -10 },
31 { "label": "k22", "x": 11.5, "y": 1.092, "r": -10 },
32 { "label": "k23", "x": 12.53, "y": 1.177, "r": -10 },
33 { "label": "k24", "x": 13.542, "y": 1.158, "r": -10 },
34 { "label": "k25", "x": 14.527, "y": 0.985, "r": -10 },
35 { "label": "k26", "x": 0.347, "y": 1.97, "r": 10 },
36 { "label": "k27", "x": 1.332, "y": 2.143, "r": 10 },
37 { "label": "k28", "x": 2.344, "y": 2.162, "r": 10 },
38 { "label": "k29", "x": 3.375, "y": 2.077, "r": 10 },
39 { "label": "k30", "x": 4.305, "y": 2.561, "r": 10 },
40 { "label": "k31", "x": 5.244, "y": 2.993, "r": 10 },
41 { "label": "k32", "x": 6.524, "y": 3.805, "r": 0 },
42 { "label": "k33", "x": 8.524, "y": 3.805, "r": 0 },
43 { "label": "k34", "x": 9.804, "y": 2.993, "r": -10 },
44 { "label": "k35", "x": 10.743, "y": 2.561, "r": -10 },
45 { "label": "k36", "x": 11.673, "y": 2.077, "r": -10 },
46 { "label": "k37", "x": 12.704, "y": 2.162, "r": -10 },
47 { "label": "k38", "x": 13.716, "y": 2.143, "r": -10 },
48 { "label": "k39", "x": 14.701, "y": 1.97, "r": -10 },
49 { "label": "k40", "x": 0.174, "y": 2.954, "r": 10 },
50 { "label": "k41", "x": 1.158, "y": 3.128, "r": 10 },
51 { "label": "k42", "x": 2.171, "y": 3.147, "r": 10 },
52 { "label": "k43", "x": 3.201, "y": 3.062, "r": 10 },
53 { "label": "k44", "x": 4.131, "y": 3.546, "r": 10 },
54 { "label": "k45", "x": 5.07, "y": 3.978, "r": 10 },
55 { "label": "k46", "x": 7.524, "y": 4.305, "r": 0 },
56 { "label": "k47", "x": 9.978, "y": 3.978, "r": -10 },
57 { "label": "k48", "x": 10.917, "y": 3.546, "r": -10 },
58 { "label": "k49", "x": 11.847, "y": 3.062, "r": -10 },
59 { "label": "k50", "x": 12.877, "y": 3.147, "r": -10 },
60 { "label": "k51", "x": 13.89, "y": 3.128, "r": -10 },
61 { "label": "k52", "x": 14.874, "y": 2.954, "r": -10 },
62 { "label": "k53", "x": 0, "y": 3.939, "r": 10 },
63 { "label": "k54", "x": 0.985, "y": 4.113, "r": 10 },
64 { "label": "k55", "x": 1.997, "y": 4.131, "r": 10 },
65 { "label": "k56", "x": 3.027, "y": 4.047, "r": 10 },
66 { "label": "k57", "x": 3.957, "y": 4.53, "r": 10 },
67 { "label": "k58", "x": 4.897, "y": 4.963, "r": 10 },
68 { "label": "k59", "x": 5.881, "y": 5.136, "r": 10 },
69 { "label": "k60", "x": 9.166, "y": 5.136, "r": -10 },
70 { "label": "k61", "x": 10.151, "y": 4.963, "r": -10 },
71 { "label": "k62", "x": 11.09, "y": 4.53, "r": -10 },
72 { "label": "k63", "x": 12.021, "y": 4.047, "r": -10 },
73 { "label": "k64", "x": 13.051, "y": 4.131, "r": -10 },
74 { "label": "k65", "x": 14.063, "y": 4.113, "r": -10 },
75 { "label": "k66", "x": 15.048, "y": 3.939, "r": -10 }
76 ]
77 }
78 }
79}
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 @@
1/*
2Copyright 2020 Paul Ewing
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#include QMK_KEYBOARD_H
18
19enum {
20 LAYER_DEFAULT,
21 LAYER_FN,
22
23 __LAYER_COUNT,
24};
25
26#define FN MO(LAYER_FN)
27
28#define RGB_N RGB_MOD // Rotate to next RGB mode
29#define RGB_P RGB_RMOD // Rotate to next RGB mode
30
31const uint16_t PROGMEM keymaps[__LAYER_COUNT][MATRIX_ROWS][MATRIX_COLS] = {
32
33[LAYER_DEFAULT] = LAYOUT(
34 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
35 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,
36 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,
37 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,
38 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
39),
40
41[LAYER_FN] = LAYOUT(
42 RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, RESET,
43 _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, RGB_TOG, _______, KC_GRV, KC_LBRC, KC_RBRC, _______, _______,
44 KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_INS, RGB_N, RGB_P, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
45 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_PAUS, RGB_M_P, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
47),
48
49};
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 @@
1# CozyKeys Speedo v3 Default Keymap
2
3## Default Layer
4
5![Default Layer](https://raw.githubusercontent.com/cozykeys/speedo/master/layout/speedo_layer_default.svg)
6
7## Function Layer
8
9![Function Layer](https://raw.githubusercontent.com/cozykeys/speedo/master/layout/speedo_layer_fn.svg)
10
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 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_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 @@
1/*
2Copyright 2020 Paul Ewing
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#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 @@
1/*
2Copyright 2020 Paul Ewing
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#pragma once
18
19#include "quantum.h"
20
21#define ___ KC_NO
22
23#define LAYOUT( \
24 k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, \
25 k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, \
26 k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, \
27 k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, \
28 k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 \
29) \
30{ \
31 { k01, k02, k03, k04, k05, k06, ___, ___, k07, k08, k09, k10, k11, k12 }, \
32 { k13, k14, k15, k16, k17, k18, ___, ___, k20, k21, k22, k23, k24, k25 }, \
33 { k26, k27, k28, k29, k30, k31, k32, k19, k34, k35, k36, k37, k38, k39 }, \
34 { k40, k41, k42, k43, k44, k45, k46, k33, k47, k48, k49, k50, k51, k52 }, \
35 { k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66 } \
36}
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
8COMMAND_ENABLE = no 8COMMAND_ENABLE = no
9 9
10RGBLIGHT_ENABLE = no 10RGBLIGHT_ENABLE = no
11RGB_MATRIX_ENABLE = WS2812 11RGB_MATRIX_ENABLE = yes
12 12
13OLED_DRIVER_ENABLE = yes 13OLED_DRIVER_ENABLE = yes
14 14
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
9EXTRAKEY_ENABLE = yes 9EXTRAKEY_ENABLE = yes
10 10
11# enable LEDs 11# enable LEDs
12RGB_MATRIX_ENABLE = WS2812 12RGB_MATRIX_ENABLE = yes
13 13
14# using elite-c controllers 14# using elite-c controllers
15BOOTLOADER = qmk-dfu 15BOOTLOADER = 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
4AUDIO_ENABLE = no # Audio output on port C6 4AUDIO_ENABLE = no # Audio output on port C6
5MOUSEKEY_ENABLE = no 5MOUSEKEY_ENABLE = no
6RGBLIGHT_ENABLE = no 6RGBLIGHT_ENABLE = no
7RGB_MATRIX_ENABLE = WS2812 7RGB_MATRIX_ENABLE = yes
8OLED_DRIVER_ENABLE = yes 8OLED_DRIVER_ENABLE = yes
9 9
10# If you want to change the display of OLED, you need to change here 10# 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 @@
1RGB_MATRIX_ENABLE = WS2812 1RGB_MATRIX_ENABLE = yes
2MOUSEKEY_ENABLE = no 2MOUSEKEY_ENABLE = no
3OLED_DRIVER_ENABLE = yes 3OLED_DRIVER_ENABLE = yes
4LTO_ENABLE = yes 4LTO_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
21BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 21BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
22SWAP_HANDS_ENABLE = no # Enable one-hand typing 22SWAP_HANDS_ENABLE = no # Enable one-hand typing
23 23
24RGB_MATRIX_ENABLE = WS2812 24RGB_MATRIX_ENABLE = yes
25 25
26#Do not enable SLEEP_LED_ENABLE.it uses the same timer as BACKLIGHT_ENABLE 26#Do not enable SLEEP_LED_ENABLE.it uses the same timer as BACKLIGHT_ENABLE
27SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 27SLEEP_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 @@
1RGBLIGHT_ENABLE = no 1RGBLIGHT_ENABLE = no
2RGB_MATRIX_ENABLE = WS2812 2RGB_MATRIX_ENABLE = yes
3MOUSEKEY_ENABLE = no 3MOUSEKEY_ENABLE = no
4NKRO_ENABLE = yes 4NKRO_ENABLE = yes
5OLED_DRIVER_ENABLE = yes 5OLED_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:
27 27
28```make 28```make
29RGBLIGHT_ENABLE = no 29RGBLIGHT_ENABLE = no
30RGB_MATRIX_ENABLE = WS2812 30RGB_MATRIX_ENABLE = yes
31``` 31```
32 32
33And in your `config.h` file, add the following: 33And 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
27UNICODE_ENABLE = no # Unicode 27UNICODE_ENABLE = no # Unicode
28BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 28BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
29RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. 29RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
30RGB_MATRIX_ENABLE = no
31RGB_MATRIX_DRIVER = WS2812
30 32
31# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 33# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
32SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 34SLEEP_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
19AUDIO_ENABLE = no # Audio output 19AUDIO_ENABLE = no # Audio output
20 20
21WS2812_DRIVER = bitbang 21WS2812_DRIVER = bitbang
22RGB_MATRIX_ENABLE = WS2812 22RGB_MATRIX_ENABLE = yes
23RGB_MATRIX_DRIVER = WS2812
23 24
24OLED_DRIVER_ENABLE = yes 25OLED_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33RGB_MATRIX_ENABLE = WS2812 33RGB_MATRIX_ENABLE = yes
34RGB_MATRIX_DRIVER = WS2812
34 35
35LAYOUTS = 65_ansi_blocker 36LAYOUTS = 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
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32RGBLIGHT_ENABLE = no # Use RGB underglow light 32RGBLIGHT_ENABLE = no # Use RGB underglow light
33RGB_MATRIX_ENABLE = yes # Use RGB matrix 33RGB_MATRIX_ENABLE = yes
34RGB_MATRIX_DRIVER = IS31FL3731 # Use RGB matrix
34 35
35LAYOUTS = 60_ansi 60_hhkb 60_iso 60_ansi_split_bs_rshift 36LAYOUTS = 60_ansi 60_hhkb 60_iso 60_ansi_split_bs_rshift
36 37
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
19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
20AUDIO_ENABLE = no # Audio output on port C6 20AUDIO_ENABLE = no # Audio output on port C6
21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
22RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix 22RGB_MATRIX_ENABLE = yes # Use RGB matrix
23RGB_MATRIX_DRIVER = IS31FL3733
23NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 24NO_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix 32RGB_MATRIX_ENABLE = yes # Use RGB matrix
33RGB_MATRIX_DRIVER = IS31FL3733
33NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 34NO_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
19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
20AUDIO_ENABLE = no # Audio output on port C6 20AUDIO_ENABLE = no # Audio output on port C6
21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
22RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix 22RGB_MATRIX_ENABLE = yes # Use RGB matrix
23RGB_MATRIX_DRIVER = IS31FL3733
23NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 24NO_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix 32RGB_MATRIX_ENABLE = yes # Use RGB matrix
33RGB_MATRIX_DRIVER = IS31FL3733
33NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 34NO_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
19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
20AUDIO_ENABLE = no # Audio output on port C6 20AUDIO_ENABLE = no # Audio output on port C6
21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
22RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix 22RGB_MATRIX_ENABLE = yes # Use RGB matrix
23RGB_MATRIX_DRIVER = IS31FL3733
23NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 24NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
24 25
25LAYOUTS = 60_tsangan_hhkb 26LAYOUTS = 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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix 32RGB_MATRIX_ENABLE = yes # Use RGB matrix
33RGB_MATRIX_DRIVER = IS31FL3733
33NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 34NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
34 35
35LAYOUTS = 60_tsangan_hhkb 36LAYOUTS = 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
19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
20AUDIO_ENABLE = no # Audio output on port C6 20AUDIO_ENABLE = no # Audio output on port C6
21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
22RGB_MATRIX_ENABLE = IS31FL3731 # Use RGB matrix 22RGB_MATRIX_ENABLE = yes # Use RGB matrix
23RGB_MATRIX_DRIVER = IS31FL3731
23 24
24LAYOUTS = 65_ansi 25LAYOUTS = 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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32RGB_MATRIX_ENABLE = IS31FL3731 # Use RGB matrix 32RGB_MATRIX_ENABLE = yes # Use RGB matrix
33RGB_MATRIX_DRIVER = IS31FL3731
33 34
34LAYOUTS = 65_ansi 35LAYOUTS = 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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
31SLEEP_LED_ENABLE = no 31SLEEP_LED_ENABLE = no
32API_SYSEX_ENABLE = no 32API_SYSEX_ENABLE = no
33 33
34RGB_MATRIX_ENABLE = no # enable later 34RGB_MATRIX_ENABLE = no # enable later
35RGB_MATRIX_DRIVER = IS31FL3731
35DEBOUNCE_TYPE = eager_pr 36DEBOUNCE_TYPE = eager_pr
36 37
37# project specific files 38# 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 @@
3![Atom47](https://i.imgur.com/Wwflqvt.png) 3![Atom47](https://i.imgur.com/Wwflqvt.png)
4 4
5## Support 5## Support
6Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 6Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
7Hardware Supported: Atom47 rev2/rev3 7Hardware Supported: Atom47 rev2/rev3
8Hardware Availability: [GeekHack.com Group Buy](https://geekhack.org/index.php?topic=93447.msg2545221) 8Hardware Availability: [GeekHack.com Group Buy](https://geekhack.org/index.php?topic=93447.msg2545221)
9 9
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 @@
1/* 1/*
2Copyright 2012 Maarten Dekkers <atomkeeb@gmail.com 2Copyright 2012 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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 @@
1{ 1{
2 "keyboard_name": "Atom47", 2 "keyboard_name": "Atom47",
3 "url": "https://atomkb.eu/atom47", 3 "url": "",
4 "maintainer": "Maarten Dekkers", 4 "maintainer": "evyd13",
5 "width": 13, 5 "width": 13,
6 "height": 4, 6 "height": 4,
7 "layouts": { 7 "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 @@
1/* 1/*
2Copyright 2012 Maarten Dekkers <atomkeeb@gmail.com 2Copyright 2012 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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 @@
1{ 1{
2 "keyboard_name": "Atom47", 2 "keyboard_name": "Atom47",
3 "url": "https://atomkb.eu/atom47", 3 "url": "",
4 "maintainer": "Maarten Dekkers", 4 "maintainer": "evyd13",
5 "width": 13, 5 "width": 13,
6 "height": 4, 6 "height": 4,
7 "layouts": { 7 "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
25UNICODE_ENABLE = no # Unicode 25UNICODE_ENABLE = no # Unicode
26BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 26BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
27 27
28DEFAULT_FOLDER = maartenwut/atom47/rev3 28DEFAULT_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 @@
1/* Copyright 2019 Evy Dekkers
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0x0140
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Evyd13
26#define PRODUCT Eon40
27#define DESCRIPTION A 40% ortholinear PCB
28
29/* key matrix size */
30#define MATRIX_ROWS 4
31#define MATRIX_COLS 12
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42*/
43#define MATRIX_ROW_PINS {B7,D5,F5,F6}
44#define MATRIX_COL_PINS {F0,F1,F4,D3,D4,D6,D7,B4,B5,B6,C6,C7}
45#define UNUSED_PINS {B1,B2,B3}
46
47#define ENCODERS_PAD_A { E6, B0, D1 }
48#define ENCODERS_PAD_B { F7, D0, D2 }
49
50/* COL2ROW, ROW2COL*/
51#define DIODE_DIRECTION COL2ROW
52
53/*
54 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
55 */
56// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
57
58// #define BACKLIGHT_PIN B7
59// #define BACKLIGHT_BREATHING
60// #define BACKLIGHT_LEVELS 3
61
62// #define RGB_DI_PIN E2
63// #ifdef RGB_DI_PIN
64// #define RGBLED_NUM 16
65// #define RGBLIGHT_HUE_STEP 8
66// #define RGBLIGHT_SAT_STEP 8
67// #define RGBLIGHT_VAL_STEP 8
68// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
69// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
70// /*== all animations enable ==*/
71// #define RGBLIGHT_ANIMATIONS
72// /*== or choose animations ==*/
73// #define RGBLIGHT_EFFECT_BREATHING
74// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
75// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
76// #define RGBLIGHT_EFFECT_SNAKE
77// #define RGBLIGHT_EFFECT_KNIGHT
78// #define RGBLIGHT_EFFECT_CHRISTMAS
79// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
80// #define RGBLIGHT_EFFECT_RGB_TEST
81// #define RGBLIGHT_EFFECT_ALTERNATING
82// /*== customize breathing effect ==*/
83// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
84// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
85// /*==== use exp() and sin() ====*/
86// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
87// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
88// #endif
89
90/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
91#define DEBOUNCE 5
92
93/* define if matrix has ghost (lacks anti-ghosting diodes) */
94//#define MATRIX_HAS_GHOST
95
96/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
97#define LOCKING_SUPPORT_ENABLE
98/* Locking resynchronize hack */
99#define LOCKING_RESYNC_ENABLE
100
101/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
102 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
103 */
104// #define GRAVE_ESC_CTRL_OVERRIDE
105
106/*
107 * Force NKRO
108 *
109 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
110 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
111 * makefile for this to work.)
112 *
113 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
114 * until the next keyboard reset.
115 *
116 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
117 * fully operational during normal computer usage.
118 *
119 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
120 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
121 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
122 * power-up.
123 *
124 */
125//#define FORCE_NKRO
126
127/*
128 * Magic Key Options
129 *
130 * Magic keys are hotkey commands that allow control over firmware functions of
131 * the keyboard. They are best used in combination with the HID Listen program,
132 * found here: https://www.pjrc.com/teensy/hid_listen.html
133 *
134 * The options below allow the magic key functionality to be changed. This is
135 * useful if your keyboard/keypad is missing keys and you want magic key support.
136 *
137 */
138
139/* key combination for magic key command */
140/* defined by default; to change, uncomment and set to the combination you want */
141// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
142
143/* control how magic key switches layers */
144//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
145//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
146//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
147
148/* override magic key keymap */
149//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
150//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
151//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
152//#define MAGIC_KEY_HELP H
153//#define MAGIC_KEY_HELP_ALT SLASH
154//#define MAGIC_KEY_DEBUG D
155//#define MAGIC_KEY_DEBUG_MATRIX X
156//#define MAGIC_KEY_DEBUG_KBD K
157//#define MAGIC_KEY_DEBUG_MOUSE M
158//#define MAGIC_KEY_VERSION V
159//#define MAGIC_KEY_STATUS S
160//#define MAGIC_KEY_CONSOLE C
161//#define MAGIC_KEY_LAYER0 0
162//#define MAGIC_KEY_LAYER0_ALT GRAVE
163//#define MAGIC_KEY_LAYER1 1
164//#define MAGIC_KEY_LAYER2 2
165//#define MAGIC_KEY_LAYER3 3
166//#define MAGIC_KEY_LAYER4 4
167//#define MAGIC_KEY_LAYER5 5
168//#define MAGIC_KEY_LAYER6 6
169//#define MAGIC_KEY_LAYER7 7
170//#define MAGIC_KEY_LAYER8 8
171//#define MAGIC_KEY_LAYER9 9
172//#define MAGIC_KEY_BOOTLOADER B
173//#define MAGIC_KEY_BOOTLOADER_ALT ESC
174//#define MAGIC_KEY_LOCK CAPS
175//#define MAGIC_KEY_EEPROM E
176//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
177//#define MAGIC_KEY_NKRO N
178//#define MAGIC_KEY_SLEEP_LED Z
179
180/*
181 * Feature disable options
182 * These options are also useful to firmware size reduction.
183 */
184
185/* disable debug print */
186//#define NO_DEBUG
187
188/* disable print */
189//#define NO_PRINT
190
191/* disable action features */
192//#define NO_ACTION_LAYER
193//#define NO_ACTION_TAPPING
194//#define NO_ACTION_ONESHOT
195//#define NO_ACTION_MACRO
196//#define NO_ACTION_FUNCTION
197
198/*
199 * MIDI options
200 */
201
202/* Prevent use of disabled MIDI features in the keymap */
203//#define MIDI_ENABLE_STRICT 1
204
205/* enable basic MIDI features:
206 - MIDI notes can be sent when in Music mode is on
207*/
208//#define MIDI_BASIC
209
210/* enable advanced MIDI features:
211 - MIDI notes can be added to the keymap
212 - Octave shift and transpose
213 - Virtual sustain, portamento, and modulation wheel
214 - etc.
215*/
216//#define MIDI_ADVANCED
217
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220
221/* Bootmagic Lite key configuration */
222// #define BOOTMAGIC_LITE_ROW 0
223// #define BOOTMAGIC_LITE_COLUMN 0
224
225#define QMK_ESC_OUTPUT F0 // usually COL
226#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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1# Eon40 1# Eon40
2 2
3## Support 3## Support
4* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 4* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
5* Hardware Supported: Eon40 5* Hardware Supported: Eon40
6* Hardware Availability: [maartenwut.com](https://maartenwut.com) 6* Hardware Availability: [maartenwut.com](https://maartenwut.com)
7 7
@@ -16,6 +16,6 @@
16## Build 16## Build
17Make example for this keyboard (after setting up your build environment): 17Make example for this keyboard (after setting up your build environment):
18 18
19 make maartenwut/eon40:default 19 make evyd13/eon40:default
20 20
21See 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 21See 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34ENCODER_ENABLE = yes 33ENCODER_ENABLE = yes
35 34
36LAYOUTS = ortho_4x12 planck_mit 35LAYOUTS = 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
22#define VENDOR_ID 0x4705 22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0xAEB4 23#define PRODUCT_ID 0xAEB4
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut 25#define MANUFACTURER Evyd13
26#define PRODUCT Eon65 26#define PRODUCT Eon65
27#define DESCRIPTION A 65% PCB 27#define DESCRIPTION A 65% PCB
28 28
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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
34## Build The Firmware 34## Build The Firmware
35You will need to build the firmware. To do so go to your terminal window and run the compile command: 35You will need to build the firmware. To do so go to your terminal window and run the compile command:
36 36
37 qmk compile -kb maartenwut/eon65 -km mrsendyyk 37 qmk compile -kb evyd13/eon65 -km mrsendyyk
38See [The Complete Newbs Guide To QMK](https://docs.qmk.fm/#/newbs). 38See [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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1# Eon65 1# Eon65
2 2
3## Support 3## Support
4* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 4* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
5* Hardware Supported: Eon65 5* Hardware Supported: Eon65
6* Hardware Availability: None 6* Hardware Availability: None
7 7
8## Build 8## Build
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make maartenwut/eon65:default 11 make evyd13/eon65:default
12 12
13See 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 13See 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
22#define VENDOR_ID 0x4705 22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0x5C62 23#define PRODUCT_ID 0x5C62
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut 25#define MANUFACTURER Evyd13
26#define PRODUCT Eon75 26#define PRODUCT Eon75
27#define DESCRIPTION A 75% PCB 27#define DESCRIPTION A 75% PCB
28 28
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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1# Eon75 1# Eon75
2 2
3## Support 3## Support
4* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 4* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
5* Hardware Supported: Eon75 5* Hardware Supported: Eon75
6* Hardware Availability: None 6* Hardware Availability: None
7 7
8## Build 8## Build
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make maartenwut/eon75:default 11 make evyd13/eon75:default
12 12
13See 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 13See 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
22#define VENDOR_ID 0x4705 22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0xAA6B 23#define PRODUCT_ID 0xAA6B
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut 25#define MANUFACTURER Evyd13
26#define PRODUCT Eon87 26#define PRODUCT Eon87
27#define DESCRIPTION A TKL PCB 27#define DESCRIPTION A TKL PCB
28 28
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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1# Eon87 1# Eon87
2 2
3## Support 3## Support
4* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 4* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
5* Hardware Supported: Eon87 5* Hardware Supported: Eon87
6* Hardware Availability: [maartenwut.com](https://maartenwut.com) 6* Hardware Availability: [maartenwut.com](https://maartenwut.com)
7 7
8## Build 8## Build
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make maartenwut/eon87:default 11 make evyd13/eon87:default
12 12
13See 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 13See 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
22#define VENDOR_ID 0x4705 22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0x8A18 23#define PRODUCT_ID 0x8A18
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut 25#define MANUFACTURER Evyd13
26#define PRODUCT Eon95 26#define PRODUCT Eon95
27#define DESCRIPTION A 95% PCB 27#define DESCRIPTION A 95% PCB
28 28
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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1# Eon95 1# Eon95
2 2
3## Support 3## Support
4* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 4* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
5* Hardware Supported: Eon95 5* Hardware Supported: Eon95
6* Hardware Availability: None 6* Hardware Availability: None
7 7
8## Build 8## Build
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make maartenwut/eon95:default 11 make evyd13/eon95:default
12 12
13See 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 13See 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
22#define VENDOR_ID 0x4705 22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0x8B23 23#define PRODUCT_ID 0x8B23
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut 25#define MANUFACTURER Evyd13
26#define PRODUCT GH80 1800 26#define PRODUCT GH80 1800
27 27
28/* key matrix size */ 28/* 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1{ 1{
2 "keyboard_name": "GH80-1800", 2 "keyboard_name": "GH80-1800",
3 "url": "https://github.com/Maartenwut/gh80-series/tree/master/GH80-1800", 3 "url": "https://github.com/evyd13/gh80-series/tree/master/GH80-1800",
4 "maintainer": "Maartenwut", 4 "maintainer": "evyd13",
5 "width": 19.5, 5 "width": 19.5,
6 "height": 7.25, 6 "height": 7.25,
7 "layouts": { 7 "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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1# GH80-1800 1# GH80-1800
2 2
3## Support 3## Support
4* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 4* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
5* Hardware Supported: GH80-1800 5* Hardware Supported: GH80-1800
6* Hardware Availability: [Open source on GitHub](https://github.com/Maartenwut/gh80-series/tree/master/GH80-1800) 6* Hardware Availability: [Open source on GitHub](https://github.com/evyd13/gh80-series/tree/master/GH80-1800)
7 7
8## Build 8## Build
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make maartenwut/gh80_1800:default 11 make evyd13/gh80_1800:default
12 12
13See 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 13See 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
22#define VENDOR_ID 0x4705 22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0x633A 23#define PRODUCT_ID 0x633A
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut 25#define MANUFACTURER Evyd13
26#define PRODUCT GH80 3700 26#define PRODUCT GH80 3700
27 27
28/* key matrix size */ 28/* 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1{ 1{
2 "keyboard_name": "GH80-3700", 2 "keyboard_name": "GH80-3700",
3 "url": "https://github.com/Maartenwut/gh80-series/tree/master/GH80-3700", 3 "url": "https://github.com/evyd13/gh80-series/tree/master/GH80-3700",
4 "maintainer": "Maartenwut", 4 "maintainer": "evyd13",
5 "width": 4, 5 "width": 4,
6 "height": 7, 6 "height": 7,
7 "layouts": { 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
3![GH80-3700](https://i.imgur.com/xMCzb8vl.jpg) 3![GH80-3700](https://i.imgur.com/xMCzb8vl.jpg)
4 4
5## Support 5## Support
6* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 6* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
7* Hardware Supported: GH80-3700 PCB 7* Hardware Supported: GH80-3700 PCB
8* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/gh80-3700-numpad-pcb/) 8* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/gh80-3700-numpad-pcb/)
9 9
10## Build 10## Build
11Make example for this keyboard (after setting up your build environment): 11Make example for this keyboard (after setting up your build environment):
12 12
13 make maartenwut/gh80_3700:default 13 make evyd13/gh80_3700:default
14 14
15See 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 15See 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 @@
1/* Copyright 2019 Evy Dekkers
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0x0145
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Evyd13
26#define PRODUCT Minitomic
27#define DESCRIPTION A 45% staggered keyboard
28
29/* key matrix size */
30#define MATRIX_ROWS 4
31#define MATRIX_COLS 13
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42*/
43#define MATRIX_ROW_PINS {B1,B3,D4,D6}
44#define MATRIX_COL_PINS {C6,B6,B5,B4,D7,F0,F1,F4,F5,F6,F7,B7,E6}
45#define UNUSED_PINS {B2,D0,D1,D2,D3,D5}
46
47/* COL2ROW, ROW2COL*/
48#define DIODE_DIRECTION COL2ROW
49
50/*
51 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
52 */
53// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
54
55// #define BACKLIGHT_PIN B7
56// #define BACKLIGHT_BREATHING
57// #define BACKLIGHT_LEVELS 3
58
59// #define RGB_DI_PIN E2
60// #ifdef RGB_DI_PIN
61// #define RGBLED_NUM 16
62// #define RGBLIGHT_HUE_STEP 8
63// #define RGBLIGHT_SAT_STEP 8
64// #define RGBLIGHT_VAL_STEP 8
65// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
66// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
67// /*== all animations enable ==*/
68// #define RGBLIGHT_ANIMATIONS
69// /*== or choose animations ==*/
70// #define RGBLIGHT_EFFECT_BREATHING
71// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
72// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
73// #define RGBLIGHT_EFFECT_SNAKE
74// #define RGBLIGHT_EFFECT_KNIGHT
75// #define RGBLIGHT_EFFECT_CHRISTMAS
76// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
77// #define RGBLIGHT_EFFECT_RGB_TEST
78// #define RGBLIGHT_EFFECT_ALTERNATING
79// /*== customize breathing effect ==*/
80// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
81// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
82// /*==== use exp() and sin() ====*/
83// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
84// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
85// #endif
86
87/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
88#define DEBOUNCE 5
89
90/* define if matrix has ghost (lacks anti-ghosting diodes) */
91//#define MATRIX_HAS_GHOST
92
93/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
94#define LOCKING_SUPPORT_ENABLE
95/* Locking resynchronize hack */
96#define LOCKING_RESYNC_ENABLE
97
98/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
99 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
100 */
101// #define GRAVE_ESC_CTRL_OVERRIDE
102
103/*
104 * Force NKRO
105 *
106 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
107 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
108 * makefile for this to work.)
109 *
110 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
111 * until the next keyboard reset.
112 *
113 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
114 * fully operational during normal computer usage.
115 *
116 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
117 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
118 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
119 * power-up.
120 *
121 */
122//#define FORCE_NKRO
123
124/*
125 * Magic Key Options
126 *
127 * Magic keys are hotkey commands that allow control over firmware functions of
128 * the keyboard. They are best used in combination with the HID Listen program,
129 * found here: https://www.pjrc.com/teensy/hid_listen.html
130 *
131 * The options below allow the magic key functionality to be changed. This is
132 * useful if your keyboard/keypad is missing keys and you want magic key support.
133 *
134 */
135
136/* key combination for magic key command */
137/* defined by default; to change, uncomment and set to the combination you want */
138// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
139
140/* control how magic key switches layers */
141//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
142//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
143//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
144
145/* override magic key keymap */
146//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
147//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
148//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
149//#define MAGIC_KEY_HELP H
150//#define MAGIC_KEY_HELP_ALT SLASH
151//#define MAGIC_KEY_DEBUG D
152//#define MAGIC_KEY_DEBUG_MATRIX X
153//#define MAGIC_KEY_DEBUG_KBD K
154//#define MAGIC_KEY_DEBUG_MOUSE M
155//#define MAGIC_KEY_VERSION V
156//#define MAGIC_KEY_STATUS S
157//#define MAGIC_KEY_CONSOLE C
158//#define MAGIC_KEY_LAYER0 0
159//#define MAGIC_KEY_LAYER0_ALT GRAVE
160//#define MAGIC_KEY_LAYER1 1
161//#define MAGIC_KEY_LAYER2 2
162//#define MAGIC_KEY_LAYER3 3
163//#define MAGIC_KEY_LAYER4 4
164//#define MAGIC_KEY_LAYER5 5
165//#define MAGIC_KEY_LAYER6 6
166//#define MAGIC_KEY_LAYER7 7
167//#define MAGIC_KEY_LAYER8 8
168//#define MAGIC_KEY_LAYER9 9
169//#define MAGIC_KEY_BOOTLOADER B
170//#define MAGIC_KEY_BOOTLOADER_ALT ESC
171//#define MAGIC_KEY_LOCK CAPS
172//#define MAGIC_KEY_EEPROM E
173//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
174//#define MAGIC_KEY_NKRO N
175//#define MAGIC_KEY_SLEEP_LED Z
176
177/*
178 * Feature disable options
179 * These options are also useful to firmware size reduction.
180 */
181
182/* disable debug print */
183//#define NO_DEBUG
184
185/* disable print */
186//#define NO_PRINT
187
188/* disable action features */
189//#define NO_ACTION_LAYER
190//#define NO_ACTION_TAPPING
191//#define NO_ACTION_ONESHOT
192//#define NO_ACTION_MACRO
193//#define NO_ACTION_FUNCTION
194
195/*
196 * MIDI options
197 */
198
199/* Prevent use of disabled MIDI features in the keymap */
200//#define MIDI_ENABLE_STRICT 1
201
202/* enable basic MIDI features:
203 - MIDI notes can be sent when in Music mode is on
204*/
205//#define MIDI_BASIC
206
207/* enable advanced MIDI features:
208 - MIDI notes can be added to the keymap
209 - Octave shift and transpose
210 - Virtual sustain, portamento, and modulation wheel
211 - etc.
212*/
213//#define MIDI_ADVANCED
214
215/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
216//#define MIDI_TONE_KEYCODE_OCTAVES 1
217
218/* Bootmagic Lite key configuration */
219// #define BOOTMAGIC_LITE_ROW 0
220// #define BOOTMAGIC_LITE_COLUMN 0
221
222#define QMK_ESC_OUTPUT C6 // usually COL
223#define QMK_ESC_INPUT B1 // usually ROW
224#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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
3![Minitomic](https://i.imgur.com/wGtNokW.jpg) 3![Minitomic](https://i.imgur.com/wGtNokW.jpg)
4 4
5## Support 5## Support
6* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 6* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
7* Hardware Supported: Minitomic 7* Hardware Supported: Minitomic
8* Hardware Availability: [maartenwut.com](https://maartenwut.com) 8* Hardware Availability: [maartenwut.com](https://maartenwut.com)
9 9
@@ -18,6 +18,6 @@
18## Build 18## Build
19Make example for this keyboard (after setting up your build environment): 19Make example for this keyboard (after setting up your build environment):
20 20
21 make maartenwut/minitomic:default 21 make evyd13/minitomic:default
22 22
23See 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 23See 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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 @@
1/* Copyright 2019 Evy Dekkers
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0x5160
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Evyd13
26#define PRODUCT MX-5160
27#define DESCRIPTION Replacement PCB for the Chicony 5160c
28
29/* key matrix size */
30#define MATRIX_ROWS 10
31#define MATRIX_COLS 10
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42*/
43#define MATRIX_ROW_PINS {C6,C7,B5,B6,D7,B4,D4,D6,D5,D3}
44#define MATRIX_COL_PINS {D0,D1,D2,F7,F6,F5,F4,F1,F0,E6}
45#define UNUSED_PINS {B7,B0}
46
47/* COL2ROW, ROW2COL*/
48#define DIODE_DIRECTION ROW2COL
49
50// For QMK DFU
51#define QMK_ESC_OUTPUT C6
52#define QMK_ESC_INPUT D1
53#define QMK_LED B1
54/*
55 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
56 */
57// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
58
59// #define BACKLIGHT_PIN B7
60// #define BACKLIGHT_BREATHING
61// #define BACKLIGHT_LEVELS 3
62
63// #define RGB_DI_PIN E2
64// #ifdef RGB_DI_PIN
65// #define RGBLED_NUM 16
66// #define RGBLIGHT_HUE_STEP 8
67// #define RGBLIGHT_SAT_STEP 8
68// #define RGBLIGHT_VAL_STEP 8
69// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
70// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
71// /*== all animations enable ==*/
72// #define RGBLIGHT_ANIMATIONS
73// /*== or choose animations ==*/
74// #define RGBLIGHT_EFFECT_BREATHING
75// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
76// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
77// #define RGBLIGHT_EFFECT_SNAKE
78// #define RGBLIGHT_EFFECT_KNIGHT
79// #define RGBLIGHT_EFFECT_CHRISTMAS
80// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
81// #define RGBLIGHT_EFFECT_RGB_TEST
82// #define RGBLIGHT_EFFECT_ALTERNATING
83// /*== customize breathing effect ==*/
84// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
85// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
86// /*==== use exp() and sin() ====*/
87// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
88// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
89// #endif
90
91/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
92#define DEBOUNCE 5
93
94/* define if matrix has ghost (lacks anti-ghosting diodes) */
95//#define MATRIX_HAS_GHOST
96
97/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
98#define LOCKING_SUPPORT_ENABLE
99/* Locking resynchronize hack */
100#define LOCKING_RESYNC_ENABLE
101
102/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
103 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
104 */
105// #define GRAVE_ESC_CTRL_OVERRIDE
106
107/*
108 * Force NKRO
109 *
110 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
111 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
112 * makefile for this to work.)
113 *
114 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
115 * until the next keyboard reset.
116 *
117 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
118 * fully operational during normal computer usage.
119 *
120 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
121 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
122 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
123 * power-up.
124 *
125 */
126//#define FORCE_NKRO
127
128/*
129 * Magic Key Options
130 *
131 * Magic keys are hotkey commands that allow control over firmware functions of
132 * the keyboard. They are best used in combination with the HID Listen program,
133 * found here: https://www.pjrc.com/teensy/hid_listen.html
134 *
135 * The options below allow the magic key functionality to be changed. This is
136 * useful if your keyboard/keypad is missing keys and you want magic key support.
137 *
138 */
139
140/* key combination for magic key command */
141/* defined by default; to change, uncomment and set to the combination you want */
142// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
143
144/* control how magic key switches layers */
145//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
146//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
147//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
148
149/* override magic key keymap */
150//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
151//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
152//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
153//#define MAGIC_KEY_HELP H
154//#define MAGIC_KEY_HELP_ALT SLASH
155//#define MAGIC_KEY_DEBUG D
156//#define MAGIC_KEY_DEBUG_MATRIX X
157//#define MAGIC_KEY_DEBUG_KBD K
158//#define MAGIC_KEY_DEBUG_MOUSE M
159//#define MAGIC_KEY_VERSION V
160//#define MAGIC_KEY_STATUS S
161//#define MAGIC_KEY_CONSOLE C
162//#define MAGIC_KEY_LAYER0 0
163//#define MAGIC_KEY_LAYER0_ALT GRAVE
164//#define MAGIC_KEY_LAYER1 1
165//#define MAGIC_KEY_LAYER2 2
166//#define MAGIC_KEY_LAYER3 3
167//#define MAGIC_KEY_LAYER4 4
168//#define MAGIC_KEY_LAYER5 5
169//#define MAGIC_KEY_LAYER6 6
170//#define MAGIC_KEY_LAYER7 7
171//#define MAGIC_KEY_LAYER8 8
172//#define MAGIC_KEY_LAYER9 9
173//#define MAGIC_KEY_BOOTLOADER B
174//#define MAGIC_KEY_BOOTLOADER_ALT ESC
175//#define MAGIC_KEY_LOCK CAPS
176//#define MAGIC_KEY_EEPROM E
177//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
178//#define MAGIC_KEY_NKRO N
179//#define MAGIC_KEY_SLEEP_LED Z
180
181/*
182 * Feature disable options
183 * These options are also useful to firmware size reduction.
184 */
185
186/* disable debug print */
187//#define NO_DEBUG
188
189/* disable print */
190//#define NO_PRINT
191
192/* disable action features */
193//#define NO_ACTION_LAYER
194//#define NO_ACTION_TAPPING
195//#define NO_ACTION_ONESHOT
196//#define NO_ACTION_MACRO
197//#define NO_ACTION_FUNCTION
198
199/*
200 * MIDI options
201 */
202
203/* Prevent use of disabled MIDI features in the keymap */
204//#define MIDI_ENABLE_STRICT 1
205
206/* enable basic MIDI features:
207 - MIDI notes can be sent when in Music mode is on
208*/
209//#define MIDI_BASIC
210
211/* enable advanced MIDI features:
212 - MIDI notes can be added to the keymap
213 - Octave shift and transpose
214 - Virtual sustain, portamento, and modulation wheel
215 - etc.
216*/
217//#define MIDI_ADVANCED
218
219/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
220//#define MIDI_TONE_KEYCODE_OCTAVES 1
221
222/* Bootmagic Lite key configuration */
223// #define BOOTMAGIC_LITE_ROW 0
224// #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 @@
1{ 1{
2 "keyboard_name": "mx5160", 2 "keyboard_name": "mx5160",
3 "url": "https://github.com/Maartenwut/mx-5160", 3 "url": "https://github.com/evyd13/mx-5160",
4 "maintainer": "qmk", 4 "maintainer": "qmk",
5 "width": 22, 5 "width": 22,
6 "height": 5, 6 "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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
3![mx5160](https://i.imgur.com/XZ9xUeq.jpg) 3![mx5160](https://i.imgur.com/XZ9xUeq.jpg)
4 4
5## Support 5## Support
6* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 6* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
7* Hardware Supported: mx-5160 (Chicony 5160c case) 7* Hardware Supported: mx-5160 (Chicony 5160c case)
8* Hardware Availability: [GitHub](https://github.com/Maartenwut/mx-5160) 8* Hardware Availability: [GitHub](https://github.com/evyd13/mx-5160)
9 9
10## Build 10## Build
11Make example for this keyboard (after setting up your build environment): 11Make example for this keyboard (after setting up your build environment):
12 12
13 make maartenwut/mx5160:default 13 make evyd13/mx5160:default
14 14
15See 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 15See 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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 @@
1/* 1/*
2Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2020 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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/>.
23#define VENDOR_ID 0x4705 23#define VENDOR_ID 0x4705
24#define PRODUCT_ID 0x1F02 24#define PRODUCT_ID 0x1F02
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Maartenwut 26#define MANUFACTURER Evyd13
27#define PRODUCT nt660 27#define PRODUCT nt660
28#define DESCRIPTION Replacement PCB for Leopold FC660M 28#define DESCRIPTION Replacement PCB for Leopold FC660M
29 29
@@ -219,34 +219,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
219/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 219/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
220//#define MIDI_TONE_KEYCODE_OCTAVES 1 220//#define MIDI_TONE_KEYCODE_OCTAVES 1
221 221
222/*
223 * HD44780 LCD Display Configuration
224 */
225/*
226#define LCD_LINES 2 //< number of visible lines of the display
227#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
228
229#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
230
231#if LCD_IO_MODE
232#define LCD_PORT PORTB //< port for the LCD lines
233#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
234#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
235#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
236#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
237#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
238#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
239#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
240#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
241#define LCD_RS_PORT LCD_PORT //< port for RS line
242#define LCD_RS_PIN 3 //< pin for RS line
243#define LCD_RW_PORT LCD_PORT //< port for RW line
244#define LCD_RW_PIN 2 //< pin for RW line
245#define LCD_E_PORT LCD_PORT //< port for Enable line
246#define LCD_E_PIN 1 //< pin for Enable line
247#endif
248*/
249
250/* Bootmagic Lite key configuration */ 222/* Bootmagic Lite key configuration */
251// #define BOOTMAGIC_LITE_ROW 0 223// #define BOOTMAGIC_LITE_ROW 0
252// #define BOOTMAGIC_LITE_COLUMN 0 224// #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 @@
1{ 1{
2 "keyboard_name": "nt660", 2 "keyboard_name": "nt660",
3 "url": "", 3 "url": "",
4 "maintainer": "maartenwut", 4 "maintainer": "evyd13",
5 "width": 16.5, 5 "width": 16.5,
6 "height": 5, 6 "height": 5,
7 "layouts": { 7 "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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
2 2
3A drop-in replacement PCB for the Leopold FC660M. 3A drop-in replacement PCB for the Leopold FC660M.
4 4
5* Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut) 5* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
6* Hardware Supported: nt660 PCB 6* Hardware Supported: nt660 PCB
7* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/nt-660/) 7* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/nt-660/)
8 8
@@ -14,6 +14,6 @@ In place of the DIP switches on the original PCB there is a small button. Press
14 14
15Make example for this keyboard (after setting up your build environment): 15Make example for this keyboard (after setting up your build environment):
16 16
17 make maartenwut/nt660:default 17 make evyd13/nt660:default
18 18
19See 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). 19See 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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34LAYOUTS = 66_ansi 66_iso 33LAYOUTS = 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
22#define VENDOR_ID 0x4705 22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0xEA78 23#define PRODUCT_ID 0xEA78
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut 25#define MANUFACTURER Evyd13
26#define PRODUCT OmronTKL 26#define PRODUCT OmronTKL
27#define DESCRIPTION A TKL PCB for Omron switches 27#define DESCRIPTION A TKL PCB for Omron switches
28 28
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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1# OmronTKL 1# OmronTKL
2 2
3## Support 3## Support
4* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 4* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
5* Hardware Supported: OmronTKL 5* Hardware Supported: OmronTKL
6* Hardware Availability: none 6* Hardware Availability: none
7 7
8## Build 8## Build
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make maartenwut/omrontkl:default 11 make evyd13/omrontkl:default
12 12
13See 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 13See 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 @@
1/* 1/*
2Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2019 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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/>.
23#define VENDOR_ID 0x4705 23#define VENDOR_ID 0x4705
24#define PRODUCT_ID 0x0160 24#define PRODUCT_ID 0x0160
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Maartenwut 26#define MANUFACTURER Evyd13
27#define PRODUCT Plain60 27#define PRODUCT Plain60
28#define DESCRIPTION A plain 60% PCB 28#define DESCRIPTION A plain 60% PCB
29 29
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 @@
1{ 1{
2 "keyboard_name": "Plain60", 2 "keyboard_name": "Plain60",
3 "url": "", 3 "url": "",
4 "maintainer": "maartenwut", 4 "maintainer": "evyd13",
5 "width": 15, 5 "width": 15,
6 "height": 5, 6 "height": 5,
7 "layouts": { 7 "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
3 3
4A plain 60% PCB with USB-C. 4A plain 60% PCB with USB-C.
5 5
6Keyboard Maintainer: Maartenwut 6Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
7Hardware Supported: Plain60-C and Plain60-B 7Hardware Supported: Plain60-C and Plain60-B
8Hardware Availability: https://github.com/Maartenwut/plain60-c 8Hardware Availability: https://github.com/evyd13/plain60-c
9 9
10Make example for this keyboard (after setting up your build environment): 10Make example for this keyboard (after setting up your build environment):
11 11
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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
22#define VENDOR_ID 0x4705 22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0xFA7D 23#define PRODUCT_ID 0xFA7D
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut 25#define MANUFACTURER Evyd13
26#define PRODUCT PocketType 26#define PRODUCT PocketType
27#define DESCRIPTION A small 4x12 ortholinear keyboard 27#define DESCRIPTION A small 4x12 ortholinear keyboard
28 28
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 @@
1{ 1{
2 "keyboard_name": "PocketType", 2 "keyboard_name": "PocketType",
3 "url": "https://mechboards.co.uk/shop/kits/pockettype/", 3 "url": "https://mechboards.co.uk/shop/kits/pockettype/",
4 "maintainer": "maartenwut", 4 "maintainer": "evyd13",
5 "width": 12, 5 "width": 12,
6 "height": 4, 6 "height": 4,
7 "layouts": { 7 "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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1# PocketType 1# PocketType
2 2
3## Support 3## Support
4* Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut) 4* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
5* Hardware Supported: PocketType 5* Hardware Supported: PocketType
6* Hardware Availability: [mechboards.co.uk](https://mechboards.co.uk/shop/kits/pockettype/) 6* Hardware Availability: [mechboards.co.uk](https://mechboards.co.uk/shop/kits/pockettype/)
7 7
8## Build 8## Build
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make maartenwut/pockettype:default 11 make evyd13/pockettype:default
12 12
13See 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 13See 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 @@
1/* 1/*
2Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2020 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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/>.
23#define VENDOR_ID 0x4705 23#define VENDOR_ID 0x4705
24#define PRODUCT_ID 0x87C9 24#define PRODUCT_ID 0x87C9
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Maartenwut 26#define MANUFACTURER Evyd13
27#define PRODUCT Quackfire 27#define PRODUCT Quackfire
28 28
29/* key matrix size */ 29/* 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 @@
1{ 1{
2 "keyboard_name": "Quackfire", 2 "keyboard_name": "Quackfire",
3 "url": "https://github.com/Maartenwut/quackfire-controller", 3 "url": "https://github.com/evyd13/quackfire-controller",
4 "maintainer": "Maartenwut", 4 "maintainer": "evyd13",
5 "width": 18.5, 5 "width": 18.5,
6 "height": 6.5, 6 "height": 6.5,
7 "layouts": { 7 "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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
2 2
3A drop-in replacement controller for the CM Quickfire Rapid. Not for the Quickfire Rapid-I! 3A drop-in replacement controller for the CM Quickfire Rapid. Not for the Quickfire Rapid-I!
4 4
5* Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut) 5* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
6* Hardware Supported: Quackfire controller 6* Hardware Supported: Quackfire controller
7* Hardware Availability: [Open source on GitHub](https://github.com/Maartenwut/quackfire-controller) 7* Hardware Availability: [Open source on GitHub](https://github.com/evyd13/quackfire-controller)
8 8
9## Flashing 9## Flashing
10 10
@@ -14,6 +14,6 @@ To get to the bootloader, hold Fn while plugging in the keyboard. You can also p
14 14
15Make example for this keyboard (after setting up your build environment): 15Make example for this keyboard (after setting up your build environment):
16 16
17 make maartenwut/quackfire:default 17 make evyd13/quackfire:default
18 18
19See 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). 19See 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 @@
22#define VENDOR_ID 0x4705 22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0x7BFF 23#define PRODUCT_ID 0x7BFF
24#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut 25#define MANUFACTURER Evyd13
26#define PRODUCT Solheim68 26#define PRODUCT Solheim68
27 27
28/* key matrix size */ 28/* 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 @@
1{ 1{
2 "keyboard_name": "Solheim68", 2 "keyboard_name": "Solheim68",
3 "url": "https://github.com/Maartenwut/solheim68", 3 "url": "https://github.com/evyd13/solheim68",
4 "maintainer": "maartenwut", 4 "maintainer": "evyd13",
5 "width": 17.25, 5 "width": 17.25,
6 "height": 5, 6 "height": 5,
7 "layouts": { 7 "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 @@
2 2
3A replacement PCB for the VA68M (v2) with Mini-USB. 3A replacement PCB for the VA68M (v2) with Mini-USB.
4 4
5* Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut) 5* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
6* Hardware Supported: Solheim68 PCB 6* Hardware Supported: Solheim68 PCB
7* Hardware Availability: [Open source on GitHub](https://github.com/Maartenwut/solheim68) 7* Hardware Availability: [Open source on GitHub](https://github.com/evyd13/solheim68)
8 8
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make maartenwut/solheim68:default 11 make evyd13/solheim68:default
12 12
13Flashing example for this keyboard: 13Flashing example for this keyboard:
14 14
15 make maartenwut/solheim68:default:flash 15 make evyd13/solheim68:default:flash
16 16
17See 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). 17See 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 @@
1/* 1/*
2Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2019 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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/>.
23#define VENDOR_ID 0x4705 23#define VENDOR_ID 0x4705
24#define PRODUCT_ID 0x7465 24#define PRODUCT_ID 0x7465
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Maartenwut 26#define MANUFACTURER Evyd13
27#define PRODUCT ta-65 27#define PRODUCT ta-65
28#define DESCRIPTION A universal 65% PCB with underglow. 28#define DESCRIPTION A universal 65% PCB with underglow.
29 29
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 @@
1TA-65 1TA-65
2===== 2=====
3 3
4A 65% PCB designed to fit the TADA68, Kayak and others by [maartenwut](https://maartenwut.com). 4A 65% PCB designed to fit the TADA68, Kayak and others by [Evyd13](https://github.com/evyd13).
5 5
6![kle](https://maartenwut.com/wp-content/uploads/2019/02/ta-65-layouts-768x420.png) 6![kle](https://maartenwut.com/wp-content/uploads/2019/02/ta-65-layouts-768x420.png)
7 7
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33ENCODER_ENABLE = yes 32ENCODER_ENABLE = yes
34 33
35LAYOUTS = 65_ansi 65_iso 34LAYOUTS = 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 @@
1/* 1/*
2Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2019 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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/>.
23#define VENDOR_ID 0x4705 23#define VENDOR_ID 0x4705
24#define PRODUCT_ID 0xC474 24#define PRODUCT_ID 0xC474
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Maartenwut 26#define MANUFACTURER Evyd13
27#define PRODUCT Wasdat 27#define PRODUCT Wasdat
28#define DESCRIPTION Custom controller for the WASD v2 TKL and 104 28#define DESCRIPTION Custom controller for the WASD v2 TKL and 104
29 29
@@ -223,34 +223,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
223/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 223/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
224//#define MIDI_TONE_KEYCODE_OCTAVES 1 224//#define MIDI_TONE_KEYCODE_OCTAVES 1
225 225
226/*
227 * HD44780 LCD Display Configuration
228 */
229/*
230#define LCD_LINES 2 //< number of visible lines of the display
231#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
232
233#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
234
235#if LCD_IO_MODE
236#define LCD_PORT PORTB //< port for the LCD lines
237#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
238#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
239#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
240#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
241#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
242#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
243#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
244#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
245#define LCD_RS_PORT LCD_PORT //< port for RS line
246#define LCD_RS_PIN 3 //< pin for RS line
247#define LCD_RW_PORT LCD_PORT //< port for RW line
248#define LCD_RW_PIN 2 //< pin for RW line
249#define LCD_E_PORT LCD_PORT //< port for Enable line
250#define LCD_E_PIN 1 //< pin for Enable line
251#endif
252*/
253
254/* Bootmagic Lite key configuration */ 226/* Bootmagic Lite key configuration */
255#define BOOTMAGIC_LITE_ROW 0 227#define BOOTMAGIC_LITE_ROW 0
256#define BOOTMAGIC_LITE_COLUMN 5 228#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 @@
1{ 1{
2 "keyboard_name": "Wasdat", 2 "keyboard_name": "Wasdat",
3 "url": "https://maartenwut.com/product/wasdat/", 3 "url": "https://maartenwut.com/product/wasdat/",
4 "maintainer": "Maartenwut", 4 "maintainer": "evyd13",
5 "width": 22.5, 5 "width": 22.5,
6 "height": 6.5, 6 "height": 6.5,
7 "layouts": { 7 "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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
4 4
5A drop-in replacement controller for the WASD v2 TKL and fullsize models. 5A drop-in replacement controller for the WASD v2 TKL and fullsize models.
6 6
7* Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut) 7* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
8* Hardware Supported: WASD v2 TKL/Fullsize ANSI & ISO with Wasdat controller 8* Hardware Supported: WASD v2 TKL/Fullsize ANSI & ISO with Wasdat controller
9* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/wasdat/) 9* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/wasdat/)
10 10
@@ -16,6 +16,6 @@ The WASD has no reset button, but it does have a bank of DIP switches on the bot
16 16
17Make example for this keyboard (after setting up your build environment): 17Make example for this keyboard (after setting up your build environment):
18 18
19 make maartenwut/wasdat:default 19 make evyd13/wasdat:default
20 20
21See 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). 21See 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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34CUSTOM_MATRIX = lite 33CUSTOM_MATRIX = lite
35SRC += matrix.c 34SRC += 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* 1/*
2Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2019 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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/>.
23#define VENDOR_ID 0x4705 23#define VENDOR_ID 0x4705
24#define PRODUCT_ID 0xB00E 24#define PRODUCT_ID 0xB00E
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Maartenwut 26#define MANUFACTURER Evyd13
27#define PRODUCT Wasdat Code 27#define PRODUCT Wasdat Code
28#define DESCRIPTION Custom controller for the WASD CODE TKL and 104-key keyboards 28#define DESCRIPTION Custom controller for the WASD CODE TKL and 104-key keyboards
29 29
@@ -223,34 +223,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
223/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 223/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
224//#define MIDI_TONE_KEYCODE_OCTAVES 1 224//#define MIDI_TONE_KEYCODE_OCTAVES 1
225 225
226/*
227 * HD44780 LCD Display Configuration
228 */
229/*
230#define LCD_LINES 2 //< number of visible lines of the display
231#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
232
233#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
234
235#if LCD_IO_MODE
236#define LCD_PORT PORTB //< port for the LCD lines
237#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
238#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
239#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
240#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
241#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
242#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
243#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
244#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
245#define LCD_RS_PORT LCD_PORT //< port for RS line
246#define LCD_RS_PIN 3 //< pin for RS line
247#define LCD_RW_PORT LCD_PORT //< port for RW line
248#define LCD_RW_PIN 2 //< pin for RW line
249#define LCD_E_PORT LCD_PORT //< port for Enable line
250#define LCD_E_PIN 1 //< pin for Enable line
251#endif
252*/
253
254/* Bootmagic Lite key configuration */ 226/* Bootmagic Lite key configuration */
255#define BOOTMAGIC_LITE_ROW 2 227#define BOOTMAGIC_LITE_ROW 2
256#define BOOTMAGIC_LITE_COLUMN 3 228#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 @@
1{ 1{
2 "keyboard_name": "Wasdat Code", 2 "keyboard_name": "Wasdat Code",
3 "url": "https://maartenwut.com/product/wasdat-code/", 3 "url": "https://maartenwut.com/product/wasdat-code/",
4 "maintainer": "Maartenwut", 4 "maintainer": "evyd13",
5 "width": 22.5, 5 "width": 22.5,
6 "height": 6.5, 6 "height": 6.5,
7 "layouts": { 7 "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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
2 2
3A drop-in replacement controller for the WASD CODE TKL and fullsize models. 3A drop-in replacement controller for the WASD CODE TKL and fullsize models.
4 4
5* Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut) 5* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
6* Hardware Supported: WASD CODE TKL/Fullsize ANSI & ISO with Wasdat Code controller 6* Hardware Supported: WASD CODE TKL/Fullsize ANSI & ISO with Wasdat Code controller
7* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/wasdat-code/) 7* Hardware Availability: [maartenwut.com](https://maartenwut.com/product/wasdat-code/)
8 8
@@ -14,6 +14,6 @@ The WASD has no reset button, so to put the controller in flashing mode, simply
14 14
15Make example for this keyboard (after setting up your build environment): 15Make example for this keyboard (after setting up your build environment):
16 16
17 make maartenwut/wasdat_code:default 17 make evyd13/wasdat_code:default
18 18
19See 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). 19See 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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34CUSTOM_MATRIX = lite 33CUSTOM_MATRIX = lite
35SRC += matrix.c 34SRC += 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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/>.
23#define VENDOR_ID 0x4705 23#define VENDOR_ID 0x4705
24#define PRODUCT_ID 0xA71C 24#define PRODUCT_ID 0xA71C
25#define DEVICE_VER 0x0003 25#define DEVICE_VER 0x0003
26#define MANUFACTURER Maartenwut 26#define MANUFACTURER Evyd13
27#define PRODUCT Wonderland 27#define PRODUCT Wonderland
28#define DESCRIPTION "QMK Firmware for the Wonderland" 28#define DESCRIPTION "QMK Firmware for the Wonderland"
29 29
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 @@
1{ 1{
2 "keyboard_name": "Maartenwut Wonderland", 2 "keyboard_name": "Wonderland",
3 "url": "", 3 "url": "",
4 "maintainer": "Maartenwut", 4 "maintainer": "evyd13",
5 "width": 18.25, 5 "width": 18.25,
6 "height": 5, 6 "height": 5,
7 "layouts": { 7 "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
3 3
4Only 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. 4Only 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.
5 5
6Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut)<br> 6Keyboard Maintainer: [Evyd13](https://github.com/evyd13)<br>
7Hardware Supported: Wonderland-C and Wonderland-Mini<br> 7Hardware Supported: Wonderland-C and Wonderland-Mini<br>
8Hardware Availability: https://maartenwut.com/product/wonderland-mini-usb-only/<br> 8Hardware Availability: https://maartenwut.com/product/wonderland-mini-usb-only/<br>
9 9
10Make example for this keyboard (after setting up your build environment): 10Make example for this keyboard (after setting up your build environment):
11 11
12 make maartenwut/wonderland:default 12 make evyd13/wonderland:default
13 13
14See 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). 14See 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
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32RGBLIGHT_ENABLE = yes # Use RGB underglow light 32RGBLIGHT_ENABLE = yes # Use RGB underglow light
33RGB_MATRIX_ENABLE = no # Use RGB matrix 33RGB_MATRIX_ENABLE = no # Use RGB matrix
34RGB_MATRIX_DRIVER = IS31FL3733
34LAYOUTS = 60_ansi 60_hhkb 35LAYOUTS = 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 @@
1/* 1/*
2Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2019 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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/>.
23#define VENDOR_ID 0x7353 23#define VENDOR_ID 0x7353
24#define PRODUCT_ID 0x0160 24#define PRODUCT_ID 0x0160
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Maartenwut 26#define MANUFACTURER Evyd13
27#define PRODUCT Lex60 27#define PRODUCT Lex60
28#define DESCRIPTION A 60% PCB 28#define DESCRIPTION A 60% PCB
29 29
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
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32RGB_MATRIX_ENABLE = yes # Use RGB matrix 32RGB_MATRIX_ENABLE = yes # Use RGB matrix
33RGB_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 @@
1#include QMK_KEYBOARD_H
2
3#define _MA 0
4#define _GA 1
5#define _FL 2
6#define _AR 3
7
8#define TRNS KC_TRNS
9#define trigger_time 400
10
11#define LSHIFT OSM(MOD_LSFT)
12#define SPACE LT(_AR, KC_SPC)
13
14const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15// Main Layer
16[_MA] = LAYOUT_60_ansi_split_bs_rshift(
17 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,
18 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,
19 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,
20 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,
21 KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_NO, KC_RALT, MO(_FL), KC_RCTRL),
22
23//Function Layer
24[_FL] = LAYOUT_60_ansi_split_bs_rshift(
25 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,
26 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PSCR,
27 TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
28 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_MPLY,
29 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
30
31//Arrow keys layer (space bar)
32[_AR] = LAYOUT_60_ansi_split_bs_rshift(
33 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,
34 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PGUP, KC_UP, KC_PGDN, TRNS, TRNS, TRNS, TRNS,
35 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_RGHT, TRNS, TRNS, TRNS,
36 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
37 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
38
39//Game layer (fn + g)
40[_GA] = LAYOUT_60_ansi_split_bs_rshift(
41 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_NO,
42 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
43 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
44 KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
45 TRNS, TRNS, TRNS, KC_SPC, TRNS, TRNS, MO(_FL), TRNS),
46
47};
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
16CUSTOM_MATRIX = no # Custom matrix file 16CUSTOM_MATRIX = no # Custom matrix file
17AUDIO_ENABLE = yes 17AUDIO_ENABLE = yes
18RGBLIGHT_ENABLE = yes 18RGBLIGHT_ENABLE = yes
19RGB_MATRIX_ENABLE = no #WS2812 once arm_rgb is implemented 19RGB_MATRIX_ENABLE = no # once arm_rgb is implemented
20RGB_MATRIX_DRIVER = WS2812
20HAPTIC_ENABLE += DRV2605L 21HAPTIC_ENABLE += DRV2605L
21QWIIC_ENABLE += MICRO_OLED 22QWIIC_ENABLE += MICRO_OLED
22ENCODER_ENABLER = yes 23ENCODER_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
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = yes # USB Nkey Rollover 25NKRO_ENABLE = yes # USB Nkey Rollover
26#RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500) 26RGB_MATRIX_ENABLE = yes # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
27RGB_MATRIX_DRIVER = WS2812
27BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default 28BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
28RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 29RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
29MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) 30MIDI_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
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32LTO_ENABLE = no # Use link time optimization 32LTO_ENABLE = no # Use link time optimization
33RGB_MATRIX_ENABLE = WS2812 # Enable keyboard RGB backlight functionality with ws2812 driver 33RGB_MATRIX_ENABLE = yes
34RGB_MATRIX_DRIVER = WS2812
34RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 35RGBLIGHT_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
21BLUETOOTH_ENABLE = no # Enable Bluetooth 21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output 22AUDIO_ENABLE = no # Audio output
23ENCODER_ENABLE = yes 23ENCODER_ENABLE = yes
24RGB_MATRIX_ENABLE = WS2812 24RGB_MATRIX_ENABLE = yes
25RGB_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32RGB_MATRIX_ENABLE = WS2812 \ No newline at end of file 32RGB_MATRIX_ENABLE = yes
33RGB_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 @@
1#ifndef CONFIG_H
2#define CONFIG_H
3
4#include "config_common.h"
5
6/* USB Device descriptor parameter */
7#define VENDOR_ID 0xBB80
8#define PRODUCT_ID 0x050D
9#define DEVICE_VER 0x0001
10#define MANUFACTURER Maartenwut
11#define PRODUCT Ortho
12#define DESCRIPTION Handwired ortholinear keyboard
13
14/* key matrix size */
15#define MATRIX_ROWS 5
16#define MATRIX_COLS 14
17/*
18 * Keyboard Matrix Assignments
19 *
20 * Change this to how you wired your keyboard
21 * COLS: AVR pins used for columns, left to right
22 * ROWS: AVR pins used for rows, top to bottom
23 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
24 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
25 *
26*/
27#define MATRIX_ROW_PINS { D4, D0, D1, D2, D3 }
28#define MATRIX_COL_PINS { C6, D7, E6, B4, B5, B6, B7, D6, F0, F1, F4, F5, F6, F7 }
29#define UNUSED_PINS
30
31/* COL2ROW or ROW2COL */
32#define DIODE_DIRECTION COL2ROW
33
34/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
35#define DEBOUNCE 5
36
37#define QMK_ESC_OUTPUT C6 // usually COL
38#define QMK_ESC_INPUT D0 // usually ROW
39
40#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 @@
1{
2 "keyboard_name": "Maartenwut Ortho",
3 "url": "",
4 "maintainer": "maartenwut",
5 "width": 14,
6 "height": 5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"`", "x":0, "y":0},
11 {"label":"1", "x":1, "y":0},
12 {"label":"2", "x":2, "y":0},
13 {"label":"3", "x":3, "y":0},
14 {"label":"4", "x":4, "y":0},
15 {"label":"5", "x":5, "y":0},
16 {"label":"6", "x":6, "y":0},
17 {"label":"7", "x":7, "y":0},
18 {"label":"8", "x":8, "y":0},
19 {"label":"9", "x":9, "y":0},
20 {"label":"0", "x":10, "y":0},
21 {"label":"-", "x":11, "y":0},
22 {"label":"=", "x":12, "y":0},
23 {"label":"Backspace", "x":13, "y":0},
24 {"label":"Esc", "x":0, "y":1},
25 {"label":"Q", "x":1, "y":1},
26 {"label":"W", "x":2, "y":1},
27 {"label":"E", "x":3, "y":1},
28 {"label":"R", "x":4, "y":1},
29 {"label":"T", "x":5, "y":1},
30 {"label":"Y", "x":6, "y":1},
31 {"label":"U", "x":7, "y":1},
32 {"label":"I", "x":8, "y":1},
33 {"label":"O", "x":9, "y":1},
34 {"label":"P", "x":10, "y":1},
35 {"label":"[", "x":11, "y":1},
36 {"label":"]", "x":12, "y":1},
37 {"label":"\\", "x":13, "y":1},
38 {"label":"Tab", "x":0, "y":2},
39 {"label":"A", "x":1, "y":2},
40 {"label":"S", "x":2, "y":2},
41 {"label":"D", "x":3, "y":2},
42 {"label":"F", "x":4, "y":2},
43 {"label":"G", "x":5, "y":2},
44 {"label":"H", "x":6, "y":2},
45 {"label":"J", "x":7, "y":2},
46 {"label":"K", "x":8, "y":2},
47 {"label":"L", "x":9, "y":2},
48 {"label":";", "x":10, "y":2},
49 {"label":"'", "x":11, "y":2},
50 {"label":"Delete", "x":12, "y":2},
51 {"label":"Enter", "x":13, "y":2},
52 {"label":"Shift", "x":0, "y":3},
53 {"label":"Z", "x":1, "y":3},
54 {"label":"X", "x":2, "y":3},
55 {"label":"C", "x":3, "y":3},
56 {"label":"V", "x":4, "y":3},
57 {"label":"B", "x":5, "y":3},
58 {"label":"N", "x":6, "y":3},
59 {"label":"M", "x":7, "y":3},
60 {"label":",", "x":8, "y":3},
61 {"label":".", "x":9, "y":3},
62 {"label":"/", "x":10, "y":3},
63 {"label":"Shift", "x":11, "y":3},
64 {"label":"Up", "x":12, "y":3},
65 {"label":"Print Screen", "x":13, "y":3},
66 {"label":"Ctrl", "x":0, "y":4},
67 {"label":"GUI", "x":1, "y":4},
68 {"label":"Alt", "x":2, "y":4},
69 {"label":"Fn", "x":3, "y":4},
70 {"label":"Fn3 / Space", "x":4, "y":4, "w":2.25},
71 {"label":"Space", "x":6.25, "y":4, "w":2.75},
72 {"label":"Fn2", "x":9, "y":4},
73 {"label":"Alt", "x":10, "y":4},
74 {"label":"Left", "x":11, "y":4},
75 {"label":"Down", "x":12, "y":4},
76 {"label":"Right", "x":13, "y":4}
77 ]
78 }
79 }
80}
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 @@
1#include QMK_KEYBOARD_H
2
3#define _MA 0
4#define _NU 1
5#define _FL 2
6#define _GA 3
7#define _AR 4
8
9#define LSHIFT OSM(MOD_LSFT)
10#define SPACE LT(_AR, KC_SPC)
11
12const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
13[_MA] = LAYOUT(
14 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,
15 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,
16 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,
17 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,
18 KC_LCTL, KC_LGUI, KC_LALT, MO(_NU), SPACE, KC_SPC, MO(_FL), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
19[_NU] = LAYOUT(
20 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
21 _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
22 KC_CAPS, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
23 _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
24 _______, KC_0, _______, _______, _______, _______, _______, _______, _______, _______, _______),
25[_FL] = LAYOUT(
26 _______, 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,
27 RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
28 _______, _______, _______, _______, _______, TG(_GA), _______, _______, _______, _______, _______, _______, _______, _______,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
31[_GA] = LAYOUT(
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
35 KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 _______, _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______, _______),
37[_AR] = LAYOUT(
38 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
43};
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 @@
1#include "maartenwut.h"
2
3void matrix_init_kb(void) {
4 // put your keyboard start-up code here
5 // runs once when the firmware starts up
6
7 matrix_init_user();
8}
9void matrix_scan_kb(void) {
10 // put your looping keyboard code here
11 // runs every cycle (a lot)
12 matrix_scan_user();
13}; \ 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 @@
1#ifndef MAARTENWUT_H
2#define MAARTENWUT_H
3
4#include "quantum.h"
5
6#define XXX KC_NO
7
8#define LAYOUT( \
9 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
10 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
11 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
12 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
13 k40, k41, k42, k43, k45, k47, k49, k4a, k4b, k4c, k4d \
14) \
15{ \
16 {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
17 {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
18 {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
19 {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
20 {k40, k41, k42, k43, XXX, k45, XXX, k47, XXX, k49, k4a, k4b, k4c, k4d} \
21}
22
23#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 @@
1# maartenwut handwired
2
3Custom handwired keyboard for maartenwut.
4
5Keyboard Maintainer: [Maarten Dekkers](https://github.com/maartenwut)
6Hardware Supported: Custom handwired
7Hardware Availability:
8
9Make example for this keyboard (after setting up your build environment):
10
11 make handwired/maartenwut:default
12
13See 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 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = atmel-dfu
13
14# Build Options
15# change yes to no to disable
16#
17BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
18MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
19EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
20CONSOLE_ENABLE = no # Console for debug(+400)
21COMMAND_ENABLE = no # Commands for debug and configuration
22# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = no # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
27MIDI_ENABLE = no # MIDI controls
28UNICODE_ENABLE = no # Unicode
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_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
25NKRO_ENABLE = yes # USB Nkey Rollover 25NKRO_ENABLE = yes # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
27RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 27RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
28RGB_MATRIX_ENABLE = WS2812 # Enable keyboard RGB backlight functionality with ws2812 driver 28RGB_MATRIX_ENABLE = yes
29RGB_MATRIX_DRIVER = WS2812
29MIDI_ENABLE = no # MIDI support 30MIDI_ENABLE = no # MIDI support
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 32AUDIO_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
116``` 116```
117$ make helix/pico:default 117$ make helix/pico:default
118$ make helix/pico/back:default # with backlight 118$ make helix/pico/back:default # with backlight
119$ make HELIX=no_ani helix/pico/back:default # with backlight without animation 119$ make HELIX=no-ani helix/pico/back:default # with backlight without animation
120$ make helix/pico/under:default # with underglow 120$ make helix/pico/under:default # with underglow
121``` 121```
122 122
123build (experimental use of split_common) 123build (experimental use of split_common with backlight)
124``` 124```
125$ make helix/pico/sc:default 125$ make helix/pico/sc:default
126$ make helix/pico/sc/back:default
127$ make helix/pico/sc/under:default
128``` 126```
129 127
130flash to keyboard 128flash 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 @@
5# combinations of standard options) into QMK standard options. 5# combinations of standard options) into QMK standard options.
6# 6#
7 7
8KEYBOARD_LOCAL_FEATURES_MK :=
9
8define HELIX_CUSTOMISE_MSG 10define HELIX_CUSTOMISE_MSG
9 $(info Helix Spacific Build Options) 11 $(info Helix Spacific Build Options)
10 $(info - OLED_ENABLE = $(OLED_ENABLE)) 12 $(info - OLED_ENABLE = $(OLED_ENABLE))
@@ -15,42 +17,61 @@ define HELIX_CUSTOMISE_MSG
15 $(info ) 17 $(info )
16endef 18endef
17 19
20define HELIX_HELP_MSG
21 $(info Helix keyboard convenient command line option)
22 $(info - make HELIX=<options> helix/pico:<keymap>)
23 $(info - option= oled | back | under | na | no-ani)
24 $(info - ios | sc | split-common | scan | verbose)
25 $(info - ex.)
26 $(info - make HELIX=oled helix/pico:<keymap>)
27 $(info - make HELIX=back helix/pico:<keymap>)
28 $(info - make HELIX=under helix/pico:<keymap>)
29 $(info - make HELIX=back,na helix/pico:<keymap>)
30 $(info - make HELIX=back,ios helix/pico:<keymap>)
31 $(info )
32endef
33
18 ifneq ($(strip $(HELIX)),) 34 ifneq ($(strip $(HELIX)),)
19 ### Helix keyboard keymap: convenient command line option 35 COMMA=,
20 ## make HELIX=<options> helix/pico:<keymap> 36 helix_option := $(subst $(COMMA), , $(HELIX))
21 ## option= oled | back | under | no_ani | na | ios | verbose 37 ifneq ($(filter help,$(helix_option)),)
22 ## ex. 38 $(eval $(call HELIX_HELP_MSG))
23 ## make HELIX=oled helix/pico:<keymap> 39 $(error )
24 ## make HELIX=oled,back helix/pico:<keymap> 40 endif
25 ## make HELIX=oled,under helix/pico:<keymap> 41 ifneq ($(filter oled,$(helix_option)),)
26 ## make HELIX=oled,back,na helix/pico:<keymap>
27 ## make HELIX=oled,back,ios helix/pico:<keymap>
28 ##
29 ifeq ($(findstring oled,$(HELIX)), oled)
30 OLED_ENABLE = yes 42 OLED_ENABLE = yes
31 endif 43 endif
32 ifeq ($(findstring back,$(HELIX)), back) 44 ifneq ($(filter back,$(helix_option)),)
33 LED_BACK_ENABLE = yes 45 LED_BACK_ENABLE = yes
34 else ifeq ($(findstring under,$(HELIX)), under) 46 else ifneq ($(filter under,$(helix_option)),)
35 LED_UNDERGLOW_ENABLE = yes 47 LED_UNDERGLOW_ENABLE = yes
36 endif 48 endif
37 ifeq ($(findstring na,$(HELIX)), na) 49 ifneq ($(filter na,$(helix_option)),)
38 LED_ANIMATIONS = no 50 LED_ANIMATIONS = no
39 endif 51 endif
40 ifeq ($(findstring no_ani,$(HELIX)), no_ani) 52 ifneq ($(filter no_ani,$(helix_option)),)
41 LED_ANIMATIONS = no 53 LED_ANIMATIONS = no
42 endif 54 endif
43 ifeq ($(findstring ios,$(HELIX)), ios) 55 ifneq ($(filter no-ani,$(helix_option)),)
56 LED_ANIMATIONS = no
57 endif
58 ifneq ($(filter ios,$(helix_option)),)
44 IOS_DEVICE_ENABLE = yes 59 IOS_DEVICE_ENABLE = yes
45 endif 60 endif
46 ifeq ($(findstring scan,$(HELIX)), scan) 61 ifneq ($(filter sc,$(helix_option)),)
62 SPLIT_KEYBOARD = yes
63 endif
64 ifneq ($(filter split-common,$(helix_option)),)
65 SPLIT_KEYBOARD = yes
66 endif
67 ifneq ($(filter scan,$(helix_option)),)
47 # use DEBUG_MATRIX_SCAN_RATE 68 # use DEBUG_MATRIX_SCAN_RATE
48 # see docs/newbs_testing_debugging.md 69 # see docs/newbs_testing_debugging.md
49 OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE 70 OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
50 CONSOLE_ENABLE = yes 71 CONSOLE_ENABLE = yes
51 SHOW_VERBOSE_INFO = yes 72 SHOW_VERBOSE_INFO = yes
52 endif 73 endif
53 ifeq ($(findstring verbose,$(HELIX)), verbose) 74 ifneq ($(filter verbose,$(helix_option)),)
54 SHOW_VERBOSE_INFO = yes 75 SHOW_VERBOSE_INFO = yes
55 endif 76 endif
56 SHOW_HELIX_OPTIONS = yes 77 SHOW_HELIX_OPTIONS = yes
@@ -120,7 +141,8 @@ ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
120 $(info -- OLED_DRIVER_ENABLE = $(OLED_DRIVER_ENABLE)) 141 $(info -- OLED_DRIVER_ENABLE = $(OLED_DRIVER_ENABLE))
121 $(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE)) 142 $(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
122 $(info -- OPT_DEFS = $(OPT_DEFS)) 143 $(info -- OPT_DEFS = $(OPT_DEFS))
123 $(info -- LTO_ENABLE = $(LTO_ENABLE)) 144 $(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
145 $(info -- LTO_ENABLE = $(LTO_ENABLE))
124 $(info ) 146 $(info )
125 endif 147 endif
126endif 148endif
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 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
23// place overrides here
24
25#ifdef AUDIO_ENABLE
26 #define STARTUP_SONG SONG(STARTUP_SOUND)
27 #define AUDIO_CLICKY
28#endif
29
30// If you need more program area, try select and reduce rgblight modes to use.
31
32// Selection of RGBLIGHT MODE to use.
33#if defined(LED_ANIMATIONS)
34 #define RGBLIGHT_EFFECT_BREATHING
35 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
36 #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
37 #define RGBLIGHT_EFFECT_SNAKE
38 #define RGBLIGHT_EFFECT_KNIGHT
39 #define RGBLIGHT_EFFECT_CHRISTMAS
40 #define RGBLIGHT_EFFECT_STATIC_GRADIENT
41 //#define RGBLIGHT_EFFECT_RGB_TEST
42 //#define RGBLIGHT_EFFECT_ALTERNATING
43#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 @@
1EXTRAKEY_ENABLE = yes # Audio control and System control
2AUDIO_ENABLE = yes # Audio output on port B5
3
4include $(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 @@
1LED_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 @@
1SPLIT_KEYBOARD = yes 1SPLIT_KEYBOARD = yes
2LED_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 @@
1LED_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 @@
1OLED_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`
112# you can uncomment and edit follows 7 Variables 112# you can uncomment and edit follows 7 Variables
113# jp: 以下ã®7ã¤ã®å¤‰æ•°ã‚’å¿…è¦ã«å¿œã˜ã¦ç·¨é›†ã—ã€ã‚³ãƒ¡ãƒ³ãƒˆã‚¢ã‚¦ãƒˆã‚’ã¯ãšã—ã¾ã™ã€‚ 113# jp: 以下ã®7ã¤ã®å¤‰æ•°ã‚’å¿…è¦ã«å¿œã˜ã¦ç·¨é›†ã—ã€ã‚³ãƒ¡ãƒ³ãƒˆã‚¢ã‚¦ãƒˆã‚’ã¯ãšã—ã¾ã™ã€‚
114# HELIX_ROWS = 5 # Helix Rows is 4 or 5 114# HELIX_ROWS = 5 # Helix Rows is 4 or 5
115# OLED_ENABLE = no # OLED_ENABLE 115# OLED_ENABLE = yes # OLED_ENABLE
116# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" 116# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
117# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) 117# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
118# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) 118# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
@@ -128,35 +128,25 @@ $ cd qmk_firmware
128 128
129build 129build
130``` 130```
131$ make helix:default 131$ make helix:default # with oled
132$ make helix/rev2/back:default # with backlight 132$ make helix/rev2/back:default # with oled and backlight
133$ make HELIX=no_ani helix/rev2/back:default # with backlight without animation 133$ make HELIX=no-ani helix/rev2/back:default # with oled and backlight without animation
134$ make helix/rev2/under:default # with underglow 134$ make helix/rev2/under:default # with oled and underglow
135$ make helix/rev2/oled:default # with oled 135$ make HELIX=no-oled helix:default # without oled
136$ make helix/rev2/oled/back:default # with oled and backlight
137$ make helix/rev2/oled/under:default # with oled and underglow
138``` 136```
139 137
140build (experimental use of split_common) 138build (experimental use of split_common with backlight and oled)
141``` 139```
142$ make helix/rev2/sc:default 140$ make helix/rev2/sc:default
143$ make helix/rev2/sc/back:default
144$ make helix/rev2/sc/under:default
145$ make helix/rev2/sc/oled:default
146$ make helix/rev2/sc/oledback:default
147$ make helix/rev2/sc/oledunder:default
148``` 141```
149 142
150flash to keyboard 143flash to keyboard
151``` 144```
152$ make helix:default:flash 145$ make helix:default:flash # with oled
153$ make helix/rev2/back:default:flash # with backlight 146$ make helix/rev2/back:default:flash # with oled and backlight
154$ make HELIX=no_ani helix/rev2/back:default:flash # with backlight without animation 147$ make HELIX=no-ani helix/rev2/back:default:flash # with oled and backlight without animation
155$ make helix/rev2/under:default:flash # with underglow 148$ make helix/rev2/under:default:flash # with oled and underglow
156$ make helix/rev2/oled:default:flash # with oled 149$ make HELIX=no-oled helix:default:flash # without oled
157$ make helix/rev2/oled/back:default:flash # with oled and backlight
158$ make helix/rev2/oled/under:default:flash # with oled and underglow
159
160``` 150```
161 151
162## Link 152## 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 ã‚’ã¤ã‘ãŸå ´åˆã¯ã€
30# you can uncomment and edit follows 7 Variables 30# you can uncomment and edit follows 7 Variables
31# jp: 以下ã®7ã¤ã®å¤‰æ•°ã‚’å¿…è¦ã«å¿œã˜ã¦ç·¨é›†ã—ã€ã‚³ãƒ¡ãƒ³ãƒˆã‚¢ã‚¦ãƒˆã‚’ã¯ãšã—ã¾ã™ã€‚ 31# jp: 以下ã®7ã¤ã®å¤‰æ•°ã‚’å¿…è¦ã«å¿œã˜ã¦ç·¨é›†ã—ã€ã‚³ãƒ¡ãƒ³ãƒˆã‚¢ã‚¦ãƒˆã‚’ã¯ãšã—ã¾ã™ã€‚
32# HELIX_ROWS = 5 # Helix Rows is 4 or 5 32# HELIX_ROWS = 5 # Helix Rows is 4 or 5
33# OLED_ENABLE = no # OLED_ENABLE 33# OLED_ENABLE = yes # OLED_ENABLE
34# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" 34# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
35# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) 35# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
36# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) 36# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
@@ -61,11 +61,12 @@ rules.mk ã®ä¸‹è¨˜ã®éƒ¨åˆ†ã‚’編集ã—㦠no ã‚’ yes ã«å¤‰æ›´ã—ã¦ãã ã•ã
61LED_UNDERGLOW_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.) 61LED_UNDERGLOW_ENABLE = yes # LED underglow (Enable WS2812 RGB underlight.)
62``` 62```
63 63
64## OLEDを有効ã«ã™ã‚‹ 64## OLEDを無効ã«ã™ã‚‹
65 65
66rules.mk ã®ä¸‹è¨˜ã®éƒ¨åˆ†ã‚’編集ã—㦠no ã‚’ yes ã«å¤‰æ›´ã—ã¦ãã ã•ã„。 66OLED ã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§æœ‰åйã«ãªã£ã¦ã„ã¾ã™ã€‚
67無効ã«ã—ãŸã„ã¨ã㯠rules.mk ã®ä¸‹è¨˜ã®éƒ¨åˆ†ã‚’編集ã—㦠yes ã‚’ no ã«å¤‰æ›´ã—ã¦ãã ã•ã„。
67``` 68```
68OLED_ENABLE = yes # OLED_ENABLE 69OLED_ENABLE = no # OLED_ENABLE
69``` 70```
70 71
71## iPad/iPhoneサãƒãƒ¼ãƒˆã‚’有効ã«ã™ã‚‹ã€‚ 72## iPad/iPhoneサãƒãƒ¼ãƒˆã‚’有効ã«ã™ã‚‹ã€‚
@@ -104,9 +105,9 @@ $ make helix:default:clean
104 105
105上記ã®ã€rules.mk ã«ã‚ˆã‚‹ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºé …ç›®ã®ä¸€éƒ¨ã¯ä¸‹è¨˜ã®ã‚ˆã†ã«ã‚³ãƒžãƒ³ãƒ‰ä¸Šã§ç›´æŽ¥æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚ 106上記ã®ã€rules.mk ã«ã‚ˆã‚‹ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºé …ç›®ã®ä¸€éƒ¨ã¯ä¸‹è¨˜ã®ã‚ˆã†ã«ã‚³ãƒžãƒ³ãƒ‰ä¸Šã§ç›´æŽ¥æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚
106 107
107OLED を有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸ã®æ›¸ã込む。 108OLED を無効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸ã®æ›¸ã込む。
108``` 109```
109$ make helix/rev2/oled:default:flash 110$ make HELIX=no-oled helix/rev2:default:flash
110``` 111```
111 112
112RGB ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆã‚’有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ã込む。 113RGB ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆã‚’有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ã込む。
@@ -119,14 +120,14 @@ RGB Underglow を有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ãè¾¼
119$ make helix/rev2/under:default:flash 120$ make helix/rev2/under:default:flash
120``` 121```
121 122
122OLED ã¨RGB ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆã‚’有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ã込む。 123OLED を無効ã«ã—ã¦ã€RGB ãƒãƒƒã‚¯ãƒ©ã‚¤ãƒˆã‚’有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ã込む。
123``` 124```
124$ make helix/rev2/oled/back:default:flash 125$ make HELIX=no-oled helix/rev2/back:default:flash
125``` 126```
126 127
127OLED ã¨RGB Underglowを有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ã込む。 128OLED を無効ã«ã—ã¦ã€RGB Underglowを有効ã«ã—ã¦ã‚³ãƒ³ãƒ‘イルã—ã¦ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¸æ›¸ã込む。
128``` 129```
129$ make helix/rev2/oled/under:default:flash 130$ make HELIX=no-oled helix/rev2/under:default:flash
130``` 131```
131 132
132## リンク 133## リンク
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
14OLED_ENABLE = yes # OLED_ENABLE 14OLED_ENABLE = yes # OLED_ENABLE
15# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" 15# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
16LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.) 16LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.)
17# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) 17LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
18LED_ANIMATIONS = yes # LED animations 18LED_ANIMATIONS = yes # LED animations
19# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone) 19# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
20 20
21SRC += led_test_init.c 21SRC += 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\"
11OPT_DEFS += -DOLED_90ROTATION 11OPT_DEFS += -DOLED_90ROTATION
12 12
13SPLIT_KEYBOARD = yes 13SPLIT_KEYBOARD = yes
14
15# Explicitly disable helix standard post-processing
16KEYBOARD_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 @@
5# combinations of standard options) into QMK standard options. 5# combinations of standard options) into QMK standard options.
6# 6#
7 7
8KEYBOARD_LOCAL_FEATURES_MK :=
9
8define HELIX_CUSTOMISE_MSG 10define HELIX_CUSTOMISE_MSG
9 $(info Helix Spacific Build Options) 11 $(info Helix Spacific Build Options)
10 $(info - OLED_ENABLE = $(OLED_ENABLE)) 12 $(info - OLED_ENABLE = $(OLED_ENABLE))
@@ -15,42 +17,79 @@ define HELIX_CUSTOMISE_MSG
15 $(info ) 17 $(info )
16endef 18endef
17 19
20define HELIX_HELP_MSG
21 $(info Helix keyboard convenient command line option)
22 $(info - make HELIX=<options> helix:<keymap>)
23 $(info - option= oled | no-oled | back | no-back | under | na | no-ani)
24 $(info - ios | sc | split-common | scan | verbose)
25 $(info - ex.)
26 $(info - make HELIX=no-oled helix:<keymap>)
27 $(info - make HELIX=oled,no-back helix:<keymap>)
28 $(info - make HELIX=oled,under helix:<keymap>)
29 $(info - make HELIX=oled,back,na helix:<keymap>)
30 $(info - make HELIX=oled,back,ios helix:<keymap>)
31 $(info )
32endef
33
18 ifneq ($(strip $(HELIX)),) 34 ifneq ($(strip $(HELIX)),)
19 ### Helix keyboard keymap: convenient command line option 35 COMMA=,
20 ## make HELIX=<options> helix:<keymap> 36 helix_option := $(subst $(COMMA), , $(HELIX))
21 ## option= oled | back | under | na | ios 37 ifneq ($(filter help,$(helix_option)),)
22 ## ex. 38 $(eval $(call HELIX_HELP_MSG))
23 ## make HELIX=oled helix:<keymap> 39 $(error )
24 ## make HELIX=oled,back helix:<keymap> 40 endif
25 ## make HELIX=oled,under helix:<keymap> 41 ifneq ($(filter nooled,$(helix_option)),)
26 ## make HELIX=oled,back,na helix:<keymap> 42 OLED_ENABLE = no
27 ## make HELIX=oled,back,ios helix:<keymap> 43 else ifneq ($(filter no-oled,$(helix_option)),)
28 ## 44 OLED_ENABLE = no
29 ifeq ($(findstring oled,$(HELIX)), oled) 45 else ifneq ($(filter oled,$(helix_option)),)
30 OLED_ENABLE = yes 46 OLED_ENABLE = yes
31 endif 47 endif
32 ifeq ($(findstring back,$(HELIX)), back) 48 ifneq ($(filter noback,$(helix_option)),)
49 LED_BACK_ENABLE = no
50 LED_UNDERGLOW_ENABLE = no
51 else ifneq ($(filter no-back,$(helix_option)),)
52 LED_BACK_ENABLE = no
53 LED_UNDERGLOW_ENABLE = no
54 else ifneq ($(filter nounder,$(helix_option)),)
55 LED_BACK_ENABLE = no
56 LED_UNDERGLOW_ENABLE = no
57 else ifneq ($(filter no-under,$(helix_option)),)
58 LED_BACK_ENABLE = no
59 LED_UNDERGLOW_ENABLE = no
60 else ifneq ($(filter back,$(helix_option)),)
33 LED_BACK_ENABLE = yes 61 LED_BACK_ENABLE = yes
34 else ifeq ($(findstring under,$(HELIX)), under) 62 LED_UNDERGLOW_ENABLE = no
63 else ifneq ($(filter under,$(helix_option)),)
64 LED_BACK_ENABLE = no
35 LED_UNDERGLOW_ENABLE = yes 65 LED_UNDERGLOW_ENABLE = yes
36 endif 66 endif
37 ifeq ($(findstring na,$(HELIX)), na) 67 ifneq ($(filter na,$(helix_option)),)
38 LED_ANIMATIONS = no 68 LED_ANIMATIONS = no
39 endif 69 endif
40 ifeq ($(findstring no_ani,$(HELIX)), no_ani) 70 ifneq ($(filter no_ani,$(helix_option)),)
41 LED_ANIMATIONS = no 71 LED_ANIMATIONS = no
42 endif 72 endif
43 ifeq ($(findstring ios,$(HELIX)), ios) 73 ifneq ($(filter no-ani,$(helix_option)),)
74 LED_ANIMATIONS = no
75 endif
76 ifneq ($(filter ios,$(helix_option)),)
44 IOS_DEVICE_ENABLE = yes 77 IOS_DEVICE_ENABLE = yes
45 endif 78 endif
46 ifeq ($(findstring scan,$(HELIX)), scan) 79 ifneq ($(filter sc,$(helix_option)),)
80 SPLIT_KEYBOARD = yes
81 endif
82 ifneq ($(filter split-common,$(helix_option)),)
83 SPLIT_KEYBOARD = yes
84 endif
85 ifneq ($(filter scan,$(helix_option)),)
47 # use DEBUG_MATRIX_SCAN_RATE 86 # use DEBUG_MATRIX_SCAN_RATE
48 # see docs/newbs_testing_debugging.md 87 # see docs/newbs_testing_debugging.md
49 OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE 88 OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE
50 CONSOLE_ENABLE = yes 89 CONSOLE_ENABLE = yes
51 SHOW_VERBOSE_INFO = yes 90 SHOW_VERBOSE_INFO = yes
52 endif 91 endif
53 ifeq ($(findstring verbose,$(HELIX)), verbose) 92 ifeq ($(filter verbose,$(helix_option)), verbose)
54 SHOW_VERBOSE_INFO = yes 93 SHOW_VERBOSE_INFO = yes
55 endif 94 endif
56 SHOW_HELIX_OPTIONS = yes 95 SHOW_HELIX_OPTIONS = yes
@@ -119,7 +158,8 @@ ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
119 $(info -- OLED_DRIVER_ENABLE = $(OLED_DRIVER_ENABLE)) 158 $(info -- OLED_DRIVER_ENABLE = $(OLED_DRIVER_ENABLE))
120 $(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE)) 159 $(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
121 $(info -- OPT_DEFS = $(OPT_DEFS)) 160 $(info -- OPT_DEFS = $(OPT_DEFS))
122 $(info -- LTO_ENABLE = $(LTO_ENABLE)) 161 $(info -- SPLIT_KEYBOARD = $(SPLIT_KEYBOARD))
162 $(info -- LTO_ENABLE = $(LTO_ENABLE))
123 $(info ) 163 $(info )
124 endif 164 endif
125endif 165endif
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 @@
1LED_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 @@
1OLED_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 @@
1LED_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 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
22
23// place overrides here
24
25// If you need more program area, try select and reduce rgblight modes to use.
26
27// Selection of RGBLIGHT MODE to use.
28#if defined(LED_ANIMATIONS)
29 #define RGBLIGHT_EFFECT_BREATHING
30 #define RGBLIGHT_EFFECT_RAINBOW_MOOD
31 #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
32 #define RGBLIGHT_EFFECT_SNAKE
33 #define RGBLIGHT_EFFECT_KNIGHT
34 #define RGBLIGHT_EFFECT_CHRISTMAS
35 #define RGBLIGHT_EFFECT_STATIC_GRADIENT
36 //#define RGBLIGHT_EFFECT_RGB_TEST
37 //#define RGBLIGHT_EFFECT_ALTERNATING
38#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 @@
1LED_BACK_ENABLE = yes # LED backlight (Enable WS2812 RGB underlight.)
2LED_ANIMATIONS = yes # LED animations
3
4include $(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.
2 2
3# Helix Spacific Build Options default values 3# Helix Spacific Build Options default values
4HELIX_ROWS = 5 # Helix Rows is 4 or 5 4HELIX_ROWS = 5 # Helix Rows is 4 or 5
5OLED_ENABLE = no # OLED_ENABLE 5OLED_ENABLE = yes # OLED_ENABLE
6LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c" 6LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
7LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.) 7LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
8LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.) 8LED_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 @@
1LED_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 @@
1OLED_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 @@
1OLED_ENABLE = yes
2LED_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 @@
1OLED_ENABLE = yes
2LED_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 @@
1SPLIT_KEYBOARD = yes 1SPLIT_KEYBOARD = yes
2LED_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 @@
1LED_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 @@
1OLED_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 @@
1EXTRAKEY_ENABLE = yes # Audio control and System control 1EXTRAKEY_ENABLE = yes # Audio control and System control
2RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 2RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
3SPLIT_KEYBOARD = yes 3SPLIT_KEYBOARD = yes
4#RGB_MATRIX_ENABLE = WS2812 4RGB_MATRIX_ENABLE = no
5RGB_MATRIX_DRIVER = WS2812
5OLED_DRIVER_ENABLE = yes 6OLED_DRIVER_ENABLE = yes
6ENCODER_ENABLE = yes 7ENCODER_ENABLE = yes
7DIP_SWITCH_ENABLE = yes 8DIP_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 @@
1EXTRAKEY_ENABLE = yes # Audio control and System control 1EXTRAKEY_ENABLE = yes # Audio control and System control
2RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 2RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
3SPLIT_KEYBOARD = yes 3SPLIT_KEYBOARD = yes
4#RGB_MATRIX_ENABLE = WS2812 4RGB_MATRIX_ENABLE = no
5RGB_MATRIX_DRIVER = WS2812
5OLED_DRIVER_ENABLE = yes 6OLED_DRIVER_ENABLE = yes
6ENCODER_ENABLE = yes 7ENCODER_ENABLE = yes
7DIP_SWITCH_ENABLE = yes 8DIP_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
35AUDIO_ENABLE = no # Audio output on port C6 35AUDIO_ENABLE = no # Audio output on port C6
36FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 36FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
37RGB_MATRIX_ENABLE = yes # Use RGB matrix 37RGB_MATRIX_ENABLE = yes # Use RGB matrix
38RGB_MATRIX_DRIVER = IS31FL3731
38RAW_ENABLE = yes 39RAW_ENABLE = yes
39 40
40LAYOUTS = 60_ansi 60_iso 41LAYOUTS = 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35# partially generated by KBFirmware JSON to QMK Parser 34# partially generated by KBFirmware JSON to QMK Parser
36# https://noroadsleft.github.io/kbf_qmk_converter/ 35# 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/>.
189/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 189/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
190//#define MIDI_TONE_KEYCODE_OCTAVES 1 190//#define MIDI_TONE_KEYCODE_OCTAVES 1
191 191
192/*
193 * HD44780 LCD Display Configuration
194 */
195/*
196#define LCD_LINES 2 //< number of visible lines of the display
197#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
198
199#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
200
201#if LCD_IO_MODE
202#define LCD_PORT PORTB //< port for the LCD lines
203#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
204#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
205#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
206#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
207#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
208#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
209#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
210#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
211#define LCD_RS_PORT LCD_PORT //< port for RS line
212#define LCD_RS_PIN 3 //< pin for RS line
213#define LCD_RW_PORT LCD_PORT //< port for RW line
214#define LCD_RW_PIN 2 //< pin for RW line
215#define LCD_E_PORT LCD_PORT //< port for Enable line
216#define LCD_E_PIN 1 //< pin for Enable line
217#endif
218*/
219
220/* Bootmagic Lite key configuration */ 192/* Bootmagic Lite key configuration */
221// #define BOOTMAGIC_LITE_ROW 0 193// #define BOOTMAGIC_LITE_ROW 0
222// #define BOOTMAGIC_LITE_COLUMN 0 194// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34EXTRAFLAGS += -flto # Use link time optimization 33EXTRAFLAGS += -flto # Use link time optimization
35 34
36LAYOUTS = ortho_5x15 35LAYOUTS = 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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
18NKRO_ENABLE = yes # USB Nkey Rollover 18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21RGB_MATRIX_ENABLE = yes # Use RGB per key light 21RGB_MATRIX_ENABLE = yes # Use RGB matrix
22RGB_MATRIX_DRIVER = IS31FL3731
22BLUETOOTH_ENABLE = no # Enable Bluetooth 23BLUETOOTH_ENABLE = no # Enable Bluetooth
23AUDIO_ENABLE = no # Audio output 24AUDIO_ENABLE = no # Audio output
24 25
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
18NKRO_ENABLE = yes # USB Nkey Rollover 18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21RGB_MATRIX_ENABLE = yes # Use RGB per key light 21RGB_MATRIX_ENABLE = yes # Use RGB matrix
22RGB_MATRIX_DRIVER = IS31FL3731
22 23
23LTO_ENABLE = yes # Reducing firmware size 24LTO_ENABLE = yes # Reducing firmware size
24 25
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 @@
1/* 1/*
2Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2019 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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/>.
23#define VENDOR_ID 0x4705 23#define VENDOR_ID 0x4705
24#define PRODUCT_ID 0x0143 24#define PRODUCT_ID 0x0143
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER Maartenwut 26#define MANUFACTURER Evyd13
27#define PRODUCT J-01 27#define PRODUCT J-01
28#define DESCRIPTION A custom 65%ish keyboard 28#define DESCRIPTION A custom 65%ish keyboard
29 29
@@ -191,34 +191,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
191/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 191/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
192//#define MIDI_TONE_KEYCODE_OCTAVES 1 192//#define MIDI_TONE_KEYCODE_OCTAVES 1
193 193
194/*
195 * HD44780 LCD Display Configuration
196 */
197/*
198#define LCD_LINES 2 //< number of visible lines of the display
199#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
200
201#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
202
203#if LCD_IO_MODE
204#define LCD_PORT PORTB //< port for the LCD lines
205#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
206#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
207#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
208#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
209#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
210#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
211#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
212#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
213#define LCD_RS_PORT LCD_PORT //< port for RS line
214#define LCD_RS_PIN 3 //< pin for RS line
215#define LCD_RW_PORT LCD_PORT //< port for RW line
216#define LCD_RW_PIN 2 //< pin for RW line
217#define LCD_E_PORT LCD_PORT //< port for Enable line
218#define LCD_E_PIN 1 //< pin for Enable line
219#endif
220*/
221
222/* Bootmagic Lite key configuration */ 194/* Bootmagic Lite key configuration */
223#define BOOTMAGIC_LITE_ROW 0 195#define BOOTMAGIC_LITE_ROW 0
224#define BOOTMAGIC_LITE_COLUMN 2 196#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 @@
1/* Copyright Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
2 2
3A 65% with the arrow keys and right most column exploded away, with macro keys on the left hand side. Only 15 manufactured. 3A 65% with the arrow keys and right most column exploded away, with macro keys on the left hand side. Only 15 manufactured.
4 4
5* Keyboard Maintainer: [Maartenwut](https://github.com/maartenwut) 5* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
6* Hardware Supported: J-01 PCB 6* Hardware Supported: J-01 PCB
7* Hardware Availability: Private Group Buy and [Charity Raffle](https://novelkeys.xyz/collections/frontpage/products/j-01-raffle-ticket) 7* Hardware Availability: Private Group Buy and [Charity Raffle](https://novelkeys.xyz/collections/frontpage/products/j-01-raffle-ticket)
8 8
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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
22BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 22BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
23AUDIO_ENABLE = no # Audio output on port C6 23AUDIO_ENABLE = no # Audio output on port C6
24FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 24FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
25HD44780_ENABLE = no # Enable support for HD44780 based LCDs
26UNICODE_ENABLE = no # Unicode 25UNICODE_ENABLE = no # Unicode
27 26
28SPLIT_KEYBOARD = yes 27SPLIT_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
13BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 13BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
14AUDIO_ENABLE = no # Audio output on port C6 14AUDIO_ENABLE = no # Audio output on port C6
15FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 15FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
16HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
17 16
18TAP_DANCE_ENABLE = yes 17TAP_DANCE_ENABLE = yes
19 18
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
31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
32AUDIO_ENABLE = no # Audio output on port C6 32AUDIO_ENABLE = no # Audio output on port C6
33FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 33FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
34HD44780_ENABLE = no # Enable support for HD44780 based LCDs
35 34
36LAYOUTS = ortho_4x12 planck_mit 35LAYOUTS = 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
31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
32AUDIO_ENABLE = no # Audio output on port C6 32AUDIO_ENABLE = no # Audio output on port C6
33FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 33FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
34HD44780_ENABLE = no # Enable support for HD44780 based LCDs
35 34
36LAYOUTS = ortho_4x4 35LAYOUTS = 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = ortho_5x12 ortho_4x12 34LAYOUTS = ortho_5x12 ortho_4x12
36LAYOUTS_HAS_RGB = no 35LAYOUTS_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
32BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 32BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
33AUDIO_ENABLE = no # Audio output on port C6 33AUDIO_ENABLE = no # Audio output on port C6
34FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 34FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
35HD44780_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
26RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 26RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
27BLUETOOTH_ENABLE = no # Enable Bluetooth 27BLUETOOTH_ENABLE = no # Enable Bluetooth
28AUDIO_ENABLE = no # Audio output 28AUDIO_ENABLE = no # Audio output
29RGB_MATRIX_ENABLE = no
30RGB_MATRIX_DRIVER = IS31FL3733
29 31
30LAYOUTS = tkl_ansi 32LAYOUTS = tkl_ansi
31 33
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/>.
184/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 184/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
185//#define MIDI_TONE_KEYCODE_OCTAVES 1 185//#define MIDI_TONE_KEYCODE_OCTAVES 1
186 186
187/*
188 * HD44780 LCD Display Configuration
189 */
190/*
191#define LCD_LINES 2 //< number of visible lines of the display
192#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
193
194#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
195
196#if LCD_IO_MODE
197#define LCD_PORT PORTB //< port for the LCD lines
198#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
199#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
200#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
201#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
202#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
203#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
204#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
205#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
206#define LCD_RS_PORT LCD_PORT //< port for RS line
207#define LCD_RS_PIN 3 //< pin for RS line
208#define LCD_RW_PORT LCD_PORT //< port for RW line
209#define LCD_RW_PIN 2 //< pin for RW line
210#define LCD_E_PORT LCD_PORT //< port for Enable line
211#define LCD_E_PIN 1 //< pin for Enable line
212#endif
213*/
214
215/* Bootmagic Lite key configuration */ 187/* Bootmagic Lite key configuration */
216// #define BOOTMAGIC_LITE_ROW 0 188// #define BOOTMAGIC_LITE_ROW 0
217// #define BOOTMAGIC_LITE_COLUMN 0 189// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35RGBLIGHT_ENABLE = yes 34RGBLIGHT_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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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/>.
194/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 194/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
195//#define MIDI_TONE_KEYCODE_OCTAVES 1 195//#define MIDI_TONE_KEYCODE_OCTAVES 1
196 196
197/*
198 * HD44780 LCD Display Configuration
199 */
200/*
201#define LCD_LINES 2 //< number of visible lines of the display
202#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
203
204#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
205
206#if LCD_IO_MODE
207#define LCD_PORT PORTB //< port for the LCD lines
208#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
209#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
210#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
211#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
212#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
213#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
214#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
215#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
216#define LCD_RS_PORT LCD_PORT //< port for RS line
217#define LCD_RS_PIN 3 //< pin for RS line
218#define LCD_RW_PORT LCD_PORT //< port for RW line
219#define LCD_RW_PIN 2 //< pin for RW line
220#define LCD_E_PORT LCD_PORT //< port for Enable line
221#define LCD_E_PIN 1 //< pin for Enable line
222#endif
223*/
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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
190/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 190/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
191//#define MIDI_TONE_KEYCODE_OCTAVES 1 191//#define MIDI_TONE_KEYCODE_OCTAVES 1
192 192
193/*
194 * HD44780 LCD Display Configuration
195 */
196/*
197#define LCD_LINES 2 //< number of visible lines of the display
198#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
199
200#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
201
202#if LCD_IO_MODE
203#define LCD_PORT PORTB //< port for the LCD lines
204#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
205#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
206#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
207#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
208#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
209#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
210#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
211#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
212#define LCD_RS_PORT LCD_PORT //< port for RS line
213#define LCD_RS_PIN 3 //< pin for RS line
214#define LCD_RW_PORT LCD_PORT //< port for RW line
215#define LCD_RW_PIN 2 //< pin for RW line
216#define LCD_E_PORT LCD_PORT //< port for Enable line
217#define LCD_E_PIN 1 //< pin for Enable line
218#endif
219*/
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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = ortho_4x12 planck_mit 34LAYOUTS = 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 @@
1#include QMK_KEYBOARD_H
2
3#define _MA 0
4#define _GA 1
5#define _FL 2
6#define _AR 3
7
8#define TRNS KC_TRNS
9#define ______ KC_NO
10#define trigger_time 400
11
12#define LSHIFT OSM(MOD_LSFT)
13#define SPACE LT(_AR, KC_SPC)
14
15const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16// Main Layer
17[_MA] = LAYOUT_all(
18 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,
19 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,
20 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,
21 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,
22 KC_LCTL, KC_LGUI, KC_LALT, SPACE, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
23
24//Function Layer
25[_FL] = LAYOUT_all(
26 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,
27 TRNS, ______, ______, ______, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______,
28 TRNS, ______, ______, ______, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
29 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, TRNS, KC_PGUP,
30 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______, KC_PGDN, ______),
31
32//Arrow keys layer (space bar)
33[_AR] = LAYOUT_all(
34 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,
35 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
36 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
37 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
38 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
39
40//Game layer (fn + g)
41[_GA] = LAYOUT_all(
42 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
43 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
44 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
45 KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
46 TRNS, TRNS, TRNS, KC_SPC, KC_SPC, TRNS, TRNS, MO(_FL), TRNS, TRNS, TRNS),
47};
48
49void matrix_init_user() {
50 //Set led port to output
51 DDRB |= (1<<2);
52}
53
54void led_set_user(uint8_t usb_led) {
55 if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
56 // Turn capslock on
57 PORTB &= ~(1<<2);
58 } else {
59 // Turn capslock off
60 PORTB |= (1<<2);
61 }
62}
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 @@
1# Maartenwut's KBD66 layout
2
3This 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/>.
209/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 209/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
210//#define MIDI_TONE_KEYCODE_OCTAVES 1 210//#define MIDI_TONE_KEYCODE_OCTAVES 1
211 211
212/*
213 * HD44780 LCD Display Configuration
214 */
215/*
216#define LCD_LINES 2 //< number of visible lines of the display
217#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
218
219#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
220
221#if LCD_IO_MODE
222#define LCD_PORT PORTB //< port for the LCD lines
223#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
224#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
225#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
226#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
227#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
228#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
229#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
230#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
231#define LCD_RS_PORT LCD_PORT //< port for RS line
232#define LCD_RS_PIN 3 //< pin for RS line
233#define LCD_RW_PORT LCD_PORT //< port for RW line
234#define LCD_RW_PIN 2 //< pin for RW line
235#define LCD_E_PORT LCD_PORT //< port for Enable line
236#define LCD_E_PIN 1 //< pin for Enable line
237#endif
238*/
239
240/* Bootmagic Lite key configuration */ 212/* Bootmagic Lite key configuration */
241// #define BOOTMAGIC_LITE_ROW 0 213// #define BOOTMAGIC_LITE_ROW 0
242// #define BOOTMAGIC_LITE_COLUMN 0 214// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = 65_ansi_blocker_split_bs 34LAYOUTS = 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = 65_ansi_blocker 65_ansi_blocker_split_bs 65_iso_blocker 65_iso_blocker_split_bs \ No newline at end of file 34LAYOUTS = 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
9COMMAND_ENABLE = no # Commands for debug and configuration 9COMMAND_ENABLE = no # Commands for debug and configuration
10NKRO_ENABLE = yes # USB Nkey Rollover 10NKRO_ENABLE = yes # USB Nkey Rollover
11AUDIO_ENABLE = no 11AUDIO_ENABLE = no
12RGB_MATRIX_ENABLE = yes # Use RGB matrix 12RGB_MATRIX_ENABLE = yes # Use RGB matrix
13RGB_MATRIX_DRIVER = IS31FL3731
13 14
14LAYOUTS = 65_ansi_blocker 15LAYOUTS = 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
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32RGB_MATRIX_ENABLE = yes # Use RGB matrix 32RGB_MATRIX_ENABLE = yes # Use RGB matrix
33RGB_MATRIX_DRIVER = IS31FL3731
33NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 34NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
34 35
35LAYOUTS = 65_ansi_blocker 36LAYOUTS = 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/>.
206/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 206/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
207//#define MIDI_TONE_KEYCODE_OCTAVES 1 207//#define MIDI_TONE_KEYCODE_OCTAVES 1
208 208
209/*
210 * HD44780 LCD Display Configuration
211 */
212/*
213#define LCD_LINES 2 //< number of visible lines of the display
214#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
215
216#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
217
218#if LCD_IO_MODE
219#define LCD_PORT PORTB //< port for the LCD lines
220#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
221#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
222#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
223#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
224#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
225#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
226#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
227#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
228#define LCD_RS_PORT LCD_PORT //< port for RS line
229#define LCD_RS_PIN 3 //< pin for RS line
230#define LCD_RW_PORT LCD_PORT //< port for RW line
231#define LCD_RW_PIN 2 //< pin for RW line
232#define LCD_E_PORT LCD_PORT //< port for Enable line
233#define LCD_E_PIN 1 //< pin for Enable line
234#endif
235*/
236
237/* Bootmagic Lite key configuration */ 209/* Bootmagic Lite key configuration */
238// #define BOOTMAGIC_LITE_ROW 0 210// #define BOOTMAGIC_LITE_ROW 0
239// #define BOOTMAGIC_LITE_COLUMN 0 211// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = 65_ansi 34LAYOUTS = 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
14BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 14BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
15AUDIO_ENABLE = no # Audio output on port C6 15AUDIO_ENABLE = no # Audio output on port C6
16FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 16FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
17HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
18 17
19# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 18# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
20SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend \ No newline at end of file 19SLEEP_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = 65_ansi 65_iso 65_ansi_blocker 65_ansi_blocker_split_bs 34LAYOUTS = 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/>.
193/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 193/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
194//#define MIDI_TONE_KEYCODE_OCTAVES 1 194//#define MIDI_TONE_KEYCODE_OCTAVES 1
195 195
196/*
197 * HD44780 LCD Display Configuration
198 */
199/*
200#define LCD_LINES 2 //< number of visible lines of the display
201#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
202
203#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
204
205#if LCD_IO_MODE
206#define LCD_PORT PORTB //< port for the LCD lines
207#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
208#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
209#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
210#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
211#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
212#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
213#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
214#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
215#define LCD_RS_PORT LCD_PORT //< port for RS line
216#define LCD_RS_PIN 3 //< pin for RS line
217#define LCD_RW_PORT LCD_PORT //< port for RW line
218#define LCD_RW_PIN 2 //< pin for RW line
219#define LCD_E_PORT LCD_PORT //< port for Enable line
220#define LCD_E_PIN 1 //< pin for Enable line
221#endif
222*/
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
14RGBLIGHT_ENABLE = yes 14RGBLIGHT_ENABLE = yes
15AUDIO_ENABLE = no # Audio output on port C6 15AUDIO_ENABLE = no # Audio output on port C6
16FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 16FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
17HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
18TAP_DANCE_ENABLE=yes 17TAP_DANCE_ENABLE=yes
19 18
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
30RGBLIGHT_ENABLE = yes 30RGBLIGHT_ENABLE = yes
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = tkl_ansi tkl_iso 34LAYOUTS = 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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix 32RGB_MATRIX_ENABLE = yes # Use RGB matrix
33RGB_MATRIX_DRIVER = IS31FL3733
33NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 34NO_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/>.
217/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 217/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
218//#define MIDI_TONE_KEYCODE_OCTAVES 1 218//#define MIDI_TONE_KEYCODE_OCTAVES 1
219 219
220/*
221 * HD44780 LCD Display Configuration
222 */
223/*
224#define LCD_LINES 2 //< number of visible lines of the display
225#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
226
227#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
228
229#if LCD_IO_MODE
230#define LCD_PORT PORTB //< port for the LCD lines
231#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
232#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
233#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
234#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
235#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
236#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
237#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
238#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
239#define LCD_RS_PORT LCD_PORT //< port for RS line
240#define LCD_RS_PIN 3 //< pin for RS line
241#define LCD_RW_PORT LCD_PORT //< port for RW line
242#define LCD_RW_PIN 2 //< pin for RW line
243#define LCD_E_PORT LCD_PORT //< port for Enable line
244#define LCD_E_PIN 1 //< pin for Enable line
245#endif
246*/
247
248/* Bootmagic Lite key configuration */ 220/* Bootmagic Lite key configuration */
249// #define BOOTMAGIC_LITE_ROW 0 221// #define BOOTMAGIC_LITE_ROW 0
250// #define BOOTMAGIC_LITE_COLUMN 0 222// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = ortho_6x4 34LAYOUTS = 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
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32RGB_MATRIX_ENABLE = yes # Use RGB matrix 32RGB_MATRIX_ENABLE = yes # Use RGB matrix
33RGB_MATRIX_DRIVER = IS31FL3731
33NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 34NO_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34ENCODER_ENABLE = yes \ No newline at end of file 33ENCODER_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
19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
20AUDIO_ENABLE = no # Audio output on port C6 20AUDIO_ENABLE = no # Audio output on port C6
21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
22HD44780_ENABLE = no # Enable support for HD44780 based LCDs
23ENCODER_ENABLE = yes 22ENCODER_ENABLE = yes
24RGB_MATRIX_ENABLE = WS2812 23RGB_MATRIX_ENABLE = yes
24RGB_MATRIX_DRIVER = WS2812
25 25
26# Enter lower-power sleep mode when on the ChibiOS idle thread 26# Enter lower-power sleep mode when on the ChibiOS idle thread
27OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE 27OPT_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/>.
173/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 173/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
174//#define MIDI_TONE_KEYCODE_OCTAVES 1 174//#define MIDI_TONE_KEYCODE_OCTAVES 1
175 175
176/*
177 * HD44780 LCD Display Configuration
178 */
179/*
180#define LCD_LINES 2 //< number of visible lines of the display
181#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
182
183#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
184
185#if LCD_IO_MODE
186#define LCD_PORT PORTB //< port for the LCD lines
187#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
188#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
189#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
190#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
191#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
192#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
193#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
194#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
195#define LCD_RS_PORT LCD_PORT //< port for RS line
196#define LCD_RS_PIN 3 //< pin for RS line
197#define LCD_RW_PORT LCD_PORT //< port for RW line
198#define LCD_RW_PIN 2 //< pin for RW line
199#define LCD_E_PORT LCD_PORT //< port for Enable line
200#define LCD_E_PIN 1 //< pin for Enable line
201#endif
202*/
203
204/* Bootmagic Lite key configuration */ 176/* Bootmagic Lite key configuration */
205// #define BOOTMAGIC_LITE_ROW 0 177// #define BOOTMAGIC_LITE_ROW 0
206// #define BOOTMAGIC_LITE_COLUMN 0 178// #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
19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
20AUDIO_ENABLE = no # Audio output on port C6 20AUDIO_ENABLE = no # Audio output on port C6
21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
22HD44780_ENABLE = no # Enable support for HD44780 based LCDs
23 22
24LAYOUTS = ortho_5x4 numpad_5x4 23LAYOUTS = ortho_5x4 numpad_5x4
25 24
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/>.
200/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 200/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
201//#define MIDI_TONE_KEYCODE_OCTAVES 1 201//#define MIDI_TONE_KEYCODE_OCTAVES 1
202 202
203/*
204 * HD44780 LCD Display Configuration
205 */
206/*
207#define LCD_LINES 2 //< number of visible lines of the display
208#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
209
210#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
211
212#if LCD_IO_MODE
213#define LCD_PORT PORTB //< port for the LCD lines
214#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
215#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
216#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
217#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
218#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
219#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
220#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
221#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
222#define LCD_RS_PORT LCD_PORT //< port for RS line
223#define LCD_RS_PIN 3 //< pin for RS line
224#define LCD_RW_PORT LCD_PORT //< port for RW line
225#define LCD_RW_PIN 2 //< pin for RW line
226#define LCD_E_PORT LCD_PORT //< port for Enable line
227#define LCD_E_PIN 1 //< pin for Enable line
228#endif
229*/
230
231/* Bootmagic Lite key configuration */ 203/* Bootmagic Lite key configuration */
232// #define BOOTMAGIC_LITE_ROW 0 204// #define BOOTMAGIC_LITE_ROW 0
233// #define BOOTMAGIC_LITE_COLUMN 0 205// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
187/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 187/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
188//#define MIDI_TONE_KEYCODE_OCTAVES 1 188//#define MIDI_TONE_KEYCODE_OCTAVES 1
189 189
190/*
191 * HD44780 LCD Display Configuration
192 */
193/*
194#define LCD_LINES 2 //< number of visible lines of the display
195#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
196
197#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
198
199#if LCD_IO_MODE
200#define LCD_PORT PORTB //< port for the LCD lines
201#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
202#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
203#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
204#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
205#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
206#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
207#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
208#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
209#define LCD_RS_PORT LCD_PORT //< port for RS line
210#define LCD_RS_PIN 3 //< pin for RS line
211#define LCD_RW_PORT LCD_PORT //< port for RW line
212#define LCD_RW_PIN 2 //< pin for RW line
213#define LCD_E_PORT LCD_PORT //< port for Enable line
214#define LCD_E_PIN 1 //< pin for Enable line
215#endif
216*/
217
218/* Bootmagic Lite key configuration */ 190/* Bootmagic Lite key configuration */
219// #define BOOTMAGIC_LITE_ROW 0 191// #define BOOTMAGIC_LITE_ROW 0
220// #define BOOTMAGIC_LITE_COLUMN 0 192// #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 \
32 matrix.c 32 matrix.c
33 33
34# You can set RGB_MATRIX_ENABLE = no in your rules.mk to disable this and save the Flash 34# You can set RGB_MATRIX_ENABLE = no in your rules.mk to disable this and save the Flash
35RGB_MATRIX_ENABLE = custom # Enable RGB matrix effects. 35RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects.
36RGB_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/>.
215/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 215/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
216//#define MIDI_TONE_KEYCODE_OCTAVES 1 216//#define MIDI_TONE_KEYCODE_OCTAVES 1
217 217
218/*
219 * HD44780 LCD Display Configuration
220 */
221/*
222#define LCD_LINES 2 //< number of visible lines of the display
223#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
224#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
225#if LCD_IO_MODE
226#define LCD_PORT PORTB //< port for the LCD lines
227#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
228#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
229#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
230#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
231#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
232#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
233#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
234#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
235#define LCD_RS_PORT LCD_PORT //< port for RS line
236#define LCD_RS_PIN 3 //< pin for RS line
237#define LCD_RW_PORT LCD_PORT //< port for RW line
238#define LCD_RW_PIN 2 //< pin for RW line
239#define LCD_E_PORT LCD_PORT //< port for Enable line
240#define LCD_E_PIN 1 //< pin for Enable line
241#endif
242*/
243
244/* Bootmagic Lite key configuration */ 218/* Bootmagic Lite key configuration */
245// #define BOOTMAGIC_LITE_ROW 0 219// #define BOOTMAGIC_LITE_ROW 0
246// #define BOOTMAGIC_LITE_COLUMN 0 220// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = ortho_5x4 numpad_5x4 34LAYOUTS = 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
28BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 28BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
29AUDIO_ENABLE = no # Audio output on port C6 29AUDIO_ENABLE = no # Audio output on port C6
30FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 30FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
31HD44780_ENABLE = no # Enable support for HD44780 based LCDs
32ENCODER_ENABLE = yes # Enable support for EC11 Rotary Encoder 31ENCODER_ENABLE = yes # Enable support for EC11 Rotary Encoder
33OLED_DRIVER_ENABLE = yes # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C 32OLED_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 @@
1/* Copyright 2018 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2018 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1{ 1{
2 "keyboard_name": "KMAC Mini", 2 "keyboard_name": "KMAC Mini",
3 "url": "http://kbdmodadmin.cafe24.com/product/detail.html?product_no=12&cate_no=4&display_group=1", 3 "url": "http://kbdmodadmin.cafe24.com/product/detail.html?product_no=12&cate_no=4&display_group=1",
4 "maintainer": "maartenwut", 4 "maintainer": "evyd13",
5 "width": 18.25, 5 "width": 18.25,
6 "height": 5, 6 "height": 5,
7 "layouts": { 7 "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 @@
1/* Copyright 2018 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2018 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2018 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2018 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2018 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2018 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2018 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2018 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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
19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
20AUDIO_ENABLE = no # Audio output on port C6 20AUDIO_ENABLE = no # Audio output on port C6
21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
22HD44780_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
15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 15BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
16AUDIO_ENABLE = no # Audio output on port C6 16AUDIO_ENABLE = no # Audio output on port C6
17FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 17FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
18HD44780_ENABLE = no # Enable support for HD44780 based LCDs
19 18
20BOOTLOADER = atmel-dfu 19BOOTLOADER = atmel-dfu
21 20
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33SPLIT_KEYBOARD = yes # Split common 32SPLIT_KEYBOARD = yes # Split common
34LTO_ENABLE = yes 33LTO_ENABLE = yes
35 34
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
25RGBLIGHT_ENABLE = no 25RGBLIGHT_ENABLE = no
26OLED_DRIVER_ENABLE = yes 26OLED_DRIVER_ENABLE = yes
27ENCODER_ENABLE = yes 27ENCODER_ENABLE = yes
28RGB_MATRIX_ENABLE = WS2812 28RGB_MATRIX_ENABLE = yes
29RGB_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
32BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 32BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
33AUDIO_ENABLE = no # Audio output on port C6 33AUDIO_ENABLE = no # Audio output on port C6
34FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 34FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
35HD44780_ENABLE = no # Enable support for HD44780 based LCDs
36 35
37LAYOUTS = 60_hhkb 36LAYOUTS = 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
3RGBLIGHT_ENABLE = no 3RGBLIGHT_ENABLE = no
4AUDIO_ENABLE = no 4AUDIO_ENABLE = no
5BOOTMAGIC_ENABLE = lite 5BOOTMAGIC_ENABLE = lite
6RGB_MATRIX_ENABLE = WS2812 6RGB_MATRIX_ENABLE = yes
7RGB_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34# Support community keymaps 33# Support community keymaps
35LAYOUTS = ortho_3x10 34LAYOUTS = 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/>.
184/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 184/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
185//#define MIDI_TONE_KEYCODE_OCTAVES 1 185//#define MIDI_TONE_KEYCODE_OCTAVES 1
186 186
187/*
188 * HD44780 LCD Display Configuration
189 */
190/*
191#define LCD_LINES 2 //< number of visible lines of the display
192#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
193
194#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
195
196#if LCD_IO_MODE
197#define LCD_PORT PORTB //< port for the LCD lines
198#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
199#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
200#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
201#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
202#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
203#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
204#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
205#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
206#define LCD_RS_PORT LCD_PORT //< port for RS line
207#define LCD_RS_PIN 3 //< pin for RS line
208#define LCD_RW_PORT LCD_PORT //< port for RW line
209#define LCD_RW_PIN 2 //< pin for RW line
210#define LCD_E_PORT LCD_PORT //< port for Enable line
211#define LCD_E_PIN 1 //< pin for Enable line
212#endif
213*/
214
215/* Bootmagic Lite key configuration */ 187/* Bootmagic Lite key configuration */
216// #define BOOTMAGIC_LITE_ROW 0 188// #define BOOTMAGIC_LITE_ROW 0
217// #define BOOTMAGIC_LITE_COLUMN 0 189// #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/>.
201/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 201/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
202//#define MIDI_TONE_KEYCODE_OCTAVES 1 202//#define MIDI_TONE_KEYCODE_OCTAVES 1
203 203
204/*
205 * HD44780 LCD Display Configuration
206 */
207/*
208#define LCD_LINES 2 //< number of visible lines of the display
209#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
210
211#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
212
213#if LCD_IO_MODE
214#define LCD_PORT PORTB //< port for the LCD lines
215#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
216#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
217#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
218#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
219#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
220#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
221#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
222#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
223#define LCD_RS_PORT LCD_PORT //< port for RS line
224#define LCD_RS_PIN 3 //< pin for RS line
225#define LCD_RW_PORT LCD_PORT //< port for RW line
226#define LCD_RW_PIN 2 //< pin for RW line
227#define LCD_E_PORT LCD_PORT //< port for Enable line
228#define LCD_E_PIN 1 //< pin for Enable line
229#endif
230*/
231
232/* Bootmagic Lite key configuration */ 204/* Bootmagic Lite key configuration */
233// #define BOOTMAGIC_LITE_ROW 0 205// #define BOOTMAGIC_LITE_ROW 0
234// #define BOOTMAGIC_LITE_COLUMN 0 206// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35ISSI_ENABLE = yes # If the I2C pullup resistors aren't installed this must be disabled 34ISSI_ENABLE = yes # If the I2C pullup resistors aren't installed this must be disabled
36WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan() isn't run every 250ms 35WATCHDOG_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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0x0140
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut
26#define PRODUCT Eon40
27#define DESCRIPTION A 40% ortholinear PCB
28
29/* key matrix size */
30#define MATRIX_ROWS 4
31#define MATRIX_COLS 12
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42*/
43#define MATRIX_ROW_PINS {B7,D5,F5,F6}
44#define MATRIX_COL_PINS {F0,F1,F4,D3,D4,D6,D7,B4,B5,B6,C6,C7}
45#define UNUSED_PINS {B1,B2,B3}
46
47#define ENCODERS_PAD_A { E6, B0, D1 }
48#define ENCODERS_PAD_B { F7, D0, D2 }
49
50/* COL2ROW, ROW2COL*/
51#define DIODE_DIRECTION COL2ROW
52
53/*
54 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
55 */
56// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
57
58// #define BACKLIGHT_PIN B7
59// #define BACKLIGHT_BREATHING
60// #define BACKLIGHT_LEVELS 3
61
62// #define RGB_DI_PIN E2
63// #ifdef RGB_DI_PIN
64// #define RGBLED_NUM 16
65// #define RGBLIGHT_HUE_STEP 8
66// #define RGBLIGHT_SAT_STEP 8
67// #define RGBLIGHT_VAL_STEP 8
68// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
69// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
70// /*== all animations enable ==*/
71// #define RGBLIGHT_ANIMATIONS
72// /*== or choose animations ==*/
73// #define RGBLIGHT_EFFECT_BREATHING
74// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
75// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
76// #define RGBLIGHT_EFFECT_SNAKE
77// #define RGBLIGHT_EFFECT_KNIGHT
78// #define RGBLIGHT_EFFECT_CHRISTMAS
79// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
80// #define RGBLIGHT_EFFECT_RGB_TEST
81// #define RGBLIGHT_EFFECT_ALTERNATING
82// /*== customize breathing effect ==*/
83// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
84// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
85// /*==== use exp() and sin() ====*/
86// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
87// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
88// #endif
89
90/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
91#define DEBOUNCE 5
92
93/* define if matrix has ghost (lacks anti-ghosting diodes) */
94//#define MATRIX_HAS_GHOST
95
96/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
97#define LOCKING_SUPPORT_ENABLE
98/* Locking resynchronize hack */
99#define LOCKING_RESYNC_ENABLE
100
101/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
102 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
103 */
104// #define GRAVE_ESC_CTRL_OVERRIDE
105
106/*
107 * Force NKRO
108 *
109 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
110 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
111 * makefile for this to work.)
112 *
113 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
114 * until the next keyboard reset.
115 *
116 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
117 * fully operational during normal computer usage.
118 *
119 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
120 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
121 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
122 * power-up.
123 *
124 */
125//#define FORCE_NKRO
126
127/*
128 * Magic Key Options
129 *
130 * Magic keys are hotkey commands that allow control over firmware functions of
131 * the keyboard. They are best used in combination with the HID Listen program,
132 * found here: https://www.pjrc.com/teensy/hid_listen.html
133 *
134 * The options below allow the magic key functionality to be changed. This is
135 * useful if your keyboard/keypad is missing keys and you want magic key support.
136 *
137 */
138
139/* key combination for magic key command */
140/* defined by default; to change, uncomment and set to the combination you want */
141// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
142
143/* control how magic key switches layers */
144//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
145//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
146//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
147
148/* override magic key keymap */
149//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
150//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
151//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
152//#define MAGIC_KEY_HELP H
153//#define MAGIC_KEY_HELP_ALT SLASH
154//#define MAGIC_KEY_DEBUG D
155//#define MAGIC_KEY_DEBUG_MATRIX X
156//#define MAGIC_KEY_DEBUG_KBD K
157//#define MAGIC_KEY_DEBUG_MOUSE M
158//#define MAGIC_KEY_VERSION V
159//#define MAGIC_KEY_STATUS S
160//#define MAGIC_KEY_CONSOLE C
161//#define MAGIC_KEY_LAYER0 0
162//#define MAGIC_KEY_LAYER0_ALT GRAVE
163//#define MAGIC_KEY_LAYER1 1
164//#define MAGIC_KEY_LAYER2 2
165//#define MAGIC_KEY_LAYER3 3
166//#define MAGIC_KEY_LAYER4 4
167//#define MAGIC_KEY_LAYER5 5
168//#define MAGIC_KEY_LAYER6 6
169//#define MAGIC_KEY_LAYER7 7
170//#define MAGIC_KEY_LAYER8 8
171//#define MAGIC_KEY_LAYER9 9
172//#define MAGIC_KEY_BOOTLOADER B
173//#define MAGIC_KEY_BOOTLOADER_ALT ESC
174//#define MAGIC_KEY_LOCK CAPS
175//#define MAGIC_KEY_EEPROM E
176//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
177//#define MAGIC_KEY_NKRO N
178//#define MAGIC_KEY_SLEEP_LED Z
179
180/*
181 * Feature disable options
182 * These options are also useful to firmware size reduction.
183 */
184
185/* disable debug print */
186//#define NO_DEBUG
187
188/* disable print */
189//#define NO_PRINT
190
191/* disable action features */
192//#define NO_ACTION_LAYER
193//#define NO_ACTION_TAPPING
194//#define NO_ACTION_ONESHOT
195//#define NO_ACTION_MACRO
196//#define NO_ACTION_FUNCTION
197
198/*
199 * MIDI options
200 */
201
202/* Prevent use of disabled MIDI features in the keymap */
203//#define MIDI_ENABLE_STRICT 1
204
205/* enable basic MIDI features:
206 - MIDI notes can be sent when in Music mode is on
207*/
208//#define MIDI_BASIC
209
210/* enable advanced MIDI features:
211 - MIDI notes can be added to the keymap
212 - Octave shift and transpose
213 - Virtual sustain, portamento, and modulation wheel
214 - etc.
215*/
216//#define MIDI_ADVANCED
217
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0
252
253#define QMK_ESC_OUTPUT F0 // usually COL
254#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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0x0145
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut
26#define PRODUCT Minitomic
27#define DESCRIPTION A 45% staggered keyboard
28
29/* key matrix size */
30#define MATRIX_ROWS 4
31#define MATRIX_COLS 13
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42*/
43#define MATRIX_ROW_PINS {B1,B3,D4,D6}
44#define MATRIX_COL_PINS {C6,B6,B5,B4,D7,F0,F1,F4,F5,F6,F7,B7,E6}
45#define UNUSED_PINS {B2,D0,D1,D2,D3,D5}
46
47/* COL2ROW, ROW2COL*/
48#define DIODE_DIRECTION COL2ROW
49
50/*
51 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
52 */
53// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
54
55// #define BACKLIGHT_PIN B7
56// #define BACKLIGHT_BREATHING
57// #define BACKLIGHT_LEVELS 3
58
59// #define RGB_DI_PIN E2
60// #ifdef RGB_DI_PIN
61// #define RGBLED_NUM 16
62// #define RGBLIGHT_HUE_STEP 8
63// #define RGBLIGHT_SAT_STEP 8
64// #define RGBLIGHT_VAL_STEP 8
65// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
66// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
67// /*== all animations enable ==*/
68// #define RGBLIGHT_ANIMATIONS
69// /*== or choose animations ==*/
70// #define RGBLIGHT_EFFECT_BREATHING
71// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
72// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
73// #define RGBLIGHT_EFFECT_SNAKE
74// #define RGBLIGHT_EFFECT_KNIGHT
75// #define RGBLIGHT_EFFECT_CHRISTMAS
76// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
77// #define RGBLIGHT_EFFECT_RGB_TEST
78// #define RGBLIGHT_EFFECT_ALTERNATING
79// /*== customize breathing effect ==*/
80// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
81// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
82// /*==== use exp() and sin() ====*/
83// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
84// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
85// #endif
86
87/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
88#define DEBOUNCE 5
89
90/* define if matrix has ghost (lacks anti-ghosting diodes) */
91//#define MATRIX_HAS_GHOST
92
93/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
94#define LOCKING_SUPPORT_ENABLE
95/* Locking resynchronize hack */
96#define LOCKING_RESYNC_ENABLE
97
98/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
99 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
100 */
101// #define GRAVE_ESC_CTRL_OVERRIDE
102
103/*
104 * Force NKRO
105 *
106 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
107 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
108 * makefile for this to work.)
109 *
110 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
111 * until the next keyboard reset.
112 *
113 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
114 * fully operational during normal computer usage.
115 *
116 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
117 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
118 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
119 * power-up.
120 *
121 */
122//#define FORCE_NKRO
123
124/*
125 * Magic Key Options
126 *
127 * Magic keys are hotkey commands that allow control over firmware functions of
128 * the keyboard. They are best used in combination with the HID Listen program,
129 * found here: https://www.pjrc.com/teensy/hid_listen.html
130 *
131 * The options below allow the magic key functionality to be changed. This is
132 * useful if your keyboard/keypad is missing keys and you want magic key support.
133 *
134 */
135
136/* key combination for magic key command */
137/* defined by default; to change, uncomment and set to the combination you want */
138// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
139
140/* control how magic key switches layers */
141//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
142//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
143//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
144
145/* override magic key keymap */
146//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
147//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
148//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
149//#define MAGIC_KEY_HELP H
150//#define MAGIC_KEY_HELP_ALT SLASH
151//#define MAGIC_KEY_DEBUG D
152//#define MAGIC_KEY_DEBUG_MATRIX X
153//#define MAGIC_KEY_DEBUG_KBD K
154//#define MAGIC_KEY_DEBUG_MOUSE M
155//#define MAGIC_KEY_VERSION V
156//#define MAGIC_KEY_STATUS S
157//#define MAGIC_KEY_CONSOLE C
158//#define MAGIC_KEY_LAYER0 0
159//#define MAGIC_KEY_LAYER0_ALT GRAVE
160//#define MAGIC_KEY_LAYER1 1
161//#define MAGIC_KEY_LAYER2 2
162//#define MAGIC_KEY_LAYER3 3
163//#define MAGIC_KEY_LAYER4 4
164//#define MAGIC_KEY_LAYER5 5
165//#define MAGIC_KEY_LAYER6 6
166//#define MAGIC_KEY_LAYER7 7
167//#define MAGIC_KEY_LAYER8 8
168//#define MAGIC_KEY_LAYER9 9
169//#define MAGIC_KEY_BOOTLOADER B
170//#define MAGIC_KEY_BOOTLOADER_ALT ESC
171//#define MAGIC_KEY_LOCK CAPS
172//#define MAGIC_KEY_EEPROM E
173//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
174//#define MAGIC_KEY_NKRO N
175//#define MAGIC_KEY_SLEEP_LED Z
176
177/*
178 * Feature disable options
179 * These options are also useful to firmware size reduction.
180 */
181
182/* disable debug print */
183//#define NO_DEBUG
184
185/* disable print */
186//#define NO_PRINT
187
188/* disable action features */
189//#define NO_ACTION_LAYER
190//#define NO_ACTION_TAPPING
191//#define NO_ACTION_ONESHOT
192//#define NO_ACTION_MACRO
193//#define NO_ACTION_FUNCTION
194
195/*
196 * MIDI options
197 */
198
199/* Prevent use of disabled MIDI features in the keymap */
200//#define MIDI_ENABLE_STRICT 1
201
202/* enable basic MIDI features:
203 - MIDI notes can be sent when in Music mode is on
204*/
205//#define MIDI_BASIC
206
207/* enable advanced MIDI features:
208 - MIDI notes can be added to the keymap
209 - Octave shift and transpose
210 - Virtual sustain, portamento, and modulation wheel
211 - etc.
212*/
213//#define MIDI_ADVANCED
214
215/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
216//#define MIDI_TONE_KEYCODE_OCTAVES 1
217
218/*
219 * HD44780 LCD Display Configuration
220 */
221/*
222#define LCD_LINES 2 //< number of visible lines of the display
223#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
224
225#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
226
227#if LCD_IO_MODE
228#define LCD_PORT PORTB //< port for the LCD lines
229#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
230#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
231#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
232#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
233#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
234#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
235#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
236#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
237#define LCD_RS_PORT LCD_PORT //< port for RS line
238#define LCD_RS_PIN 3 //< pin for RS line
239#define LCD_RW_PORT LCD_PORT //< port for RW line
240#define LCD_RW_PIN 2 //< pin for RW line
241#define LCD_E_PORT LCD_PORT //< port for Enable line
242#define LCD_E_PIN 1 //< pin for Enable line
243#endif
244*/
245
246/* Bootmagic Lite key configuration */
247// #define BOOTMAGIC_LITE_ROW 0
248// #define BOOTMAGIC_LITE_COLUMN 0
249
250#define QMK_ESC_OUTPUT C6 // usually COL
251#define QMK_ESC_INPUT B1 // usually ROW
252#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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x4705
23#define PRODUCT_ID 0x5160
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Maartenwut
26#define PRODUCT MX-5160
27#define DESCRIPTION Replacement PCB for the Chicony 5160c
28
29/* key matrix size */
30#define MATRIX_ROWS 10
31#define MATRIX_COLS 10
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42*/
43#define MATRIX_ROW_PINS {C6,C7,B5,B6,D7,B4,D4,D6,D5,D3}
44#define MATRIX_COL_PINS {D0,D1,D2,F7,F6,F5,F4,F1,F0,E6}
45#define UNUSED_PINS {B7,B0}
46
47/* COL2ROW, ROW2COL*/
48#define DIODE_DIRECTION ROW2COL
49
50// For QMK DFU
51#define QMK_ESC_OUTPUT C6
52#define QMK_ESC_INPUT D1
53#define QMK_LED B1
54/*
55 * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
56 */
57// #define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
58
59// #define BACKLIGHT_PIN B7
60// #define BACKLIGHT_BREATHING
61// #define BACKLIGHT_LEVELS 3
62
63// #define RGB_DI_PIN E2
64// #ifdef RGB_DI_PIN
65// #define RGBLED_NUM 16
66// #define RGBLIGHT_HUE_STEP 8
67// #define RGBLIGHT_SAT_STEP 8
68// #define RGBLIGHT_VAL_STEP 8
69// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
70// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
71// /*== all animations enable ==*/
72// #define RGBLIGHT_ANIMATIONS
73// /*== or choose animations ==*/
74// #define RGBLIGHT_EFFECT_BREATHING
75// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
76// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
77// #define RGBLIGHT_EFFECT_SNAKE
78// #define RGBLIGHT_EFFECT_KNIGHT
79// #define RGBLIGHT_EFFECT_CHRISTMAS
80// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
81// #define RGBLIGHT_EFFECT_RGB_TEST
82// #define RGBLIGHT_EFFECT_ALTERNATING
83// /*== customize breathing effect ==*/
84// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
85// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
86// /*==== use exp() and sin() ====*/
87// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
88// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
89// #endif
90
91/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
92#define DEBOUNCE 5
93
94/* define if matrix has ghost (lacks anti-ghosting diodes) */
95//#define MATRIX_HAS_GHOST
96
97/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
98#define LOCKING_SUPPORT_ENABLE
99/* Locking resynchronize hack */
100#define LOCKING_RESYNC_ENABLE
101
102/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
103 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
104 */
105// #define GRAVE_ESC_CTRL_OVERRIDE
106
107/*
108 * Force NKRO
109 *
110 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
111 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
112 * makefile for this to work.)
113 *
114 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
115 * until the next keyboard reset.
116 *
117 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
118 * fully operational during normal computer usage.
119 *
120 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
121 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
122 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
123 * power-up.
124 *
125 */
126//#define FORCE_NKRO
127
128/*
129 * Magic Key Options
130 *
131 * Magic keys are hotkey commands that allow control over firmware functions of
132 * the keyboard. They are best used in combination with the HID Listen program,
133 * found here: https://www.pjrc.com/teensy/hid_listen.html
134 *
135 * The options below allow the magic key functionality to be changed. This is
136 * useful if your keyboard/keypad is missing keys and you want magic key support.
137 *
138 */
139
140/* key combination for magic key command */
141/* defined by default; to change, uncomment and set to the combination you want */
142// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
143
144/* control how magic key switches layers */
145//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
146//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
147//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
148
149/* override magic key keymap */
150//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
151//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
152//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
153//#define MAGIC_KEY_HELP H
154//#define MAGIC_KEY_HELP_ALT SLASH
155//#define MAGIC_KEY_DEBUG D
156//#define MAGIC_KEY_DEBUG_MATRIX X
157//#define MAGIC_KEY_DEBUG_KBD K
158//#define MAGIC_KEY_DEBUG_MOUSE M
159//#define MAGIC_KEY_VERSION V
160//#define MAGIC_KEY_STATUS S
161//#define MAGIC_KEY_CONSOLE C
162//#define MAGIC_KEY_LAYER0 0
163//#define MAGIC_KEY_LAYER0_ALT GRAVE
164//#define MAGIC_KEY_LAYER1 1
165//#define MAGIC_KEY_LAYER2 2
166//#define MAGIC_KEY_LAYER3 3
167//#define MAGIC_KEY_LAYER4 4
168//#define MAGIC_KEY_LAYER5 5
169//#define MAGIC_KEY_LAYER6 6
170//#define MAGIC_KEY_LAYER7 7
171//#define MAGIC_KEY_LAYER8 8
172//#define MAGIC_KEY_LAYER9 9
173//#define MAGIC_KEY_BOOTLOADER B
174//#define MAGIC_KEY_BOOTLOADER_ALT ESC
175//#define MAGIC_KEY_LOCK CAPS
176//#define MAGIC_KEY_EEPROM E
177//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
178//#define MAGIC_KEY_NKRO N
179//#define MAGIC_KEY_SLEEP_LED Z
180
181/*
182 * Feature disable options
183 * These options are also useful to firmware size reduction.
184 */
185
186/* disable debug print */
187//#define NO_DEBUG
188
189/* disable print */
190//#define NO_PRINT
191
192/* disable action features */
193//#define NO_ACTION_LAYER
194//#define NO_ACTION_TAPPING
195//#define NO_ACTION_ONESHOT
196//#define NO_ACTION_MACRO
197//#define NO_ACTION_FUNCTION
198
199/*
200 * MIDI options
201 */
202
203/* Prevent use of disabled MIDI features in the keymap */
204//#define MIDI_ENABLE_STRICT 1
205
206/* enable basic MIDI features:
207 - MIDI notes can be sent when in Music mode is on
208*/
209//#define MIDI_BASIC
210
211/* enable advanced MIDI features:
212 - MIDI notes can be added to the keymap
213 - Octave shift and transpose
214 - Virtual sustain, portamento, and modulation wheel
215 - etc.
216*/
217//#define MIDI_ADVANCED
218
219/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
220//#define MIDI_TONE_KEYCODE_OCTAVES 1
221
222/*
223 * HD44780 LCD Display Configuration
224 */
225/*
226#define LCD_LINES 2 //< number of visible lines of the display
227#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
228
229#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
230
231#if LCD_IO_MODE
232#define LCD_PORT PORTB //< port for the LCD lines
233#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
234#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
235#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
236#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
237#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
238#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
239#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
240#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
241#define LCD_RS_PORT LCD_PORT //< port for RS line
242#define LCD_RS_PIN 3 //< pin for RS line
243#define LCD_RW_PORT LCD_PORT //< port for RW line
244#define LCD_RW_PIN 2 //< pin for RW line
245#define LCD_E_PORT LCD_PORT //< port for Enable line
246#define LCD_E_PIN 1 //< pin for Enable line
247#endif
248*/
249
250/* Bootmagic Lite key configuration */
251// #define BOOTMAGIC_LITE_ROW 0
252// #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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34SPLIT_KEYBOARD = yes 33SPLIT_KEYBOARD = yes
35 34
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
4RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 4RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
5OLED_DRIVER_ENABLE = no 5OLED_DRIVER_ENABLE = no
6LTO_ENABLE = yes 6LTO_ENABLE = yes
7RGB_MATRIX_ENABLE = WS2812 7RGB_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
21BLUETOOTH_ENABLE = no # Enable Bluetooth 21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output 22AUDIO_ENABLE = no # Audio output
23SPLIT_KEYBOARD = yes 23SPLIT_KEYBOARD = yes
24RGB_MATRIX_ENABLE = no
25RGB_MATRIX_DRIVER = WS2812
24 26
25DEFAULT_FOLDER = marksard/rhymestone/rev1 27DEFAULT_FOLDER = marksard/rhymestone/rev1
26 28
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 @@
5#include "matrix.h" 5#include "matrix.h"
6 6
7#include "i2c_master.h" 7#include "i2c_master.h"
8#include "led_matrix.h" //For led keycodes 8#include "md_rgb_matrix.h" //For led keycodes
9#include "usb/udi_cdc.h" 9#include "usb/udi_cdc.h"
10#include "usb/usb2422.h" 10#include "usb/usb2422.h"
11 11
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 @@
1#ifdef RGB_MATRIX_ENABLE 1#ifdef RGB_MATRIX_ENABLE
2#include "alt.h" 2#include "alt.h"
3 3
4#include "led_matrix.h" 4#include "md_rgb_matrix.h"
5#include "rgb_matrix.h" 5#include "rgb_matrix.h"
6#include "config_led.h" 6#include "config_led.h"
7 7
@@ -52,7 +52,7 @@ led_config_t g_led_config = { {
52#ifdef USB_LED_INDICATOR_ENABLE 52#ifdef USB_LED_INDICATOR_ENABLE
53void rgb_matrix_indicators_kb(void) 53void rgb_matrix_indicators_kb(void)
54{ 54{
55 led_matrix_indicators(); 55 md_rgb_matrix_indicators();
56} 56}
57#endif // USB_LED_INDICATOR_ENABLE 57#endif // USB_LED_INDICATOR_ENABLE
58 58
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) {
173led_instruction_t led_instructions[] = { 173led_instruction_t led_instructions[] = {
174 //LEDs are normally inactive, no processing is performed on them 174 //LEDs are normally inactive, no processing is performed on them
175 //Flags are used in matching criteria for an LED to be active and indicate how to color it 175 //Flags are used in matching criteria for an LED to be active and indicate how to color it
176 //Flags can be found in tmk_core/protocol/arm_atsam/led_matrix.h (prefixed with LED_FLAG_) 176 //Flags can be found in tmk_core/protocol/arm_atsam/md_rgb_matrix.h (prefixed with LED_FLAG_)
177 //LED IDs can be found in config_led.h in the keyboard's directory 177 //LED IDs can be found in config_led.h in the keyboard's directory
178 //Examples are below 178 //Examples are below
179 179
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 @@
1#include "quantum.h" 1#include "quantum.h"
2#include "led_matrix.h" 2#include "md_rgb_matrix.h"
3 3
4extern issi3733_led_t *led_cur; 4extern issi3733_led_t *led_cur;
5extern uint8_t led_per_run; 5extern uint8_t led_per_run;
@@ -76,7 +76,7 @@ void rgb_matrix_init_user(void) {
76 led_cur_index = 0; 76 led_cur_index = 0;
77} 77}
78 78
79void led_matrix_run(void) { 79void md_rgb_matrix_run(void) {
80 uint8_t led_this_run = 0; 80 uint8_t led_this_run = 0;
81 81
82 if (led_cur == 0) { //Denotes start of new processing cycle in the case of chunked processing 82 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
26BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 26BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
27AUDIO_ENABLE = no # Audio output on port C6 27AUDIO_ENABLE = no # Audio output on port C6
28FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 28FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
29HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
30VIRTSER_ENABLE = no # USB Serial Driver 29VIRTSER_ENABLE = no # USB Serial Driver
31RAW_ENABLE = no # Raw device 30RAW_ENABLE = no # Raw device
32AUTO_SHIFT_ENABLE = no # Auto Shift 31AUTO_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
27BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 27BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
28AUDIO_ENABLE = no # Audio output on port C6 28AUDIO_ENABLE = no # Audio output on port C6
29FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 29FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
30HD44780_ENABLE = no # Enable support for HD44780 based LCDs
31VIRTSER_ENABLE = no # USB Serial Driver 30VIRTSER_ENABLE = no # USB Serial Driver
32RAW_ENABLE = no # Raw device 31RAW_ENABLE = no # Raw device
33AUTO_SHIFT_ENABLE = no # Auto Shift 32AUTO_SHIFT_ENABLE = no # Auto Shift
34 33
35# Custom RGB matrix handling 34# Custom RGB matrix handling
36RGB_MATRIX_ENABLE = custom 35RGB_MATRIX_ENABLE = yes
36RGB_MATRIX_DRIVER = custom
37 37
38LAYOUTS = 65_ansi_blocker 38LAYOUTS = 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 @@
1#ifdef RGB_MATRIX_ENABLE 1#ifdef RGB_MATRIX_ENABLE
2#include "ctrl.h" 2#include "ctrl.h"
3 3
4#include "led_matrix.h" 4#include "md_rgb_matrix.h"
5#include "rgb_matrix.h" 5#include "rgb_matrix.h"
6#include "config_led.h" 6#include "config_led.h"
7 7
@@ -75,7 +75,7 @@ led_config_t g_led_config = { {
75#ifdef USB_LED_INDICATOR_ENABLE 75#ifdef USB_LED_INDICATOR_ENABLE
76void rgb_matrix_indicators_kb(void) 76void rgb_matrix_indicators_kb(void)
77{ 77{
78 led_matrix_indicators(); 78 md_rgb_matrix_indicators();
79} 79}
80#endif // USB_LED_INDICATOR_ENABLE 80#endif // USB_LED_INDICATOR_ENABLE
81 81
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 @@
5#include "matrix.h" 5#include "matrix.h"
6 6
7#include "i2c_master.h" 7#include "i2c_master.h"
8#include "led_matrix.h" //For led keycodes 8#include "md_rgb_matrix.h" //For led keycodes
9#include "usb/udi_cdc.h" 9#include "usb/udi_cdc.h"
10#include "usb/usb2422.h" 10#include "usb/usb2422.h"
11 11
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) {
186led_instruction_t led_instructions[] = { 186led_instruction_t led_instructions[] = {
187 //LEDs are normally inactive, no processing is performed on them 187 //LEDs are normally inactive, no processing is performed on them
188 //Flags are used in matching criteria for an LED to be active and indicate how to color it 188 //Flags are used in matching criteria for an LED to be active and indicate how to color it
189 //Flags can be found in tmk_core/protocol/arm_atsam/led_matrix.h (prefixed with LED_FLAG_) 189 //Flags can be found in tmk_core/protocol/arm_atsam/md_rgb_matrix.h (prefixed with LED_FLAG_)
190 //LED IDs can be found in config_led.h in the keyboard's directory 190 //LED IDs can be found in config_led.h in the keyboard's directory
191 //Examples are below 191 //Examples are below
192 192
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 @@
1#ifdef RGB_MATRIX_ENABLE 1#ifdef RGB_MATRIX_ENABLE
2#include "ctrl.h" 2#include "ctrl.h"
3 3
4#include "led_matrix.h" 4#include "md_rgb_matrix.h"
5#include "rgb_matrix.h" 5#include "rgb_matrix.h"
6#include "config_led.h" 6#include "config_led.h"
7 7
@@ -75,7 +75,7 @@ led_config_t g_led_config = { {
75#ifdef USB_LED_INDICATOR_ENABLE 75#ifdef USB_LED_INDICATOR_ENABLE
76void rgb_matrix_indicators_kb(void) 76void rgb_matrix_indicators_kb(void)
77{ 77{
78 led_matrix_indicators(); 78 md_rgb_matrix_indicators();
79} 79}
80#endif // USB_LED_INDICATOR_ENABLE 80#endif // USB_LED_INDICATOR_ENABLE
81 81
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/>.
19#ifdef RGB_MATRIX_ENABLE 19#ifdef RGB_MATRIX_ENABLE
20# include "ctrl.h" 20# include "ctrl.h"
21 21
22# include "led_matrix.h" 22# include "md_rgb_matrix.h"
23# include "rgb_matrix.h" 23# include "rgb_matrix.h"
24# include "config_led.h" 24# include "config_led.h"
25// clang-format off 25// clang-format off
@@ -91,7 +91,7 @@ led_config_t g_led_config = { {
91// clang-format on 91// clang-format on
92 92
93# ifdef USB_LED_INDICATOR_ENABLE 93# ifdef USB_LED_INDICATOR_ENABLE
94void rgb_matrix_indicators_kb(void) { led_matrix_indicators(); } 94void rgb_matrix_indicators_kb(void) { md_rgb_matrix_indicators(); }
95# endif // USB_LED_INDICATOR_ENABLE 95# endif // USB_LED_INDICATOR_ENABLE
96 96
97#endif 97#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) {
659led_instruction_t led_instructions[] = { 659led_instruction_t led_instructions[] = {
660 //LEDs are normally inactive, no processing is performed on them 660 //LEDs are normally inactive, no processing is performed on them
661 //Flags are used in matching criteria for an LED to be active and indicate how to color it 661 //Flags are used in matching criteria for an LED to be active and indicate how to color it
662 //Flags can be found in tmk_core/protocol/arm_atsam/led_matrix.h (prefixed with LED_FLAG_) 662 //Flags can be found in tmk_core/protocol/arm_atsam/md_rgb_matrix.h (prefixed with LED_FLAG_)
663 //LED IDs can be found in config_led.h in the keyboard's directory 663 //LED IDs can be found in config_led.h in the keyboard's directory
664 //Examples are below 664 //Examples are below
665 665
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
27BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 27BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
28AUDIO_ENABLE = no # Audio output on port C6 28AUDIO_ENABLE = no # Audio output on port C6
29FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 29FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
30HD44780_ENABLE = no # Enable support for HD44780 based LCDs
31VIRTSER_ENABLE = no # USB Serial Driver 30VIRTSER_ENABLE = no # USB Serial Driver
32RAW_ENABLE = no # Raw device 31RAW_ENABLE = no # Raw device
33AUTO_SHIFT_ENABLE = no # Auto Shift 32AUTO_SHIFT_ENABLE = no # Auto Shift
34 33
35# Custom RGB matrix handling 34# Custom RGB matrix handling
36RGB_MATRIX_ENABLE = custom 35RGB_MATRIX_ENABLE = yes
36RGB_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
22NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in 22NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in
23 23
24RGB_MATRIX_ENABLE = yes 24RGB_MATRIX_ENABLE = yes
25RGB_MATRIX_DRIVER = IS31FL3731
25 26
26RGBLIGHT_ENABLE = yes 27RGBLIGHT_ENABLE = yes
27RGBLIGHT_CUSTOM_DRIVER = yes 28RGBLIGHT_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
17BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 17BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
18AUDIO_ENABLE = no # Audio output on port C6 18AUDIO_ENABLE = no # Audio output on port C6
19FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 19FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
20HD44780_ENABLE = no # Enable support for HD44780 based LCDs
21 20
22DEFAULT_FOLDER = maxipad/promicro 21DEFAULT_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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/>.
215/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 215/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
216//#define MIDI_TONE_KEYCODE_OCTAVES 1 216//#define MIDI_TONE_KEYCODE_OCTAVES 1
217 217
218/*
219 * HD44780 LCD Display Configuration
220 */
221/*
222#define LCD_LINES 2 //< number of visible lines of the display
223#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
224
225#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
226
227#if LCD_IO_MODE
228#define LCD_PORT PORTB //< port for the LCD lines
229#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
230#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
231#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
232#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
233#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
234#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
235#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
236#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
237#define LCD_RS_PORT LCD_PORT //< port for RS line
238#define LCD_RS_PIN 3 //< pin for RS line
239#define LCD_RW_PORT LCD_PORT //< port for RW line
240#define LCD_RW_PIN 2 //< pin for RW line
241#define LCD_E_PORT LCD_PORT //< port for Enable line
242#define LCD_E_PIN 1 //< pin for Enable line
243#endif
244*/
245
246/* Bootmagic Lite key configuration */ 218/* Bootmagic Lite key configuration */
247// #define BOOTMAGIC_LITE_ROW 0 219// #define BOOTMAGIC_LITE_ROW 0
248// #define BOOTMAGIC_LITE_COLUMN 0 220// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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 @@
1RGB_MATRIX_ENABLE = WS2812 1RGB_MATRIX_ENABLE = yes
2RGB_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 @@
1RGB_MATRIX_ENABLE = IS31FL3731 1RGB_MATRIX_ENABLE = yes
2RGB_MATRIX_DRIVER = IS31FL3731
2RGBLIGHT_ENABLE = yes 3RGBLIGHT_ENABLE = yes
3ENCODER_ENABLE = yes 4ENCODER_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
18BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 18BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
19AUDIO_ENABLE = no # Audio output on port C6 19AUDIO_ENABLE = no # Audio output on port C6
20FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 20FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
21HD44780_ENABLE = no # Enable support for HD44780 based LCDs
22 21
23DEFAULT_FOLDER = mechlovin/adelais/standard_led/rev2 \ No newline at end of file 22DEFAULT_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 @@
1RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 1RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
2RGB_MATRIX_ENABLE = IS31FL3731 # Use RGB matrix 2RGB_MATRIX_ENABLE = yes # Use RGB matrix
3RGB_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 @@
1RGB_MATRIX_ENABLE = WS2812 1RGB_MATRIX_ENABLE = yes
2RGB_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 @@
1RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 1RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
2RGB_MATRIX_ENABLE = IS31FL3731 \ No newline at end of file 2RGB_MATRIX_ENABLE = yes
3RGB_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
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 17BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
18AUDIO_ENABLE = no # Audio output on port C6 18AUDIO_ENABLE = no # Audio output on port C6
19
19# generated by KBFirmware JSON to QMK Parser 20# generated by KBFirmware JSON to QMK Parser
20# https://noroadsleft.github.io/kbf_qmk_converter/ 21# https://noroadsleft.github.io/kbf_qmk_converter/
21 22
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/>.
186/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 186/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
187//#define MIDI_TONE_KEYCODE_OCTAVES 1 187//#define MIDI_TONE_KEYCODE_OCTAVES 1
188 188
189/*
190 * HD44780 LCD Display Configuration
191 */
192/*
193#define LCD_LINES 2 //< number of visible lines of the display
194#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
195
196#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
197
198#if LCD_IO_MODE
199#define LCD_PORT PORTB //< port for the LCD lines
200#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
201#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
202#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
203#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
204#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
205#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
206#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
207#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
208#define LCD_RS_PORT LCD_PORT //< port for RS line
209#define LCD_RS_PIN 3 //< pin for RS line
210#define LCD_RW_PORT LCD_PORT //< port for RW line
211#define LCD_RW_PIN 2 //< pin for RW line
212#define LCD_E_PORT LCD_PORT //< port for Enable line
213#define LCD_E_PIN 1 //< pin for Enable line
214#endif
215*/
216
217/* Bootmagic Lite key configuration */ 189/* Bootmagic Lite key configuration */
218// #define BOOTMAGIC_LITE_ROW 0 190// #define BOOTMAGIC_LITE_ROW 0
219// #define BOOTMAGIC_LITE_COLUMN 0 191// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225//#define LCD_LINES 2 //< number of visible lines of the display
226//#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227//#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
228
229#if LCD_IO_MODE
230#define LCD_PORT PORTB //< port for the LCD lines
231#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
232#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
233#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
234#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
235#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
236#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
237#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
238#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
239#define LCD_RS_PORT LCD_PORT //< port for RS line
240#define LCD_RS_PIN 3 //< pin for RS line
241#define LCD_RW_PORT LCD_PORT //< port for RW line
242#define LCD_RW_PIN 2 //< pin for RW line
243#define LCD_E_PORT LCD_PORT //< port for Enable line
244#define LCD_E_PIN 1 //< pin for Enable line
245#endif
246*/
247
248/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
249// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
250// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18BLUETOOTH_ENABLE = no # Enable Bluetooth 18BLUETOOTH_ENABLE = no # Enable Bluetooth
19RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix 19RGB_MATRIX_ENABLE = yes # Use RGB matrix
20RGB_MATRIX_DRIVER = IS31FL3741
20NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 21NO_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
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18BLUETOOTH_ENABLE = no # Enable Bluetooth 18BLUETOOTH_ENABLE = no # Enable Bluetooth
19RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix 19RGB_MATRIX_ENABLE = yes # Use RGB matrix
20RGB_MATRIX_DRIVER = IS31FL3741
20NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 21NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
21 22
22LAYOUTS = 60_ansi_arrow 23LAYOUTS = 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
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18BLUETOOTH_ENABLE = no # Enable Bluetooth 18BLUETOOTH_ENABLE = no # Enable Bluetooth
19RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix 19RGB_MATRIX_ENABLE = yes # Use RGB matrix
20RGB_MATRIX_DRIVER = IS31FL3741
20NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 21NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
21 22
22LAYOUTS = 64_ansi 23LAYOUTS = 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
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18BLUETOOTH_ENABLE = no # Enable Bluetooth 18BLUETOOTH_ENABLE = no # Enable Bluetooth
19RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix 19RGB_MATRIX_ENABLE = yes # Use RGB matrix
20RGB_MATRIX_DRIVER = IS31FL3741
20NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 21NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
21 22
22LAYOUTS = 64_ansi 23LAYOUTS = 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
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18BLUETOOTH_ENABLE = no # Enable Bluetooth 18BLUETOOTH_ENABLE = no # Enable Bluetooth
19RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix 19RGB_MATRIX_ENABLE = yes # Use RGB matrix
20RGB_MATRIX_DRIVER = IS31FL3741
20NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 21NO_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
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18BLUETOOTH_ENABLE = no # Enable Bluetooth 18BLUETOOTH_ENABLE = no # Enable Bluetooth
19RGB_MATRIX_ENABLE = IS31FL3741 # Use RGB matrix 19RGB_MATRIX_ENABLE = yes # Use RGB matrix
20RGB_MATRIX_DRIVER = IS31FL3741
20NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 21NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in
21 22
22LAYOUTS = 65_ansi_blocker 23LAYOUTS = 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
31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
32AUDIO_ENABLE = no # Audio output on port C6 32AUDIO_ENABLE = no # Audio output on port C6
33FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 33FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
34HD44780_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs 32RGB_MATRIX_ENABLE = yes # Use RGB matrix
33RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix 33RGB_MATRIX_DRIVER = IS31FL3733
34NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 34NO_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/>.
197/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 197/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
198//#define MIDI_TONE_KEYCODE_OCTAVES 1 198//#define MIDI_TONE_KEYCODE_OCTAVES 1
199 199
200/*
201 * HD44780 LCD Display Configuration
202 */
203/*
204#define LCD_LINES 2 //< number of visible lines of the display
205#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
206
207#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
208
209#if LCD_IO_MODE
210#define LCD_PORT PORTB //< port for the LCD lines
211#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
212#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
213#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
214#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
215#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
216#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
217#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
218#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
219#define LCD_RS_PORT LCD_PORT //< port for RS line
220#define LCD_RS_PIN 3 //< pin for RS line
221#define LCD_RW_PORT LCD_PORT //< port for RW line
222#define LCD_RW_PIN 2 //< pin for RW line
223#define LCD_E_PORT LCD_PORT //< port for Enable line
224#define LCD_E_PIN 1 //< pin for Enable line
225#endif
226*/
227
228/* Bootmagic Lite key configuration */ 200/* Bootmagic Lite key configuration */
229// #define BOOTMAGIC_LITE_ROW 0 201// #define BOOTMAGIC_LITE_ROW 0
230// #define BOOTMAGIC_LITE_COLUMN 0 202// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35DEBUG_ENABLE = no 34DEBUG_ENABLE = no
36CUSTOM_MATRIX = no # Use custom matrix code 35CUSTOM_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34SPLIT_KEYBOARD = yes 33SPLIT_KEYBOARD = yes
35 34
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/>.
196/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 196/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
197//#define MIDI_TONE_KEYCODE_OCTAVES 1 197//#define MIDI_TONE_KEYCODE_OCTAVES 1
198 198
199/*
200 * HD44780 LCD Display Configuration
201 */
202/*
203#define LCD_LINES 2 //< number of visible lines of the display
204#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
205
206#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
207
208#if LCD_IO_MODE
209#define LCD_PORT PORTB //< port for the LCD lines
210#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
211#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
212#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
213#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
214#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
215#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
216#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
217#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
218#define LCD_RS_PORT LCD_PORT //< port for RS line
219#define LCD_RS_PIN 3 //< pin for RS line
220#define LCD_RW_PORT LCD_PORT //< port for RW line
221#define LCD_RW_PIN 2 //< pin for RW line
222#define LCD_E_PORT LCD_PORT //< port for Enable line
223#define LCD_E_PIN 1 //< pin for Enable line
224#endif
225*/
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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35SPLIT_KEYBOARD = yes 34SPLIT_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
26BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 26BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
27AUDIO_ENABLE = no # Audio output on port C6 27AUDIO_ENABLE = no # Audio output on port C6
28FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 28FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
29HD44780_ENABLE = no # Enable support for HD44780 based LCDs
30 29
31LAYOUTS = ortho_4x12 30LAYOUTS = ortho_4x12
32LAYOUTS_HAS_RGB = no \ No newline at end of file 31LAYOUTS_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
26BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 26BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
27AUDIO_ENABLE = no # Audio output on port C6 27AUDIO_ENABLE = no # Audio output on port C6
28FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 28FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
29HD44780_ENABLE = no # Enable support for HD44780 based LCDs
30ENCODER_ENABLE = yes 29ENCODER_ENABLE = yes
31 30
32LAYOUTS = ortho_4x12 31LAYOUTS = 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
26BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 26BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
27AUDIO_ENABLE = no # Audio output on port C6 27AUDIO_ENABLE = no # Audio output on port C6
28FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 28FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
29HD44780_ENABLE = no # Enable support for HD44780 based LCDs
30ENCODER_ENABLE = yes 29ENCODER_ENABLE = yes
31 30
32LAYOUTS = ortho_4x12 31LAYOUTS = 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35# custom matrix setup 34# custom matrix setup
36CUSTOM_MATRIX = yes 35CUSTOM_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
20CUSTOM_MATRIX = yes 20CUSTOM_MATRIX = yes
21DEBOUNCE_TYPE = custom 21DEBOUNCE_TYPE = custom
22SWAP_HANDS_ENABLE = yes 22SWAP_HANDS_ENABLE = yes
23RGB_MATRIX_ENABLE = IS31FL3731 23RGB_MATRIX_ENABLE = yes
24RGB_MATRIX_DRIVER = IS31FL3731
24#SERIAL_LINK_ENABLE = yes 25#SERIAL_LINK_ENABLE = yes
25EEPROM_DRIVER = i2c 26EEPROM_DRIVER = i2c
26 27
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33SPLIT_KEYBOARD = yes # Enable split keyboard mode 32SPLIT_KEYBOARD = yes # Enable split keyboard mode
34ENCODER_ENABLE = yes \ No newline at end of file 33ENCODER_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
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18BLUETOOTH_ENABLE = no # Enable Bluetooth 18BLUETOOTH_ENABLE = no # Enable Bluetooth
19AUDIO_ENABLE = yes # Audio output 19AUDIO_ENABLE = yes # Audio output
20RGB_MATRIX_ENABLE = WS2812 20RGB_MATRIX_ENABLE = yes
21RGB_MATRIX_DRIVER = WS2812
21WS2812_DRIVER = spi 22WS2812_DRIVER = spi
22AUDIO_DRIVER = dac_additive # How to drive the 2 speakers 23AUDIO_DRIVER = dac_additive # How to drive the 2 speakers
23UNICODE_ENABLE = yes # Unicode support 24UNICODE_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 @@
1RGBLIGHT_ENABLE = no 1RGBLIGHT_ENABLE = no
2RGB_MATRIX_ENABLE = WS2812 2RGB_MATRIX_ENABLE = yes
3 3
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
31# USE_I2C = yes 31# USE_I2C = yes
32# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 32# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
33SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 33SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
34RGB_MATRIX_ENABLE = no
35RGB_MATRIX_DRIVER = WS2812
34 36
35SPLIT_KEYBOARD = yes 37SPLIT_KEYBOARD = yes
36 38
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/>.
187/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 187/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
188//#define MIDI_TONE_KEYCODE_OCTAVES 1 188//#define MIDI_TONE_KEYCODE_OCTAVES 1
189 189
190/*
191 * HD44780 LCD Display Configuration
192 */
193/*
194#define LCD_LINES 2 //< number of visible lines of the display
195#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
196
197#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
198
199#if LCD_IO_MODE
200#define LCD_PORT PORTB //< port for the LCD lines
201#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
202#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
203#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
204#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
205#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
206#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
207#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
208#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
209#define LCD_RS_PORT LCD_PORT //< port for RS line
210#define LCD_RS_PIN 3 //< pin for RS line
211#define LCD_RW_PORT LCD_PORT //< port for RW line
212#define LCD_RW_PIN 2 //< pin for RW line
213#define LCD_E_PORT LCD_PORT //< port for Enable line
214#define LCD_E_PIN 1 //< pin for Enable line
215#endif
216*/
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/>.
187/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 187/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
188//#define MIDI_TONE_KEYCODE_OCTAVES 1 188//#define MIDI_TONE_KEYCODE_OCTAVES 1
189 189
190/*
191 * HD44780 LCD Display Configuration
192 */
193/*
194#define LCD_LINES 2 //< number of visible lines of the display
195#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
196
197#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
198
199#if LCD_IO_MODE
200#define LCD_PORT PORTB //< port for the LCD lines
201#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
202#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
203#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
204#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
205#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
206#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
207#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
208#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
209#define LCD_RS_PORT LCD_PORT //< port for RS line
210#define LCD_RS_PIN 3 //< pin for RS line
211#define LCD_RW_PORT LCD_PORT //< port for RW line
212#define LCD_RW_PIN 2 //< pin for RW line
213#define LCD_E_PORT LCD_PORT //< port for Enable line
214#define LCD_E_PIN 1 //< pin for Enable line
215#endif
216*/
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34#UNICODEMAP_ENABLE = yes # for emoji user 33#UNICODEMAP_ENABLE = yes # for emoji user
35#RGBLIGHT_ENABLE = yes # uncomment if you want addressable led strips 34#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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output 31AUDIO_ENABLE = no # Audio output
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
19 19
20#include "config_common.h" 20#include "config_common.h"
21 21
22/* Ensure we jump to bootloader if the RESET keycode was pressed */
23#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
24
25/* LSE clock */
26#define STM32_LSECLK 32768
27
22/* USB Device descriptor parameter */ 28/* USB Device descriptor parameter */
23#define VENDOR_ID 0x8968 29#define VENDOR_ID 0x8968
24#define PRODUCT_ID 0x5337 30#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) {
23 SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; 23 SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
24 SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); 24 SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
25} 25}
26
27void keyboard_post_init_user(void) {
28rgblight_set_effect_range(0, 4);
29}
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
30BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34CUSTOM_MATRIX = yes 33CUSTOM_MATRIX = yes
35DEBUG_ENABLE = yes 34DEBUG_ENABLE = yes
36BLUETOOTH = AdafruitBLE 35BLUETOOTH = 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/>.
216/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 216/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
217//#define MIDI_TONE_KEYCODE_OCTAVES 1 217//#define MIDI_TONE_KEYCODE_OCTAVES 1
218 218
219/*
220 * HD44780 LCD Display Configuration
221 */
222/*
223#define LCD_LINES 2 //< number of visible lines of the display
224#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
225
226#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
227
228#if LCD_IO_MODE
229#define LCD_PORT PORTB //< port for the LCD lines
230#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
231#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
232#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
233#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
234#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
235#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
236#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
237#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
238#define LCD_RS_PORT LCD_PORT //< port for RS line
239#define LCD_RS_PIN 3 //< pin for RS line
240#define LCD_RW_PORT LCD_PORT //< port for RW line
241#define LCD_RW_PIN 2 //< pin for RW line
242#define LCD_E_PORT LCD_PORT //< port for Enable line
243#define LCD_E_PIN 1 //< pin for Enable line
244#endif
245*/
246
247/* Bootmagic Lite key configuration */ 219/* Bootmagic Lite key configuration */
248#define BOOTMAGIC_LITE_ROW 0 220#define BOOTMAGIC_LITE_ROW 0
249#define BOOTMAGIC_LITE_COLUMN 1 221#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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
216/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 216/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
217//#define MIDI_TONE_KEYCODE_OCTAVES 1 217//#define MIDI_TONE_KEYCODE_OCTAVES 1
218 218
219/*
220 * HD44780 LCD Display Configuration
221 */
222/*
223#define LCD_LINES 2 //< number of visible lines of the display
224#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
225
226#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
227
228#if LCD_IO_MODE
229#define LCD_PORT PORTB //< port for the LCD lines
230#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
231#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
232#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
233#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
234#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
235#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
236#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
237#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
238#define LCD_RS_PORT LCD_PORT //< port for RS line
239#define LCD_RS_PIN 3 //< pin for RS line
240#define LCD_RW_PORT LCD_PORT //< port for RW line
241#define LCD_RW_PIN 2 //< pin for RW line
242#define LCD_E_PORT LCD_PORT //< port for Enable line
243#define LCD_E_PIN 1 //< pin for Enable line
244#endif
245*/
246
247/* Bootmagic Lite key configuration */ 219/* Bootmagic Lite key configuration */
248// #define BOOTMAGIC_LITE_ROW 0 220// #define BOOTMAGIC_LITE_ROW 0
249// #define BOOTMAGIC_LITE_COLUMN 0 221// #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/>.
188/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 188/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
189//#define MIDI_TONE_KEYCODE_OCTAVES 1 189//#define MIDI_TONE_KEYCODE_OCTAVES 1
190 190
191/*
192 * HD44780 LCD Display Configuration
193 */
194/*
195#define LCD_LINES 2 //< number of visible lines of the display
196#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
197
198#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
199
200#if LCD_IO_MODE
201#define LCD_PORT PORTB //< port for the LCD lines
202#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
203#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
204#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
205#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
206#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
207#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
208#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
209#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
210#define LCD_RS_PORT LCD_PORT //< port for RS line
211#define LCD_RS_PIN 3 //< pin for RS line
212#define LCD_RW_PORT LCD_PORT //< port for RW line
213#define LCD_RW_PIN 2 //< pin for RW line
214#define LCD_E_PORT LCD_PORT //< port for Enable line
215#define LCD_E_PIN 1 //< pin for Enable line
216#endif
217*/
218
219/* Bootmagic Lite key configuration */ 191/* Bootmagic Lite key configuration */
220// #define BOOTMAGIC_LITE_ROW 0 192// #define BOOTMAGIC_LITE_ROW 0
221// #define BOOTMAGIC_LITE_COLUMN 0 193// #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/>.
221/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 221/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
222//#define MIDI_TONE_KEYCODE_OCTAVES 1 222//#define MIDI_TONE_KEYCODE_OCTAVES 1
223 223
224/*
225 * HD44780 LCD Display Configuration
226 */
227/*
228#define LCD_LINES 2 //< number of visible lines of the display
229#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
230
231#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
232
233#if LCD_IO_MODE
234#define LCD_PORT PORTB //< port for the LCD lines
235#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
236#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
237#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
238#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
239#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
240#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
241#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
242#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
243#define LCD_RS_PORT LCD_PORT //< port for RS line
244#define LCD_RS_PIN 3 //< pin for RS line
245#define LCD_RW_PORT LCD_PORT //< port for RW line
246#define LCD_RW_PIN 2 //< pin for RW line
247#define LCD_E_PORT LCD_PORT //< port for Enable line
248#define LCD_E_PIN 1 //< pin for Enable line
249#endif
250*/
251
252/* Bootmagic Lite key configuration */ 224/* Bootmagic Lite key configuration */
253// #define BOOTMAGIC_LITE_ROW 0 225// #define BOOTMAGIC_LITE_ROW 0
254// #define BOOTMAGIC_LITE_COLUMN 0 226// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34EXTRAFLAGS += -flto 33EXTRAFLAGS += -flto
35 34
36LAYOUTS = 60_ansi 60_iso 60_hhkb 60_tsangan_hhkb 35LAYOUTS = 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/>.
190/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 190/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
191//#define MIDI_TONE_KEYCODE_OCTAVES 1 191//#define MIDI_TONE_KEYCODE_OCTAVES 1
192 192
193/*
194 * HD44780 LCD Display Configuration
195 */
196/*
197#define LCD_LINES 2 //< number of visible lines of the display
198#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
199
200#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
201
202#if LCD_IO_MODE
203#define LCD_PORT PORTB //< port for the LCD lines
204#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
205#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
206#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
207#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
208#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
209#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
210#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
211#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
212#define LCD_RS_PORT LCD_PORT //< port for RS line
213#define LCD_RS_PIN 3 //< pin for RS line
214#define LCD_RW_PORT LCD_PORT //< port for RW line
215#define LCD_RW_PIN 2 //< pin for RW line
216#define LCD_E_PORT LCD_PORT //< port for Enable line
217#define LCD_E_PIN 1 //< pin for Enable line
218#endif
219*/
220
221/* Bootmagic Lite key configuration */ 193/* Bootmagic Lite key configuration */
222// #define BOOTMAGIC_LITE_ROW 0 194// #define BOOTMAGIC_LITE_ROW 0
223// #define BOOTMAGIC_LITE_COLUMN 0 195// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = 65_ansi_blocker 34LAYOUTS = 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/>.
189/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 189/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
190//#define MIDI_TONE_KEYCODE_OCTAVES 1 190//#define MIDI_TONE_KEYCODE_OCTAVES 1
191 191
192/*
193 * HD44780 LCD Display Configuration
194 */
195/*
196#define LCD_LINES 2 //< number of visible lines of the display
197#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
198
199#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
200
201#if LCD_IO_MODE
202#define LCD_PORT PORTB //< port for the LCD lines
203#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
204#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
205#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
206#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
207#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
208#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
209#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
210#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
211#define LCD_RS_PORT LCD_PORT //< port for RS line
212#define LCD_RS_PIN 3 //< pin for RS line
213#define LCD_RW_PORT LCD_PORT //< port for RW line
214#define LCD_RW_PIN 2 //< pin for RW line
215#define LCD_E_PORT LCD_PORT //< port for Enable line
216#define LCD_E_PIN 1 //< pin for Enable line
217#endif
218*/
219
220/* Bootmagic Lite key configuration */ 192/* Bootmagic Lite key configuration */
221// #define BOOTMAGIC_LITE_ROW 0 193// #define BOOTMAGIC_LITE_ROW 0
222// #define BOOTMAGIC_LITE_COLUMN 0 194// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
192/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 192/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
193//#define MIDI_TONE_KEYCODE_OCTAVES 1 193//#define MIDI_TONE_KEYCODE_OCTAVES 1
194 194
195/*
196 * HD44780 LCD Display Configuration
197 */
198/*
199#define LCD_LINES 2 //< number of visible lines of the display
200#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
201
202#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
203
204#if LCD_IO_MODE
205#define LCD_PORT PORTB //< port for the LCD lines
206#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
207#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
208#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
209#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
210#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
211#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
212#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
213#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
214#define LCD_RS_PORT LCD_PORT //< port for RS line
215#define LCD_RS_PIN 3 //< pin for RS line
216#define LCD_RW_PORT LCD_PORT //< port for RW line
217#define LCD_RW_PIN 2 //< pin for RW line
218#define LCD_E_PORT LCD_PORT //< port for Enable line
219#define LCD_E_PIN 1 //< pin for Enable line
220#endif
221*/
222
223/* Bootmagic Lite key configuration */ 195/* Bootmagic Lite key configuration */
224// #define BOOTMAGIC_LITE_ROW 0 196// #define BOOTMAGIC_LITE_ROW 0
225// #define BOOTMAGIC_LITE_COLUMN 0 197// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
221/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 221/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
222//#define MIDI_TONE_KEYCODE_OCTAVES 1 222//#define MIDI_TONE_KEYCODE_OCTAVES 1
223 223
224/*
225 * HD44780 LCD Display Configuration
226 */
227/*
228#define LCD_LINES 2 //< number of visible lines of the display
229#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
230
231#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
232
233#if LCD_IO_MODE
234#define LCD_PORT PORTB //< port for the LCD lines
235#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
236#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
237#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
238#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
239#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
240#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
241#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
242#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
243#define LCD_RS_PORT LCD_PORT //< port for RS line
244#define LCD_RS_PIN 3 //< pin for RS line
245#define LCD_RW_PORT LCD_PORT //< port for RW line
246#define LCD_RW_PIN 2 //< pin for RW line
247#define LCD_E_PORT LCD_PORT //< port for Enable line
248#define LCD_E_PIN 1 //< pin for Enable line
249#endif
250*/
251
252/* Bootmagic Lite key configuration */ 224/* Bootmagic Lite key configuration */
253// #define BOOTMAGIC_LITE_ROW 0 225// #define BOOTMAGIC_LITE_ROW 0
254// #define BOOTMAGIC_LITE_COLUMN 0 226// #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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34DEBOUNCE_TYPE = eager_pk 33DEBOUNCE_TYPE = eager_pk
35SPLIT_KEYBOARD = yes 34SPLIT_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33SPLIT_KEYBOARD = no 32SPLIT_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33SPLIT_KEYBOARD = yes 32SPLIT_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
23RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 23RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
24BLUETOOTH_ENABLE = no # Enable Bluetooth 24BLUETOOTH_ENABLE = no # Enable Bluetooth
25AUDIO_ENABLE = no # Audio output 25AUDIO_ENABLE = no # Audio output
26RGB_MATRIX_ENABLE = IS31FL3731 26RGB_MATRIX_ENABLE = yes
27RGB_MATRIX_DRIVER = IS31FL3731
27 28
28LTO_ENABLE = yes 29LTO_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34LAYOUTS_HAS_RGB = no 33LAYOUTS_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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34SPLIT_KEYBOARD=yes 33SPLIT_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/>.
222/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 222/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
223//#define MIDI_TONE_KEYCODE_OCTAVES 1 223//#define MIDI_TONE_KEYCODE_OCTAVES 1
224 224
225/*
226 * HD44780 LCD Display Configuration
227 */
228/*
229#define LCD_LINES 2 //< number of visible lines of the display
230#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
231
232#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
233
234#if LCD_IO_MODE
235#define LCD_PORT PORTB //< port for the LCD lines
236#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
237#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
238#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
239#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
240#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
241#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
242#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
243#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
244#define LCD_RS_PORT LCD_PORT //< port for RS line
245#define LCD_RS_PIN 3 //< pin for RS line
246#define LCD_RW_PORT LCD_PORT //< port for RW line
247#define LCD_RW_PIN 2 //< pin for RW line
248#define LCD_E_PORT LCD_PORT //< port for Enable line
249#define LCD_E_PIN 1 //< pin for Enable line
250#endif
251*/
252
253/* Bootmagic Lite key configuration */ 225/* Bootmagic Lite key configuration */
254// #define BOOTMAGIC_LITE_ROW 0 226// #define BOOTMAGIC_LITE_ROW 0
255// #define BOOTMAGIC_LITE_COLUMN 0 227// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34SPLIT_KEYBOARD=yes 33SPLIT_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33UNICODE_ENABLE = yes # Unicode 32UNICODE_ENABLE = yes # Unicode
34IOS_DEVICE_ENABLE = no # connect to IOS Device 33IOS_DEVICE_ENABLE = no # connect to IOS Device
35ENCODER_ENABLE = yes 34ENCODER_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33UNICODE_ENABLE = yes # Unicode 32UNICODE_ENABLE = yes # Unicode
34IOS_DEVICE_ENABLE = no # connect to IOS Device 33IOS_DEVICE_ENABLE = no # connect to IOS Device
35 34
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33ENCODER_ENABLE = yes # Enable support for rotary encoders 32ENCODER_ENABLE = yes # Enable support for rotary encoders
34OLED_DRIVER_ENABLE = yes # Enable support for OLED display 33OLED_DRIVER_ENABLE = yes # Enable support for OLED display
35 34
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34EXTRAFLAGS += -flto 33EXTRAFLAGS += -flto
35 34
36LAYOUTS = numpad_5x4 35LAYOUTS = 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
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth 21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output 22AUDIO_ENABLE = no # Audio output
23RGB_MATRIX_ENABLE = WS2812 23RGB_MATRIX_ENABLE = yes
24RGB_MATRIX_DRIVER = WS2812
24 25
25LAYOUTS = 65_ansi_blocker_split_bs 65_iso_blocker_split_bs 26LAYOUTS = 65_ansi_blocker_split_bs 65_iso_blocker_split_bs
26RGB_MATRIX_CUSTOM_KB = yes 27RGB_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 @@
208/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 208/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
209//#define MIDI_TONE_KEYCODE_OCTAVES 1 209//#define MIDI_TONE_KEYCODE_OCTAVES 1
210 210
211/*
212 * HD44780 LCD Display Configuration
213 */
214/*
215#define LCD_LINES 2 //< number of visible lines of the display
216#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
217
218#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
219
220#if LCD_IO_MODE
221#define LCD_PORT PORTB //< port for the LCD lines
222#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
223#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
224#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
225#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
226#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
227#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
228#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
229#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
230#define LCD_RS_PORT LCD_PORT //< port for RS line
231#define LCD_RS_PIN 3 //< pin for RS line
232#define LCD_RW_PORT LCD_PORT //< port for RW line
233#define LCD_RW_PIN 2 //< pin for RW line
234#define LCD_E_PORT LCD_PORT //< port for Enable line
235#define LCD_E_PIN 1 //< pin for Enable line
236#endif
237*/
238
239/* Bootmagic Lite key configuration */ 211/* Bootmagic Lite key configuration */
240// #define BOOTMAGIC_LITE_ROW 0 212// #define BOOTMAGIC_LITE_ROW 0
241// #define BOOTMAGIC_LITE_COLUMN 0 213// #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 @@
208/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 208/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
209//#define MIDI_TONE_KEYCODE_OCTAVES 1 209//#define MIDI_TONE_KEYCODE_OCTAVES 1
210 210
211/*
212 * HD44780 LCD Display Configuration
213 */
214/*
215#define LCD_LINES 2 //< number of visible lines of the display
216#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
217
218#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
219
220#if LCD_IO_MODE
221#define LCD_PORT PORTB //< port for the LCD lines
222#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
223#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
224#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
225#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
226#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
227#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
228#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
229#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
230#define LCD_RS_PORT LCD_PORT //< port for RS line
231#define LCD_RS_PIN 3 //< pin for RS line
232#define LCD_RW_PORT LCD_PORT //< port for RW line
233#define LCD_RW_PIN 2 //< pin for RW line
234#define LCD_E_PORT LCD_PORT //< port for Enable line
235#define LCD_E_PIN 1 //< pin for Enable line
236#endif
237*/
238
239/* Bootmagic Lite key configuration */ 211/* Bootmagic Lite key configuration */
240// #define BOOTMAGIC_LITE_ROW 0 212// #define BOOTMAGIC_LITE_ROW 0
241// #define BOOTMAGIC_LITE_COLUMN 0 213// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35SPLIT_KEYBOARD = yes 34SPLIT_KEYBOARD = yes
36 35
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
26 26
27# SERIAL_LINK_ENABLE = yes 27# SERIAL_LINK_ENABLE = yes
28ENCODER_ENABLE = yes 28ENCODER_ENABLE = yes
29RGB_MATRIX_DRIVER = IS31FL3737
29 30
30LAYOUTS = ortho_4x12 planck_mit 31LAYOUTS = ortho_4x12 planck_mit
31LAYOUTS_HAS_RGB = no 32LAYOUTS_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
28BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 28BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
29RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. 29RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
30RGB_MATRIX_ENABLE = yes 30RGB_MATRIX_ENABLE = yes
31RGB_MATRIX_DRIVER = IS31FL3731
31API_SYSEX_ENABLE = no 32API_SYSEX_ENABLE = no
32 33
33# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 34# 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
24# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 24# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
25SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 25SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
26 26
27# RGB_MATRIX_ENABLE = WS2812 27RGB_MATRIX_ENABLE = no
28RGB_MATRIX_DRIVER = WS2812
28# SERIAL_LINK_ENABLE = yes 29# SERIAL_LINK_ENABLE = yes
29ENCODER_ENABLE = yes 30ENCODER_ENABLE = yes
30DIP_SWITCH_ENABLE = yes 31DIP_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 @@
1/* Copyright 2020 Dekkers 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1{ 1{
2 "keyboard_name": "Plume65", 2 "keyboard_name": "Plume65",
3 "url": "", 3 "url": "",
4 "maintainer": "maartenwut", 4 "maintainer": "evyd13",
5 "width": 16, 5 "width": 16,
6 "height": 5, 6 "height": 5,
7 "layouts": { 7 "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 @@
1/* Copyright 2020 Dekkers 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Dekkers 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Dekkers 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2020 Dekkers 1/* Copyright 2020 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1# Plume65 1# Plume65
2 2
3## Support 3## Support
4* Keyboard Maintainer: [maartenwut](https://github.com/maartenwut) 4* Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
5* Hardware Supported: Plume65 5* Hardware Supported: Plume65
6* Hardware Availability: N/A 6* Hardware Availability: N/A
7 7
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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35DEFAULT_FOLDER = primekb/prime_l/v1 \ No newline at end of file 34DEFAULT_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = ortho_5x6 numpad_5x6 34LAYOUTS = 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
20AUDIO_ENABLE = no # Audio output on port C6 20AUDIO_ENABLE = no # Audio output on port C6
21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
22HD44780_ENABLE = no # Enable support for HD44780 based LCDs
23WS2812_DRIVER = spi 22WS2812_DRIVER = spi
24 23
25 24
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
19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
20AUDIO_ENABLE = no # Audio output on port C6 20AUDIO_ENABLE = no # Audio output on port C6
21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
22HD44780_ENABLE = no # Enable support for HD44780 based LCDs
23WS2812_DRIVER = spi 22WS2812_DRIVER = spi
24 23
25 24
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
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/>.
212/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 212/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
213//#define MIDI_TONE_KEYCODE_OCTAVES 1 213//#define MIDI_TONE_KEYCODE_OCTAVES 1
214 214
215/*
216 * HD44780 LCD Display Configuration
217 */
218/*
219#define LCD_LINES 2 //< number of visible lines of the display
220#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
221
222#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
223
224#if LCD_IO_MODE
225#define LCD_PORT PORTB //< port for the LCD lines
226#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
227#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
228#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
229#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
230#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
231#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
232#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
233#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
234#define LCD_RS_PORT LCD_PORT //< port for RS line
235#define LCD_RS_PIN 3 //< pin for RS line
236#define LCD_RW_PORT LCD_PORT //< port for RW line
237#define LCD_RW_PIN 2 //< pin for RW line
238#define LCD_E_PORT LCD_PORT //< port for Enable line
239#define LCD_E_PIN 1 //< pin for Enable line
240#endif
241*/
242
243/* Bootmagic Lite key configuration */ 215/* Bootmagic Lite key configuration */
244// #define BOOTMAGIC_LITE_ROW 0 216// #define BOOTMAGIC_LITE_ROW 0
245// #define BOOTMAGIC_LITE_COLUMN 0 217// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
224/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 224/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
225//#define MIDI_TONE_KEYCODE_OCTAVES 1 225//#define MIDI_TONE_KEYCODE_OCTAVES 1
226 226
227/*
228 * HD44780 LCD Display Configuration
229 */
230/*
231#define LCD_LINES 2 //< number of visible lines of the display
232#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
233
234#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
235
236#if LCD_IO_MODE
237#define LCD_PORT PORTB //< port for the LCD lines
238#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
239#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
240#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
241#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
242#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
243#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
244#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
245#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
246#define LCD_RS_PORT LCD_PORT //< port for RS line
247#define LCD_RS_PIN 3 //< pin for RS line
248#define LCD_RW_PORT LCD_PORT //< port for RW line
249#define LCD_RW_PIN 2 //< pin for RW line
250#define LCD_E_PORT LCD_PORT //< port for Enable line
251#define LCD_E_PIN 1 //< pin for Enable line
252#endif
253*/
254
255/* Bootmagic Lite key configuration */ 227/* Bootmagic Lite key configuration */
256// #define BOOTMAGIC_LITE_ROW 0 228// #define BOOTMAGIC_LITE_ROW 0
257// #define BOOTMAGIC_LITE_COLUMN 0 229// #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/>.
212/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 212/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
213//#define MIDI_TONE_KEYCODE_OCTAVES 1 213//#define MIDI_TONE_KEYCODE_OCTAVES 1
214 214
215/*
216 * HD44780 LCD Display Configuration
217 */
218/*
219#define LCD_LINES 2 //< number of visible lines of the display
220#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
221
222#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
223
224#if LCD_IO_MODE
225#define LCD_PORT PORTB //< port for the LCD lines
226#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
227#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
228#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
229#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
230#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
231#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
232#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
233#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
234#define LCD_RS_PORT LCD_PORT //< port for RS line
235#define LCD_RS_PIN 3 //< pin for RS line
236#define LCD_RW_PORT LCD_PORT //< port for RW line
237#define LCD_RW_PIN 2 //< pin for RW line
238#define LCD_E_PORT LCD_PORT //< port for Enable line
239#define LCD_E_PIN 1 //< pin for Enable line
240#endif
241*/
242
243/* Bootmagic Lite key configuration */ 215/* Bootmagic Lite key configuration */
244// #define BOOTMAGIC_LITE_ROW 0 216// #define BOOTMAGIC_LITE_ROW 0
245// #define BOOTMAGIC_LITE_COLUMN 0 217// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
27BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 27BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
28AUDIO_ENABLE = no # Audio output on port C6 28AUDIO_ENABLE = no # Audio output on port C6
29FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 29FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
30HD44780_ENABLE = no # Enable support for HD44780 based LCDs
31UNICODE_ENABLE = no # Unicode 30UNICODE_ENABLE = no # Unicode
32 31
33LAYOUTS = ortho_5x4 ortho_6x4 numpad_5x4 numpad_6x4 32LAYOUTS = 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 @@
1/* 1/*
2Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2019 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
2 2
3A 65% keyboard with two function columns on the left. 3A 65% keyboard with two function columns on the left.
4 4
5Keyboard Maintainer: [Maartenwut](https://github.com/Maartenwut) 5Keyboard Maintainer: [Evyd13](https://github.com/evyd13)
6Hardware Supported: Ver.B (RS78), Ver.C (RS68) 6Hardware Supported: Ver.B (RS78), Ver.C (RS68)
7Hardware Availability: [Drop](https://drop.com/buy/red-scarf-ii-ver-b-custom-mechanical-keyboard-kit) 7Hardware Availability: [Drop](https://drop.com/buy/red-scarf-ii-ver-b-custom-mechanical-keyboard-kit)
8 8
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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35CUSTOM_MATRIX = yes 34CUSTOM_MATRIX = yes
36SRC += matrix.c 35SRC += 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* 1/*
2Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2019 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35CUSTOM_MATRIX = yes 34CUSTOM_MATRIX = yes
36SRC += matrix.c 35SRC += 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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 @@
1/* Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 1/* Copyright 2019 Evy Dekkers
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * 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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35CUSTOM_MATRIX = yes 34CUSTOM_MATRIX = yes
36SRC += matrix.c 35SRC += 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/>.
216/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 216/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
217//#define MIDI_TONE_KEYCODE_OCTAVES 1 217//#define MIDI_TONE_KEYCODE_OCTAVES 1
218 218
219/*
220 * HD44780 LCD Display Configuration
221 */
222/*
223#define LCD_LINES 2 //< number of visible lines of the display
224#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
225
226#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
227
228#if LCD_IO_MODE
229#define LCD_PORT PORTB //< port for the LCD lines
230#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
231#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
232#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
233#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
234#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
235#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
236#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
237#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
238#define LCD_RS_PORT LCD_PORT //< port for RS line
239#define LCD_RS_PIN 3 //< pin for RS line
240#define LCD_RW_PORT LCD_PORT //< port for RW line
241#define LCD_RW_PIN 2 //< pin for RW line
242#define LCD_E_PORT LCD_PORT //< port for Enable line
243#define LCD_E_PIN 1 //< pin for Enable line
244#endif
245*/
246
247/* Bootmagic Lite key configuration */ 219/* Bootmagic Lite key configuration */
248// #define BOOTMAGIC_LITE_ROW 0 220// #define BOOTMAGIC_LITE_ROW 0
249// #define BOOTMAGIC_LITE_COLUMN 0 221// #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
19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 19BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
20AUDIO_ENABLE = no # Audio output on port C6 20AUDIO_ENABLE = no # Audio output on port C6
21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 21FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
22HD44780_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33UNICODE_ENABLE = yes # Unicode 32UNICODE_ENABLE = yes # Unicode
34 33
35# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 34# 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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
12NKRO_ENABLE = no # USB Nkey Rollover 12NKRO_ENABLE = no # USB Nkey Rollover
13BLUETOOTH_ENABLE = no # Enable Bluetooth 13BLUETOOTH_ENABLE = no # Enable Bluetooth
14AUDIO_ENABLE = no # Audio output 14AUDIO_ENABLE = no # Audio output
15RGB_MATRIX_ENABLE = WS2812 15RGB_MATRIX_ENABLE = yes
16RGB_MATRIX_DRIVER = WS2812
16WS2812_DRIVER = bitbang 17WS2812_DRIVER = bitbang
17ENCODER_ENABLE = yes 18ENCODER_ENABLE = yes
18OLED_DRIVER_ENABLE = yes 19OLED_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
8RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix 8RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
9RGBLIGHT_ANIMATIONS = no # LED animations 9RGBLIGHT_ANIMATIONS = no # LED animations
10LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) 10LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
11RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight 11RGB_MATRIX_ENABLE = yes # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
12 12
13# Userspace implements their own LTO 13# Userspace implements their own LTO
14LTO_ENABLE = no 14LTO_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 @@
4RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix 4RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
5RGBLIGHT_ANIMATIONS = no # LED animations 5RGBLIGHT_ANIMATIONS = no # LED animations
6LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) 6LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
7RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight 7RGB_MATRIX_ENABLE = yes # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
8FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs 8FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs
9SF_ENABLE = no # Enables the additional 38 Starfighter LEDs 9SF_ENABLE = no # Enables the additional 38 Starfighter LEDs
10 10
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
17LED_MIRRORED = yes # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) 17LED_MIRRORED = yes # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
18 18
19RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight 19RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
20RGB_MATRIX_DRIVER = WS2812
20RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. 21RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects.
21RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap. 22RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap.
22 23
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
16RGBLIGHT_ANIMATIONS = no # LED animations 16RGBLIGHT_ANIMATIONS = no # LED animations
17LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master) 17LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
18 18
19RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight 19RGB_MATRIX_ENABLE = yes # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
20RGB_MATRIX_DRIVER = WS2812
20RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. 21RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects.
21RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap. 22RGB_MATRIX_FRAMEBUFFER_EFFECTS = no # Enable frame buffer effects like the typing heatmap.
22 23
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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs 33RGB_MATRIX_DRIVER = WS2812
34 34
35SPLIT_KEYBOARD = yes 35SPLIT_KEYBOARD = yes
36LAYOUTS = ortho_4x12 ortho_5x12 36LAYOUTS = 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35SPLIT_KEYBOARD = yes # Enables split keyboard support 34SPLIT_KEYBOARD = yes # Enables split keyboard support
36 35
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/>.
216/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 216/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
217//#define MIDI_TONE_KEYCODE_OCTAVES 1 217//#define MIDI_TONE_KEYCODE_OCTAVES 1
218 218
219/*
220 * HD44780 LCD Display Configuration
221 */
222/*
223#define LCD_LINES 2 //< number of visible lines of the display
224#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
225
226#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
227
228#if LCD_IO_MODE
229#define LCD_PORT PORTB //< port for the LCD lines
230#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
231#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
232#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
233#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
234#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
235#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
236#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
237#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
238#define LCD_RS_PORT LCD_PORT //< port for RS line
239#define LCD_RS_PIN 3 //< pin for RS line
240#define LCD_RW_PORT LCD_PORT //< port for RW line
241#define LCD_RW_PIN 2 //< pin for RW line
242#define LCD_E_PORT LCD_PORT //< port for Enable line
243#define LCD_E_PIN 1 //< pin for Enable line
244#endif
245*/
246
247/* Bootmagic Lite key configuration */ 219/* Bootmagic Lite key configuration */
248 #define BOOTMAGIC_LITE_ROW 0 220 #define BOOTMAGIC_LITE_ROW 0
249 #define BOOTMAGIC_LITE_COLUMN 6 221 #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output 31AUDIO_ENABLE = no # Audio output
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
222/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 222/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
223//#define MIDI_TONE_KEYCODE_OCTAVES 1 223//#define MIDI_TONE_KEYCODE_OCTAVES 1
224 224
225/*
226 * HD44780 LCD Display Configuration
227 */
228/*
229#define LCD_LINES 2 //< number of visible lines of the display
230#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
231
232#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
233
234#if LCD_IO_MODE
235#define LCD_PORT PORTB //< port for the LCD lines
236#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
237#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
238#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
239#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
240#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
241#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
242#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
243#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
244#define LCD_RS_PORT LCD_PORT //< port for RS line
245#define LCD_RS_PIN 3 //< pin for RS line
246#define LCD_RW_PORT LCD_PORT //< port for RW line
247#define LCD_RW_PIN 2 //< pin for RW line
248#define LCD_E_PORT LCD_PORT //< port for Enable line
249#define LCD_E_PIN 1 //< pin for Enable line
250#endif
251*/
252
253/* Bootmagic Lite key configuration */ 225/* Bootmagic Lite key configuration */
254//#define BOOTMAGIC_LITE_ROW 0 226//#define BOOTMAGIC_LITE_ROW 0
255//#define BOOTMAGIC_LITE_COLUMN 0 227//#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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
191/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 191/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
192//#define MIDI_TONE_KEYCODE_OCTAVES 1 192//#define MIDI_TONE_KEYCODE_OCTAVES 1
193 193
194/*
195 * HD44780 LCD Display Configuration
196 */
197/*
198#define LCD_LINES 2 //< number of visible lines of the display
199#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
200
201#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
202
203#if LCD_IO_MODE
204#define LCD_PORT PORTB //< port for the LCD lines
205#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
206#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
207#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
208#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
209#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
210#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
211#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
212#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
213#define LCD_RS_PORT LCD_PORT //< port for RS line
214#define LCD_RS_PIN 3 //< pin for RS line
215#define LCD_RW_PORT LCD_PORT //< port for RW line
216#define LCD_RW_PIN 2 //< pin for RW line
217#define LCD_E_PORT LCD_PORT //< port for Enable line
218#define LCD_E_PIN 1 //< pin for Enable line
219#endif
220*/
221
222/* Bootmagic Lite key configuration */ 194/* Bootmagic Lite key configuration */
223// #define BOOTMAGIC_LITE_ROW 0 195// #define BOOTMAGIC_LITE_ROW 0
224// #define BOOTMAGIC_LITE_COLUMN 0 196// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35SPLIT_KEYBOARD = yes # Use shared split_common 34SPLIT_KEYBOARD = yes # Use shared split_common
36RGBLIGHT_SPLIT = yes 35RGBLIGHT_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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 @@
1RGBLIGHT_ENABLE = no 1RGBLIGHT_ENABLE = no
2RGB_MATRIX_ENABLE = WS2812 2RGB_MATRIX_ENABLE = yes
3OLED_DRIVER_ENABLE = yes 3OLED_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
31USE_I2C = no 31USE_I2C = no
32# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 32# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
33SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 33SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
34RGB_MATRIX_ENABLE = no
35RGB_MATRIX_DRIVER = WS2812
34 36
35DEFAULT_FOLDER = setta21/rev1 37DEFAULT_FOLDER = setta21/rev1
36 38
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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/>.
261/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 261/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
262//#define MIDI_TONE_KEYCODE_OCTAVES 1 262//#define MIDI_TONE_KEYCODE_OCTAVES 1
263 263
264/*
265 * HD44780 LCD Display Configuration
266 */
267/*
268#define LCD_LINES 2 //< number of visible lines of the display
269#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
270
271#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
272
273#if LCD_IO_MODE
274#define LCD_PORT PORTB //< port for the LCD lines
275#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
276#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
277#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
278#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
279#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
280#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
281#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
282#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
283#define LCD_RS_PORT LCD_PORT //< port for RS line
284#define LCD_RS_PIN 3 //< pin for RS line
285#define LCD_RW_PORT LCD_PORT //< port for RW line
286#define LCD_RW_PIN 2 //< pin for RW line
287#define LCD_E_PORT LCD_PORT //< port for Enable line
288#define LCD_E_PIN 1 //< pin for Enable line
289#endif
290*/
291
292/* Bootmagic Lite key configuration */ 264/* Bootmagic Lite key configuration */
293// #define BOOTMAGIC_LITE_ROW 0 265// #define BOOTMAGIC_LITE_ROW 0
294// #define BOOTMAGIC_LITE_COLUMN 0 266// #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
25NKRO_ENABLE = no # USB Nkey Rollover 25NKRO_ENABLE = no # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default 26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
27RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 27RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
28#RGB_MATRIX_ENABLE = WS2812 28RGB_MATRIX_ENABLE = no
29RGB_MATRIX_DRIVER = WS2812
29MIDI_ENABLE = no # MIDI support 30MIDI_ENABLE = no # MIDI support
30UNICODE_ENABLE = no # Unicode 31UNICODE_ENABLE = no # Unicode
31BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 32BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
32AUDIO_ENABLE = yes # Audio output on port B6 33AUDIO_ENABLE = yes # Audio output on port B6
33FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 34FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
34HD44780_ENABLE = no # Enable support for HD44780 based LCDs
35SPLIT_KEYBOARD = yes 35SPLIT_KEYBOARD = yes
36LTO_ENABLE = yes 36LTO_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/>.
212/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 212/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
213//#define MIDI_TONE_KEYCODE_OCTAVES 1 213//#define MIDI_TONE_KEYCODE_OCTAVES 1
214 214
215/*
216 * HD44780 LCD Display Configuration
217 */
218/*
219#define LCD_LINES 2 //< number of visible lines of the display
220#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
221
222#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
223
224#if LCD_IO_MODE
225#define LCD_PORT PORTB //< port for the LCD lines
226#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
227#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
228#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
229#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
230#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
231#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
232#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
233#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
234#define LCD_RS_PORT LCD_PORT //< port for RS line
235#define LCD_RS_PIN 3 //< pin for RS line
236#define LCD_RW_PORT LCD_PORT //< port for RW line
237#define LCD_RW_PIN 2 //< pin for RW line
238#define LCD_E_PORT LCD_PORT //< port for Enable line
239#define LCD_E_PIN 1 //< pin for Enable line
240#endif
241*/
242
243/* Bootmagic Lite key configuration */ 215/* Bootmagic Lite key configuration */
244// #define BOOTMAGIC_LITE_ROW 0 216// #define BOOTMAGIC_LITE_ROW 0
245// #define BOOTMAGIC_LITE_COLUMN 0 217// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35LAYOUTS = numpad_6x4 34LAYOUTS = 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/>.
212/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 212/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
213//#define MIDI_TONE_KEYCODE_OCTAVES 1 213//#define MIDI_TONE_KEYCODE_OCTAVES 1
214 214
215/*
216 * HD44780 LCD Display Configuration
217 */
218/*
219#define LCD_LINES 2 //< number of visible lines of the display
220#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
221
222#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
223
224#if LCD_IO_MODE
225#define LCD_PORT PORTB //< port for the LCD lines
226#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
227#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
228#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
229#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
230#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
231#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
232#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
233#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
234#define LCD_RS_PORT LCD_PORT //< port for RS line
235#define LCD_RS_PIN 3 //< pin for RS line
236#define LCD_RW_PORT LCD_PORT //< port for RW line
237#define LCD_RW_PIN 2 //< pin for RW line
238#define LCD_E_PORT LCD_PORT //< port for Enable line
239#define LCD_E_PIN 1 //< pin for Enable line
240#endif
241*/
242
243/* Bootmagic Lite key configuration */ 215/* Bootmagic Lite key configuration */
244// #define BOOTMAGIC_LITE_ROW 0 216// #define BOOTMAGIC_LITE_ROW 0
245// #define BOOTMAGIC_LITE_COLUMN 0 217// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34OLED_DRIVER_ENABLE = no 33OLED_DRIVER_ENABLE = no
35 34
36# Enable generic behavior for split boards 35# 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 @@
1/*
2Copyright 2017 Paul Ewing
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#ifndef CONFIG_H
19#define CONFIG_H
20
21#include "config_common.h"
22
23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x0000
26#define DEVICE_VER 0x0001
27#define MANUFACTURER You
28#define PRODUCT speedo
29#define DESCRIPTION A custom keyboard
30
31/* key matrix size */
32#define MATRIX_ROWS 5
33#define MATRIX_COLS 14
34
35/*
36 * Keyboard Matrix Assignments
37 *
38 * Change this to how you wired your keyboard
39 * COLS: AVR pins used for columns, left to right
40 * ROWS: AVR pins used for rows, top to bottom
41 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
42 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
43 *
44*/
45//#define MATRIX_ROW_PINS { D0, D5 }
46#define MATRIX_ROW_PINS { D1, D2, D3, C6, C7 }
47#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, D0, B7, B3, B2, B1, B0 }
48#define UNUSED_PINS { D5, D4, D6, D7, B4 }
49
50/* COL2ROW, ROW2COL*/
51#define DIODE_DIRECTION COL2ROW
52
53// #define BACKLIGHT_PIN B7
54// #define BACKLIGHT_BREATHING
55// #define BACKLIGHT_LEVELS 3
56
57/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
58#define DEBOUNCE 5
59
60/* define if matrix has ghost (lacks anti-ghosting diodes) */
61//#define MATRIX_HAS_GHOST
62
63/* number of backlight levels */
64
65/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
66#define LOCKING_SUPPORT_ENABLE
67/* Locking resynchronize hack */
68#define LOCKING_RESYNC_ENABLE
69
70/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
71 * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
72 */
73// #define GRAVE_ESC_CTRL_OVERRIDE
74
75/*
76 * Force NKRO
77 *
78 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
79 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
80 * makefile for this to work.)
81 *
82 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
83 * until the next keyboard reset.
84 *
85 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
86 * fully operational during normal computer usage.
87 *
88 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
89 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
90 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
91 * power-up.
92 *
93 */
94//#define FORCE_NKRO
95
96/*
97 * Magic Key Options
98 *
99 * Magic keys are hotkey commands that allow control over firmware functions of
100 * the keyboard. They are best used in combination with the HID Listen program,
101 * found here: https://www.pjrc.com/teensy/hid_listen.html
102 *
103 * The options below allow the magic key functionality to be changed. This is
104 * useful if your keyboard/keypad is missing keys and you want magic key support.
105 *
106 */
107
108/* control how magic key switches layers */
109//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
110//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
111//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
112
113/* override magic key keymap */
114//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
115//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
116//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
117//#define MAGIC_KEY_HELP1 H
118//#define MAGIC_KEY_HELP2 SLASH
119//#define MAGIC_KEY_DEBUG D
120//#define MAGIC_KEY_DEBUG_MATRIX X
121//#define MAGIC_KEY_DEBUG_KBD K
122//#define MAGIC_KEY_DEBUG_MOUSE M
123//#define MAGIC_KEY_VERSION V
124//#define MAGIC_KEY_STATUS S
125//#define MAGIC_KEY_CONSOLE C
126//#define MAGIC_KEY_LAYER0_ALT1 ESC
127//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
128//#define MAGIC_KEY_LAYER0 0
129//#define MAGIC_KEY_LAYER1 1
130//#define MAGIC_KEY_LAYER2 2
131//#define MAGIC_KEY_LAYER3 3
132//#define MAGIC_KEY_LAYER4 4
133//#define MAGIC_KEY_LAYER5 5
134//#define MAGIC_KEY_LAYER6 6
135//#define MAGIC_KEY_LAYER7 7
136//#define MAGIC_KEY_LAYER8 8
137//#define MAGIC_KEY_LAYER9 9
138//#define MAGIC_KEY_BOOTLOADER PAUSE
139//#define MAGIC_KEY_LOCK CAPS
140//#define MAGIC_KEY_EEPROM E
141//#define MAGIC_KEY_NKRO N
142//#define MAGIC_KEY_SLEEP_LED Z
143
144/*
145 * Feature disable options
146 * These options are also useful to firmware size reduction.
147 */
148
149/* disable debug print */
150//#define NO_DEBUG
151
152/* disable print */
153//#define NO_PRINT
154
155/* disable action features */
156//#define NO_ACTION_LAYER
157//#define NO_ACTION_TAPPING
158//#define NO_ACTION_ONESHOT
159//#define NO_ACTION_MACRO
160//#define NO_ACTION_FUNCTION
161
162/*
163 * MIDI options
164 */
165
166/* Prevent use of disabled MIDI features in the keymap */
167//#define MIDI_ENABLE_STRICT 1
168
169/* enable basic MIDI features:
170 - MIDI notes can be sent when in Music mode is on
171*/
172//#define MIDI_BASIC
173
174/* enable advanced MIDI features:
175 - MIDI notes can be added to the keymap
176 - Octave shift and transpose
177 - Virtual sustain, portamento, and modulation wheel
178 - etc.
179*/
180//#define MIDI_ADVANCED
181
182/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
183//#define MIDI_TONE_KEYCODE_OCTAVES 1
184
185#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 @@
1{
2 "keyboard_name": "Speedo",
3 "url": "",
4 "maintainer": "qmk",
5 "bootloader": "",
6 "width": 15,
7 "height": 6.5,
8 "layouts": {
9 "LAYOUT": {
10 "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}]
11 }
12 }
13}
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 @@
1# 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 @@
1# Speedo
2
3![Speedo](https://raw.githubusercontent.com/pcewing/speedo/master/build_log/images/04-03_23-09-56_00.jpg)
4
5Keyboard Maintainer: [Paul Ewing](https://github.com/pcewing)
6Hardware Supported: Teensy 2.0
7Hardware 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).
8
9Make example for this keyboard (after setting up your build environment):
10
11 make speedo:default
12
13See [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.
14
15## Flashing the Firmware
16See 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 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = halfkay
13
14# Build Options
15# change yes to no to disable
16#
17BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
18MOUSEKEY_ENABLE = yes # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control
20CONSOLE_ENABLE = yes # Console for debug
21COMMAND_ENABLE = yes # Commands for debug and configuration
22# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = no # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
27MIDI_ENABLE = no # MIDI support
28UNICODE_ENABLE = no # Unicode
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_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 @@
1/* Copyright 2017 Paul Ewing
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include "speedo.h"
17
18void matrix_init_kb(void) {
19 // put your keyboard start-up code here
20 // runs once when the firmware starts up
21
22 matrix_init_user();
23}
24
25void matrix_scan_kb(void) {
26 // put your looping keyboard code here
27 // runs every cycle (a lot)
28
29 matrix_scan_user();
30}
31
32bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
33 // put your per-action keyboard code here
34 // runs for every action, just before processing by the firmware
35
36 return process_record_user(keycode, record);
37}
38
39void led_set_kb(uint8_t usb_led) {
40 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
41
42 led_set_user(usb_led);
43}
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 @@
1/* Copyright 2017 Paul Ewing
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#ifndef SPEEDO_H
17#define SPEEDO_H
18
19#include "quantum.h"
20
21// This a shortcut to help you visually see your layout.
22// The following is an example using the Planck MIT layout
23// The first section contains all of the arguments
24// The second converts the arguments into a two-dimensional array
25#define LAYOUT( \
26 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, \
27 k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, \
28 k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, \
29 k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, \
30 k52, k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65 \
31) \
32{ \
33 { k00, k01, k02, k03, k04, k05, KC_NO, KC_NO, k06, k07, k08, k09, k10, k11 }, \
34 { k12, k13, k14, k15, k16, k17, k18, KC_NO, k19, k20, k21, k22, k23, k24 }, \
35 { k25, k26, k27, k28, k29, k30, KC_NO, k31, k32, k33, k34, k35, k36, k37 }, \
36 { k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51 }, \
37 { k52, k53, k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64, k65 } \
38}
39
40#endif
41
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33UNICODE_ENABLE = no # Unicode 32UNICODE_ENABLE = no # Unicode
34 33
35SPLIT_KEYBOARD = yes 34SPLIT_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 @@
174/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 174/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
175//#define MIDI_TONE_KEYCODE_OCTAVES 1 175//#define MIDI_TONE_KEYCODE_OCTAVES 1
176 176
177/*
178 * HD44780 LCD Display Configuration
179 */
180/*
181#define LCD_LINES 2 //< number of visible lines of the display
182#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
183
184#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
185
186#if LCD_IO_MODE
187#define LCD_PORT PORTB //< port for the LCD lines
188#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
189#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
190#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
191#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
192#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
193#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
194#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
195#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
196#define LCD_RS_PORT LCD_PORT //< port for RS line
197#define LCD_RS_PIN 3 //< pin for RS line
198#define LCD_RW_PORT LCD_PORT //< port for RW line
199#define LCD_RW_PIN 2 //< pin for RW line
200#define LCD_E_PORT LCD_PORT //< port for Enable line
201#define LCD_E_PIN 1 //< pin for Enable line
202#endif
203*/
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33RGBLIGHT_ENABLE = yes # Enable RGB underlighting support 32RGBLIGHT_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
213/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 213/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
214//#define MIDI_TONE_KEYCODE_OCTAVES 1 214//#define MIDI_TONE_KEYCODE_OCTAVES 1
215 215
216/*
217 * HD44780 LCD Display Configuration
218 */
219/*
220#define LCD_LINES 2 //< number of visible lines of the display
221#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
222
223#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
224
225#if LCD_IO_MODE
226#define LCD_PORT PORTB //< port for the LCD lines
227#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
228#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
229#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
230#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
231#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
232#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
233#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
234#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
235#define LCD_RS_PORT LCD_PORT //< port for RS line
236#define LCD_RS_PIN 3 //< pin for RS line
237#define LCD_RW_PORT LCD_PORT //< port for RW line
238#define LCD_RW_PIN 2 //< pin for RW line
239#define LCD_E_PORT LCD_PORT //< port for Enable line
240#define LCD_E_PIN 1 //< pin for Enable line
241#endif
242*/
243
244/* Bootmagic Lite key configuration */ 216/* Bootmagic Lite key configuration */
245// #define BOOTMAGIC_LITE_ROW 0 217// #define BOOTMAGIC_LITE_ROW 0
246// #define BOOTMAGIC_LITE_COLUMN 0 218// #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/>.
213/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 213/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
214//#define MIDI_TONE_KEYCODE_OCTAVES 1 214//#define MIDI_TONE_KEYCODE_OCTAVES 1
215 215
216/*
217 * HD44780 LCD Display Configuration
218 */
219/*
220#define LCD_LINES 2 //< number of visible lines of the display
221#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
222
223#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
224
225#if LCD_IO_MODE
226#define LCD_PORT PORTB //< port for the LCD lines
227#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
228#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
229#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
230#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
231#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
232#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
233#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
234#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
235#define LCD_RS_PORT LCD_PORT //< port for RS line
236#define LCD_RS_PIN 3 //< pin for RS line
237#define LCD_RW_PORT LCD_PORT //< port for RW line
238#define LCD_RW_PIN 2 //< pin for RW line
239#define LCD_E_PORT LCD_PORT //< port for Enable line
240#define LCD_E_PIN 1 //< pin for Enable line
241#endif
242*/
243
244/* Bootmagic Lite key configuration */ 216/* Bootmagic Lite key configuration */
245// #define BOOTMAGIC_LITE_ROW 0 217// #define BOOTMAGIC_LITE_ROW 0
246// #define BOOTMAGIC_LITE_COLUMN 0 218// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34OLED_DRIVER_ENABLE = yes 33OLED_DRIVER_ENABLE = yes
35SPLIT_KEYBOARD = no 34SPLIT_KEYBOARD = no
36 35
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/>.
213/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 213/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
214//#define MIDI_TONE_KEYCODE_OCTAVES 1 214//#define MIDI_TONE_KEYCODE_OCTAVES 1
215 215
216/*
217 * HD44780 LCD Display Configuration
218 */
219/*
220#define LCD_LINES 2 //< number of visible lines of the display
221#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
222
223#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
224
225#if LCD_IO_MODE
226#define LCD_PORT PORTB //< port for the LCD lines
227#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
228#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
229#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
230#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
231#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
232#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
233#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
234#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
235#define LCD_RS_PORT LCD_PORT //< port for RS line
236#define LCD_RS_PIN 3 //< pin for RS line
237#define LCD_RW_PORT LCD_PORT //< port for RW line
238#define LCD_RW_PIN 2 //< pin for RW line
239#define LCD_E_PORT LCD_PORT //< port for Enable line
240#define LCD_E_PIN 1 //< pin for Enable line
241#endif
242*/
243
244/* Bootmagic Lite key configuration */ 216/* Bootmagic Lite key configuration */
245// #define BOOTMAGIC_LITE_ROW 0 217// #define BOOTMAGIC_LITE_ROW 0
246// #define BOOTMAGIC_LITE_COLUMN 0 218// #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/>.
213/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 213/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
214//#define MIDI_TONE_KEYCODE_OCTAVES 1 214//#define MIDI_TONE_KEYCODE_OCTAVES 1
215 215
216/*
217 * HD44780 LCD Display Configuration
218 */
219/*
220#define LCD_LINES 2 //< number of visible lines of the display
221#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
222
223#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
224
225#if LCD_IO_MODE
226#define LCD_PORT PORTB //< port for the LCD lines
227#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
228#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
229#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
230#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
231#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
232#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
233#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
234#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
235#define LCD_RS_PORT LCD_PORT //< port for RS line
236#define LCD_RS_PIN 3 //< pin for RS line
237#define LCD_RW_PORT LCD_PORT //< port for RW line
238#define LCD_RW_PIN 2 //< pin for RW line
239#define LCD_E_PORT LCD_PORT //< port for Enable line
240#define LCD_E_PIN 1 //< pin for Enable line
241#endif
242*/
243
244/* Bootmagic Lite key configuration */ 216/* Bootmagic Lite key configuration */
245// #define BOOTMAGIC_LITE_ROW 0 217// #define BOOTMAGIC_LITE_ROW 0
246// #define BOOTMAGIC_LITE_COLUMN 0 218// #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 @@
206/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 206/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
207//#define MIDI_TONE_KEYCODE_OCTAVES 1 207//#define MIDI_TONE_KEYCODE_OCTAVES 1
208 208
209/*
210 * HD44780 LCD Display Configuration
211 */
212/*
213#define LCD_LINES 2 //< number of visible lines of the display
214#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
215
216#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
217
218#if LCD_IO_MODE
219#define LCD_PORT PORTB //< port for the LCD lines
220#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
221#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
222#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
223#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
224#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
225#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
226#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
227#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
228#define LCD_RS_PORT LCD_PORT //< port for RS line
229#define LCD_RS_PIN 3 //< pin for RS line
230#define LCD_RW_PORT LCD_PORT //< port for RW line
231#define LCD_RW_PIN 2 //< pin for RW line
232#define LCD_E_PORT LCD_PORT //< port for Enable line
233#define LCD_E_PIN 1 //< pin for Enable line
234#endif
235*/
236
237/* Bootmagic Lite key configuration */ 209/* Bootmagic Lite key configuration */
238// #define BOOTMAGIC_LITE_ROW 0 210// #define BOOTMAGIC_LITE_ROW 0
239// #define BOOTMAGIC_LITE_COLUMN 0 211// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34LTO_ENABLE = yes 33LTO_ENABLE = yes
35 34
36# custom matrix setup 35# 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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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 @@
1#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 @@
1#include QMK_KEYBOARD_H
2
3#define _MA 0
4#define _GA 1
5#define _FL 2
6#define _AR 3
7#define _LE 4
8#define _LO 5
9#define _UL 6
10
11#define TRNS KC_TRNS
12#define trigger_time 400
13
14#define LSHIFT OSM(MOD_LSFT)
15#define SPACE LT(_AR, KC_SPC)
16
17const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18// Main Layer
19[_MA] = LAYOUT_ansi(
20 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,
21 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,
22 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,
23 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,
24 KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
25
26//Function Layer
27[_FL] = LAYOUT_ansi(
28 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,
29 TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_INS,
30 TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_HOME,
31 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_WH_U, KC_END,
32 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_WH_L, KC_WH_D, KC_WH_R),
33
34//Arrow keys layer (space bar)
35[_AR] = LAYOUT_ansi(
36 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,
37 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
38 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TRNS, TRNS, TRNS, TRNS,
39 TRNS, TERM_ON, TERM_OFF, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
40 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
41//Game layer (fn + g)
42[_GA] = LAYOUT_ansi(
43 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
44 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
45 TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
46 KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
47 TRNS, TRNS, TRNS, KC_SPC, TRNS, TRNS, MO(_FL), TRNS, TRNS, TRNS),
48}; \ 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 @@
1# Maartenwut's layout
2
3Well, 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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33UNICODE_ENABLE = no # Unicode 32UNICODE_ENABLE = no # Unicode
34 33
35LAYOUTS = 65_ansi 65_iso 34LAYOUTS = 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
26AUDIO_ENABLE = no 26AUDIO_ENABLE = no
27RGBLIGHT_ENABLE = no 27RGBLIGHT_ENABLE = no
28BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 28BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
29LED_MATRIX_ENABLE = IS31FL3731 29LED_MATRIX_ENABLE = yes
30LED_MATRIX_DRIVER = IS31FL3731
30ENCODER_ENABLE = yes 31ENCODER_ENABLE = yes
31WPM_ENABLE = yes 32WPM_ENABLE = yes
32 33
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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34LTO_ENABLE = yes 33LTO_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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/>.
213/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 213/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
214//#define MIDI_TONE_KEYCODE_OCTAVES 1 214//#define MIDI_TONE_KEYCODE_OCTAVES 1
215 215
216/*
217 * HD44780 LCD Display Configuration
218 */
219/*
220#define LCD_LINES 2 //< number of visible lines of the display
221#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
222
223#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
224
225#if LCD_IO_MODE
226#define LCD_PORT PORTB //< port for the LCD lines
227#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
228#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
229#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
230#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
231#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
232#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
233#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
234#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
235#define LCD_RS_PORT LCD_PORT //< port for RS line
236#define LCD_RS_PIN 3 //< pin for RS line
237#define LCD_RW_PORT LCD_PORT //< port for RW line
238#define LCD_RW_PIN 2 //< pin for RW line
239#define LCD_E_PORT LCD_PORT //< port for Enable line
240#define LCD_E_PIN 1 //< pin for Enable line
241#endif
242*/
243
244/* Bootmagic Lite key configuration */ 216/* Bootmagic Lite key configuration */
245// #define BOOTMAGIC_LITE_ROW 0 217// #define BOOTMAGIC_LITE_ROW 0
246// #define BOOTMAGIC_LITE_COLUMN 0 218// #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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33CUSTOM_MATRIX = yes 32CUSTOM_MATRIX = yes
34 33
35SRC += matrix.c 34SRC += 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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/>.
224/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 224/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
225//#define MIDI_TONE_KEYCODE_OCTAVES 1 225//#define MIDI_TONE_KEYCODE_OCTAVES 1
226 226
227/*
228 * HD44780 LCD Display Configuration
229 */
230/*
231#define LCD_LINES 2 //< number of visible lines of the display
232#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
233
234#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
235
236#if LCD_IO_MODE
237#define LCD_PORT PORTB //< port for the LCD lines
238#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
239#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
240#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
241#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
242#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
243#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
244#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
245#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
246#define LCD_RS_PORT LCD_PORT //< port for RS line
247#define LCD_RS_PIN 3 //< pin for RS line
248#define LCD_RW_PORT LCD_PORT //< port for RW line
249#define LCD_RW_PIN 2 //< pin for RW line
250#define LCD_E_PORT LCD_PORT //< port for Enable line
251#define LCD_E_PIN 1 //< pin for Enable line
252#endif
253*/
254
255/* Bootmagic Lite key configuration */ 227/* Bootmagic Lite key configuration */
256// #define BOOTMAGIC_LITE_ROW 0 228// #define BOOTMAGIC_LITE_ROW 0
257// #define BOOTMAGIC_LITE_COLUMN 0 229// #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/>.
217/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 217/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
218//#define MIDI_TONE_KEYCODE_OCTAVES 1 218//#define MIDI_TONE_KEYCODE_OCTAVES 1
219 219
220/*
221 * HD44780 LCD Display Configuration
222 */
223/*
224#define LCD_LINES 2 //< number of visible lines of the display
225#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
226
227#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
228
229#if LCD_IO_MODE
230#define LCD_PORT PORTB //< port for the LCD lines
231#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
232#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
233#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
234#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
235#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
236#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
237#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
238#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
239#define LCD_RS_PORT LCD_PORT //< port for RS line
240#define LCD_RS_PIN 3 //< pin for RS line
241#define LCD_RW_PORT LCD_PORT //< port for RW line
242#define LCD_RW_PIN 2 //< pin for RW line
243#define LCD_E_PORT LCD_PORT //< port for Enable line
244#define LCD_E_PIN 1 //< pin for Enable line
245#endif
246*/
247
248/* Bootmagic Lite key configuration */ 220/* Bootmagic Lite key configuration */
249// #define BOOTMAGIC_LITE_ROW 0 221// #define BOOTMAGIC_LITE_ROW 0
250// #define BOOTMAGIC_LITE_COLUMN 0 222// #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
27BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 27BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
28AUDIO_ENABLE = no # Audio output on port C6 28AUDIO_ENABLE = no # Audio output on port C6
29FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 29FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
30HD44780_ENABLE = no # Enable support for HD44780 based LCDs
31SPLIT_KEYBOARD = yes 30SPLIT_KEYBOARD = yes
32 31
33MOUSEKEY_ENABLE = yes # Mouse keys 32MOUSEKEY_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/>.
189/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 189/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
190//#define MIDI_TONE_KEYCODE_OCTAVES 1 190//#define MIDI_TONE_KEYCODE_OCTAVES 1
191 191
192/*
193 * HD44780 LCD Display Configuration
194 */
195/*
196#define LCD_LINES 2 //< number of visible lines of the display
197#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
198
199#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
200
201#if LCD_IO_MODE
202#define LCD_PORT PORTB //< port for the LCD lines
203#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
204#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
205#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
206#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
207#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
208#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
209#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
210#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
211#define LCD_RS_PORT LCD_PORT //< port for RS line
212#define LCD_RS_PIN 3 //< pin for RS line
213#define LCD_RW_PORT LCD_PORT //< port for RW line
214#define LCD_RW_PIN 2 //< pin for RW line
215#define LCD_E_PORT LCD_PORT //< port for Enable line
216#define LCD_E_PIN 1 //< pin for Enable line
217#endif
218*/
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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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/>.
217/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 217/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
218//#define MIDI_TONE_KEYCODE_OCTAVES 1 218//#define MIDI_TONE_KEYCODE_OCTAVES 1
219 219
220/*
221 * HD44780 LCD Display Configuration
222 */
223/*
224#define LCD_LINES 2 //< number of visible lines of the display
225#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
226
227#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
228
229#if LCD_IO_MODE
230#define LCD_PORT PORTB //< port for the LCD lines
231#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
232#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
233#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
234#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
235#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
236#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
237#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
238#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
239#define LCD_RS_PORT LCD_PORT //< port for RS line
240#define LCD_RS_PIN 3 //< pin for RS line
241#define LCD_RW_PORT LCD_PORT //< port for RW line
242#define LCD_RW_PIN 2 //< pin for RW line
243#define LCD_E_PORT LCD_PORT //< port for Enable line
244#define LCD_E_PIN 1 //< pin for Enable line
245#endif
246*/
247
248/* Bootmagic Lite key configuration */ 220/* Bootmagic Lite key configuration */
249// #define BOOTMAGIC_LITE_ROW 0 221// #define BOOTMAGIC_LITE_ROW 0
250// #define BOOTMAGIC_LITE_COLUMN 0 222// #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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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
23MIDI_ENABLE = yes 23MIDI_ENABLE = yes
24OLED_DRIVER_ENABLE = yes 24OLED_DRIVER_ENABLE = yes
25ENCODER_ENABLE = yes 25ENCODER_ENABLE = yes
26RGB_MATRIX_ENABLE = WS2812 26RGB_MATRIX_ENABLE = yes
27RGB_MATRIX_DRIVER = WS2812
27SPACE_CADET_ENABLE = no 28SPACE_CADET_ENABLE = no
28MAGIC_ENABLE = no 29MAGIC_ENABLE = no
29GRAVE_ESC_ENABLE = no 30GRAVE_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 @@
203/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 203/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
204//#define MIDI_TONE_KEYCODE_OCTAVES 1 204//#define MIDI_TONE_KEYCODE_OCTAVES 1
205 205
206/*
207 * HD44780 LCD Display Configuration
208 */
209/*
210#define LCD_LINES 2 //< number of visible lines of the display
211#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
212
213#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
214
215#if LCD_IO_MODE
216#define LCD_PORT PORTB //< port for the LCD lines
217#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
218#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
219#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
220#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
221#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
222#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
223#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
224#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
225#define LCD_RS_PORT LCD_PORT //< port for RS line
226#define LCD_RS_PIN 3 //< pin for RS line
227#define LCD_RW_PORT LCD_PORT //< port for RW line
228#define LCD_RW_PIN 2 //< pin for RW line
229#define LCD_E_PORT LCD_PORT //< port for Enable line
230#define LCD_E_PIN 1 //< pin for Enable line
231#endif
232*/
233
234/* Bootmagic Lite key configuration */ 206/* Bootmagic Lite key configuration */
235// #define BOOTMAGIC_LITE_ROW 0 207// #define BOOTMAGIC_LITE_ROW 0
236// #define BOOTMAGIC_LITE_COLUMN 0 208// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35#COMBO_ENABLE = yes 34#COMBO_ENABLE = yes
36#SRC += .nicola.c \ 35#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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34LAYOUTS = tkl_ansi 33LAYOUTS = 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/>.
176/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 176/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
177//#define MIDI_TONE_KEYCODE_OCTAVES 1 177//#define MIDI_TONE_KEYCODE_OCTAVES 1
178 178
179/*
180 * HD44780 LCD Display Configuration
181 */
182/*
183#define LCD_LINES 2 //< number of visible lines of the display
184#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
185#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
186#if LCD_IO_MODE
187#define LCD_PORT PORTB //< port for the LCD lines
188#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
189#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
190#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
191#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
192#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
193#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
194#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
195#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
196#define LCD_RS_PORT LCD_PORT //< port for RS line
197#define LCD_RS_PIN 3 //< pin for RS line
198#define LCD_RW_PORT LCD_PORT //< port for RW line
199#define LCD_RW_PIN 2 //< pin for RW line
200#define LCD_E_PORT LCD_PORT //< port for Enable line
201#define LCD_E_PIN 1 //< pin for Enable line
202#endif
203*/
204
205/* Bootmagic Lite key configuration */ 179/* Bootmagic Lite key configuration */
206// #define BOOTMAGIC_LITE_ROW 0 180// #define BOOTMAGIC_LITE_ROW 0
207// #define BOOTMAGIC_LITE_COLUMN 0 181// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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 @@
1/* 1/*
2Copyright 2019 Maarten Dekkers <maartenwut@gmail.com> 2Copyright 2019 Evy Dekkers
3 3
4This program is free software: you can redistribute it and/or modify 4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by 5it 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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33UNICODE_ENABLE = no # Unicode 32UNICODE_ENABLE = no # Unicode
34 33
35LAYOUTS = 65_ansi_blocker 34LAYOUTS = 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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth 21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output 22AUDIO_ENABLE = no # Audio output
23RGB_MATRIX_ENABLE = IS31FL3731 23RGB_MATRIX_ENABLE = yes
24RGB_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
12#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend 12#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
13NKRO_ENABLE = yes # USB Nkey Rollover 13NKRO_ENABLE = yes # USB Nkey Rollover
14AUDIO_ENABLE = no 14AUDIO_ENABLE = no
15RGB_MATRIX_ENABLE = yes # Use RGB matrix 15RGB_MATRIX_ENABLE = yes # Use RGB matrix
16RGB_MATRIX_DRIVER = IS31FL3731
16NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in 17NO_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
25BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 25BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
26AUDIO_ENABLE = no # Audio output on port C6 26AUDIO_ENABLE = no # Audio output on port C6
27FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 27FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
28HD44780_ENABLE = no # Enable support for HD44780 based LCDs
29 28
30# Save as much space as we can... 29# Save as much space as we can...
31LTO_ENABLE = yes 30LTO_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33UNICODE_ENABLE = no # Unicode 32UNICODE_ENABLE = no # Unicode
34 33
35LAYOUTS = 65_ansi 65_ansi_split_bs 65_iso 34LAYOUTS = 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/>.
20#include "config_common.h" 20#include "config_common.h"
21 21
22/* USB Device descriptor parameter */ 22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x7844 // "XD" 23#define VENDOR_ID 0x7844 // "XD"
24#define PRODUCT_ID 0x7575 24#define PRODUCT_ID 0x7575
25#define DEVICE_VER 0x0001 25#define DEVICE_VER 0x0001
26#define MANUFACTURER xiudi 26#define MANUFACTURER xiudi
27#define PRODUCT XD75 27#define PRODUCT XD75
28#define DESCRIPTION XD75Re 15x5 ortholinear keyboard
29 28
30/* key matrix size */ 29/* key matrix size */
31#define MATRIX_ROWS 5 30#define MATRIX_ROWS 5
@@ -45,12 +44,41 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
45#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3, B0 } 44#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3, B0 }
46#define UNUSED_PINS 45#define UNUSED_PINS
47 46
48/* COL2ROW, ROW2COL*/ 47/* COL2ROW, ROW2COL */
49#define DIODE_DIRECTION COL2ROW 48#define DIODE_DIRECTION COL2ROW
50 49
51#define BACKLIGHT_PIN F5 50#define BACKLIGHT_PIN F5
52#define BACKLIGHT_LEVELS 6 51#define BACKLIGHT_LEVELS 6
53#define BACKLIGHT_ON_STATE 0 52#define BACKLIGHT_ON_STATE 0
53//#define BACKLIGHT_BREATHING
54
55#define RGB_DI_PIN F6
56#ifdef RGB_DI_PIN
57# define RGBLED_NUM 6
58# define RGBLIGHT_HUE_STEP 12
59# define RGBLIGHT_SAT_STEP 25
60# define RGBLIGHT_VAL_STEP 12
61//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
62//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
63/*== all animations enable ==*/
64# define RGBLIGHT_ANIMATIONS
65/*== or choose animations ==*/
66//# define RGBLIGHT_EFFECT_BREATHING
67//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
68//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
69//# define RGBLIGHT_EFFECT_SNAKE
70//# define RGBLIGHT_EFFECT_KNIGHT
71//# define RGBLIGHT_EFFECT_CHRISTMAS
72//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
73//# define RGBLIGHT_EFFECT_RGB_TEST
74//# define RGBLIGHT_EFFECT_ALTERNATING
75/*== customize breathing effect ==*/
76/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
77//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
78/*==== use exp() and sin() ====*/
79//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
80//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
81#endif
54 82
55/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ 83/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
56#define DEBOUNCE 5 84#define DEBOUNCE 5
@@ -58,13 +86,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
58/* define if matrix has ghost (lacks anti-ghosting diodes) */ 86/* define if matrix has ghost (lacks anti-ghosting diodes) */
59//#define MATRIX_HAS_GHOST 87//#define MATRIX_HAS_GHOST
60 88
61/* number of backlight levels */
62
63/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 89/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
64#define LOCKING_SUPPORT_ENABLE 90#define LOCKING_SUPPORT_ENABLE
65/* Locking resynchronize hack */ 91/* Locking resynchronize hack */
66#define LOCKING_RESYNC_ENABLE 92#define LOCKING_RESYNC_ENABLE
67 93
94/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
95 * This is useful for the Windows task manager shortcut (ctrl+shift+esc).
96 */
97//#define GRAVE_ESC_CTRL_OVERRIDE
98
68/* 99/*
69 * Force NKRO 100 * Force NKRO
70 * 101 *
@@ -87,54 +118,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
87//#define FORCE_NKRO 118//#define FORCE_NKRO
88 119
89/* 120/*
90 * Magic Key Options
91 *
92 * Magic keys are hotkey commands that allow control over firmware functions of
93 * the keyboard. They are best used in combination with the HID Listen program,
94 * found here: https://www.pjrc.com/teensy/hid_listen.html
95 *
96 * The options below allow the magic key functionality to be changed. This is
97 * useful if your keyboard/keypad is missing keys and you want magic key support.
98 *
99 */
100
101/* control how magic key switches layers */
102//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
103//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
104//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
105
106/* override magic key keymap */
107//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
108//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
109//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
110//#define MAGIC_KEY_HELP1 H
111//#define MAGIC_KEY_HELP2 SLASH
112//#define MAGIC_KEY_DEBUG D
113//#define MAGIC_KEY_DEBUG_MATRIX X
114//#define MAGIC_KEY_DEBUG_KBD K
115//#define MAGIC_KEY_DEBUG_MOUSE M
116//#define MAGIC_KEY_VERSION V
117//#define MAGIC_KEY_STATUS S
118//#define MAGIC_KEY_CONSOLE C
119//#define MAGIC_KEY_LAYER0_ALT1 ESC
120//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
121//#define MAGIC_KEY_LAYER0 0
122//#define MAGIC_KEY_LAYER1 1
123//#define MAGIC_KEY_LAYER2 2
124//#define MAGIC_KEY_LAYER3 3
125//#define MAGIC_KEY_LAYER4 4
126//#define MAGIC_KEY_LAYER5 5
127//#define MAGIC_KEY_LAYER6 6
128//#define MAGIC_KEY_LAYER7 7
129//#define MAGIC_KEY_LAYER8 8
130//#define MAGIC_KEY_LAYER9 9
131//#define MAGIC_KEY_BOOTLOADER PAUSE
132//#define MAGIC_KEY_LOCK CAPS
133//#define MAGIC_KEY_EEPROM E
134//#define MAGIC_KEY_NKRO N
135//#define MAGIC_KEY_SLEEP_LED Z
136
137/*
138 * Feature disable options 121 * Feature disable options
139 * These options are also useful to firmware size reduction. 122 * These options are also useful to firmware size reduction.
140 */ 123 */
@@ -149,36 +132,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
149//#define NO_ACTION_LAYER 132//#define NO_ACTION_LAYER
150//#define NO_ACTION_TAPPING 133//#define NO_ACTION_TAPPING
151//#define NO_ACTION_ONESHOT 134//#define NO_ACTION_ONESHOT
135
136/* disable these deprecated features by default */
152//#define NO_ACTION_MACRO 137//#define NO_ACTION_MACRO
153//#define NO_ACTION_FUNCTION 138//#define NO_ACTION_FUNCTION
154 139
155// ws2812 options 140/* Bootmagic Lite key configuration */
156#define RGB_DI_PIN F6 // pin the DI on the ws2812 is hooked-up to 141//#define BOOTMAGIC_LITE_ROW 0
157#define RGBLIGHT_ANIMATIONS // run RGB animations 142//#define BOOTMAGIC_LITE_COLUMN 0
158#define RGBLED_NUM 6 // number of LEDs
159#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
160#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation
161#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)
162
163/*
164 * MIDI options
165 */
166
167/* Prevent use of disabled MIDI features in the keymap */
168//#define MIDI_ENABLE_STRICT 1
169
170/* enable basic MIDI features:
171 - MIDI notes can be sent when in Music mode is on
172*/
173//#define MIDI_BASIC
174
175/* enable advanced MIDI features:
176 - MIDI notes can be added to the keymap
177 - Octave shift and transpose
178 - Virtual sustain, portamento, and modulation wheel
179 - etc.
180*/
181//#define MIDI_ADVANCED
182
183/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
184//#define MIDI_TONE_KEYCODE_OCTAVES 1
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 @@
40 40
41const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 41const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42 42
43 [_QW] = { /* QWERTY */ 43 [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
44 { 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 }, 44 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,
45 { 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 }, 45 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,
46 { 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 }, 46 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,
47 { 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 }, 47 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,
48 { 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 }, 48 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
49 }, 49 ),
50 50
51/* LOWERED 51/* LOWERED
52 */ 52 */
53 53
54 [_LW] = { /* LOWERED */ 54 [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
55 { _______, 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 }, 55 _______, 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,
56 { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS }, 56 _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS,
57 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______ }, 57 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______,
58 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______ }, 58 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______,
59 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END }, 59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
60 }, 60 ),
61 61
62/* RAISED 62/* RAISED
63 */ 63 */
64 64
65 [_RS] = { /* RAISED */ 65 [_RS] = LAYOUT_ortho_5x15( /* RAISED */
66 { _______, 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 }, 66 _______, 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,
67 { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS }, 67 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS,
68 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______ }, 68 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______,
69 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______ }, 69 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______,
70 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END }, 70 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
71 }, 71 ),
72 72
73/* FUNCTION 73/* FUNCTION
74 */ 74 */
75 75
76 [_FN] = { /* FUNCTION */ 76 [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
77 { 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 }, 77 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,
78 { 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 }, 78 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,
79 { KC_CAPS, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______ }, 79 KC_CAPS, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______,
80 { 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 }, 80 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,
81 { _______ , _______, AG_SWAP, AG_NORM, _______, KC_BTN1, KC_BTN1, _______, AG_NORM, AG_SWAP, _______, _______, KC_HOME, KC_PGDN, KC_END }, 81 _______ , _______, AG_SWAP, AG_NORM, _______, KC_BTN1, KC_BTN1, _______, AG_NORM, AG_SWAP, _______, _______, KC_HOME, KC_PGDN, KC_END
82 }, 82 ),
83 83
84 [_ENTFN] = { /* Enter FN */ 84 [_ENTFN] = LAYOUT_ortho_5x15( /* Enter FN */
85 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 85 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
86 { _______, M(M_PTAB), M(M_NTAB), M(M_PSPC), M(M_NSPC), _______, _______, _______, _______, M(M_ZOUT), M(M_ZOIN), _______, _______, _______, _______ }, 86 _______, M(M_PTAB), M(M_NTAB), M(M_PSPC), M(M_NSPC), _______, _______, _______, _______, M(M_ZOUT), M(M_ZOIN), _______, _______, _______, _______,
87 { _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______ }, 87 _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______,
88 { _______, M(M_BACK), M(M_FWRD), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 88 _______, M(M_BACK), M(M_FWRD), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
89 { _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 89 _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
90 }, 90 ),
91 [_MEDIA] = { /* Media */ 91 [_MEDIA] = LAYOUT_ortho_5x15( /* Media */
92 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 92 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
93 { _______, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 93 _______, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
94 { _______, KC_VOLU, _______, _______, _______, _______, _______, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, _______, _______, _______ }, 94 _______, KC_VOLU, _______, _______, _______, _______, _______, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, _______, _______, _______,
95 { _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 95 _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
96 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 96 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
97 }, 97 ),
98 [_MOUSE] = { /* Mouse */ 98 [_MOUSE] = LAYOUT_ortho_5x15( /* Mouse */
99 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 99 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
100 { _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, _______ }, 100 _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, _______,
101 { _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, _______, _______ }, 101 _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, _______, _______,
102 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 102 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
103 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 103 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
104 }, 104 )
105}; 105};
106 106
107const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 107const 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] = {
41 * '--------------------------------------------------------------------------------------------------------------------------------------' 41 * '--------------------------------------------------------------------------------------------------------------------------------------'
42 */ 42 */
43 43
44 [_QW] = { /* QWERTY */ 44 [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
45 { 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 }, 45 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,
46 { 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 }, 46 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,
47 { 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 }, 47 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,
48 { 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 }, 48 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,
49 { 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 }, 49 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
50 }, 50 ),
51 51
52/* FUNCTION 52/* FUNCTION
53 * .--------------------------------------------------------------------------------------------------------------------------------------. 53 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -63,13 +63,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
63 * '--------------------------------------------------------------------------------------------------------------------------------------' 63 * '--------------------------------------------------------------------------------------------------------------------------------------'
64 */ 64 */
65 65
66 [_FN] = { /* FUNCTION */ 66 [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
67 { 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 }, 67 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,
68 { 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 }, 68 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,
69 { KC_WH_D, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, RGB_VAD, _______, RGB_VAI, KC_MINS, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______ }, 69 KC_WH_D, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, RGB_VAD, _______, RGB_VAI, KC_MINS, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______,
70 { _______, _______, _______, _______, _______, _______, RGB_RMOD,A_BL_TG, RGB_MOD, _______, _______, _______, _______ , _______, _______ }, 70 _______, _______, _______, _______, _______, _______, RGB_RMOD,A_BL_TG, RGB_MOD, _______, _______, _______, _______ , _______, _______,
71 { _______, TT(_FN), RGB_TOG, _______, KC_WH_L, KC_WH_R, TT(_FN), RESET , TT(_FN), KC_BTN1, KC_BTN2, _______, _______ , TT(_FN), _______ }, 71 _______, TT(_FN), RGB_TOG, _______, KC_WH_L, KC_WH_R, TT(_FN), RESET , TT(_FN), KC_BTN1, KC_BTN2, _______, _______ , TT(_FN), _______
72 } 72 )
73}; 73};
74 74
75bool process_record_user(uint16_t keycode, keyrecord_t *record) { 75bool 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] = {
42 * '--------------------------------------------------------------------------------------------------------------------------------------' 42 * '--------------------------------------------------------------------------------------------------------------------------------------'
43 */ 43 */
44 44
45 [_QW] = { /* QWERTY */ 45 [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
46 { 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 }, 46 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,
47 { 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 }, 47 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,
48 { 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 }, 48 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,
49 { 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 }, 49 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,
50 { 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 }, 50 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
51 }, 51 ),
52 52
53/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE 53/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE
54 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. 54 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -64,13 +64,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
64 * '--------------------------------------------------------------------------------------------------------------------------------------' 64 * '--------------------------------------------------------------------------------------------------------------------------------------'
65 */ 65 */
66 66
67 [_CM] = { /* COLEMAK */ 67 [_CM] = LAYOUT_ortho_5x15( /* COLEMAK */
68 { 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 }, 68 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,
69 { 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 }, 69 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,
70 { 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 }, 70 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,
71 { 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 }, 71 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,
72 { 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 }, 72 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
73 }, 73 ),
74 74
75/* DVORAK - MIT ENHANCED / GRID COMPATIBLE 75/* DVORAK - MIT ENHANCED / GRID COMPATIBLE
76 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. 76 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -86,13 +86,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
86 * '--------------------------------------------------------------------------------------------------------------------------------------' 86 * '--------------------------------------------------------------------------------------------------------------------------------------'
87 */ 87 */
88 88
89 [_DV] = { /* DVORAK */ 89 [_DV] = LAYOUT_ortho_5x15( /* DVORAK */
90 { 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 }, 90 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,
91 { 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 }, 91 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,
92 { 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 }, 92 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,
93 { 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 }, 93 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,
94 { 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 }, 94 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
95 }, 95 ),
96 96
97/* LOWERED 97/* LOWERED
98 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. 98 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -108,13 +108,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
108 * '--------------------------------------------------------------------------------------------------------------------------------------' 108 * '--------------------------------------------------------------------------------------------------------------------------------------'
109 */ 109 */
110 110
111 [_LW] = { /* LOWERED */ 111 [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
112 { _______, 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___ }, 112 _______, 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___,
113 { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS }, 113 _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS,
114 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______ }, 114 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______,
115 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, 115 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
116 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 116 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
117 }, 117 ),
118 118
119/* RAISED 119/* RAISED
120 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. 120 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -130,13 +130,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
130 * '--------------------------------------------------------------------------------------------------------------------------------------' 130 * '--------------------------------------------------------------------------------------------------------------------------------------'
131 */ 131 */
132 132
133 [_RS] = { /* RAISED */ 133 [_RS] = LAYOUT_ortho_5x15( /* RAISED */
134 { _______, 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___ }, 134 _______, 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___,
135 { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS }, 135 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS,
136 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______ }, 136 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______,
137 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, 137 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
138 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 138 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
139 }, 139 ),
140 140
141/* FUNCTION 141/* FUNCTION
142 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. 142 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -152,13 +152,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
152 * '--------------------------------------------------------------------------------------------------------------------------------------' 152 * '--------------------------------------------------------------------------------------------------------------------------------------'
153 */ 153 */
154 154
155 [_FN] = { /* FUNCTION */ 155 [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
156 { 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___ }, 156 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___,
157 { 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 }, 157 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,
158 { 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 }, 158 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,
159 { 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 }, 159 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,
160 { RESET , _______, DF(_QW), DF(_CM), DF(_DV), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, 160 RESET , _______, DF(_QW), DF(_CM), DF(_DV), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
161 }, 161 )
162}; 162};
163 163
164const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 164const 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] = {
27 * '--------------------------------------------------------------------------------------------------------------------------------------' 27 * '--------------------------------------------------------------------------------------------------------------------------------------'
28 */ 28 */
29 29
30 [_DV] = { /* DVORAK */ 30 [_DV] = LAYOUT_ortho_5x15( /* DVORAK */
31 { 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 }, 31 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,
32 { 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 }, 32 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,
33 { 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 }, 33 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,
34 { 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 }, 34 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,
35 { 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 }, 35 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
36 }, 36 ),
37 37
38/* QWERTY 38/* QWERTY
39 * .--------------------------------------------------------------------------------------------------------------------------------------. 39 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -49,13 +49,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
49 * '--------------------------------------------------------------------------------------------------------------------------------------' 49 * '--------------------------------------------------------------------------------------------------------------------------------------'
50 */ 50 */
51 51
52 [_QW] = { /* QWERTY */ 52 [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
53 { 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 }, 53 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,
54 { 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 }, 54 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,
55 { 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 }, 55 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,
56 { 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 }, 56 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,
57 { 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 }, 57 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
58 }, 58 ),
59 59
60/* NUMPAD 60/* NUMPAD
61 * .--------------------------------------------------------------------------------------------------------------------------------------. 61 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -71,13 +71,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
71 * '--------------------------------------------------------------------------------------------------------------------------------------' 71 * '--------------------------------------------------------------------------------------------------------------------------------------'
72 */ 72 */
73 73
74 [_NP] = { /* NUMPAD */ 74 [_NP] = LAYOUT_ortho_5x15( /* NUMPAD */
75 { _______, _______, _______, _______, _______, _______, KC_SLSH, KC_ASTR, KC_MINS, _______, _______, _______, _______, _______, _______ }, 75 _______, _______, _______, _______, _______, _______, KC_SLSH, KC_ASTR, KC_MINS, _______, _______, _______, _______, _______, _______,
76 { _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______ }, 76 _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______,
77 { _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______ }, 77 _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______,
78 { _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______ }, 78 _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______,
79 { _______, _______, _______, _______, _______, _______, KC_0, KC_PLUS, KC_DOT, _______, _______, _______, _______, _______, _______ }, 79 _______, _______, _______, _______, _______, _______, KC_0, KC_PLUS, KC_DOT, _______, _______, _______, _______, _______, _______
80 }, 80 ),
81 81
82/* FUNCTION1 82/* FUNCTION1
83 * .--------------------------------------------------------------------------------------------------------------------------------------. 83 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -93,13 +93,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
93 * '--------------------------------------------------------------------------------------------------------------------------------------' 93 * '--------------------------------------------------------------------------------------------------------------------------------------'
94 */ 94 */
95 95
96 [_FN1] = { /* FUNCTION1 */ 96 [_FN1] = LAYOUT_ortho_5x15( /* FUNCTION1 */
97 { KC_GRV , KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC }, 97 KC_GRV , KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
98 { 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 }, 98 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,
99 { 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 }, 99 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,
100 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_VAD, RGB_VAI, TO(_QW), _______, _______, KC_HOME, KC_END, _______ }, 100 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_VAD, RGB_VAI, TO(_QW), _______, _______, KC_HOME, KC_END, _______,
101 { _______, _______, _______, _______, _______, _______, _______,RGB_RMOD, RGB_MOD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY }, 101 _______, _______, _______, _______, _______, _______, _______,RGB_RMOD, RGB_MOD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
102 }, 102 ),
103 103
104 104
105/* FUNCTION2 105/* FUNCTION2
@@ -116,13 +116,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
116 * '--------------------------------------------------------------------------------------------------------------------------------------' 116 * '--------------------------------------------------------------------------------------------------------------------------------------'
117 */ 117 */
118 118
119 [_FN2] = { /* FUNCTION2 */ 119 [_FN2] = LAYOUT_ortho_5x15( /* FUNCTION2 */
120 { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC }, 120 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
121 { KC_GRV, _______, _______, KC_UP, _______, _______, RESET, RGB_HUD, RGB_HUI, TG(_NP), _______, _______, _______, _______, KC_DEL }, 121 KC_GRV, _______, _______, KC_UP, _______, _______, RESET, RGB_HUD, RGB_HUI, TG(_NP), _______, _______, _______, _______, KC_DEL,
122 { KC_DEL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, RGB_SAD, RGB_SAI, TG(_DV), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, 122 KC_DEL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, RGB_SAD, RGB_SAI, TG(_DV), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
123 { _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, TG(_QW), _______, _______, KC_PGDN, KC_PGUP, _______ }, 123 _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, TG(_QW), _______, _______, KC_PGDN, KC_PGUP, _______,
124 { _______, _______, _______, _______, _______, _______, _______,RGB_RMOD, RGB_MOD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY }, 124 _______, _______, _______, _______, _______, _______, _______,RGB_RMOD, RGB_MOD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
125 } 125 )
126}; 126};
127 127
128 128
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[] = {
50 50
51const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 51const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
52 52
53 [_BASE] = { 53 [_BASE] = LAYOUT_ortho_5x15(
54 { 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 }, 54 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,
55 { 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 }, 55 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 ,
56 { 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 }, 56 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,
57 { 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 }, 57 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,
58 { 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 }, 58 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,
59 }, 59 ),
60 60
61 [_LOWER] = { 61 [_LOWER] = LAYOUT_ortho_5x15(
62 { _______ , _______ , _______ , _______ , _______ , _______ , BL_TOGG , BL_DEC , BL_INC , _______ , _______ , _______ , _______ , _______ , _______ }, 62 _______ , _______ , _______ , _______ , _______ , _______ , BL_TOGG , BL_DEC , BL_INC , _______ , _______ , _______ , _______ , _______ , _______,
63 { _______ , KC_WH_L , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_U , BL_STEP , RGB_TOG , RGB_MOD , _______ , _______ , _______ , _______ , _______ , _______ }, 63 _______ , KC_WH_L , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_U , BL_STEP , RGB_TOG , RGB_MOD , _______ , _______ , _______ , _______ , _______ , _______,
64 { _______ , 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 , _______ }, 64 _______ , 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 , _______,
65 { _______ , _______ , _______ , _______ , _______ , _______ , RGB_SAD , RGB_VAI , RGB_VAD , _______ , _______ , _______ , _______ , _______ , _______ }, 65 _______ , _______ , _______ , _______ , _______ , _______ , RGB_SAD , RGB_VAI , RGB_VAD , _______ , _______ , _______ , _______ , _______ , _______,
66 { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ }, 66 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
67 }, 67 ),
68 68
69 [_LINVERT] = { 69 [_LINVERT] = LAYOUT_ortho_5x15(
70 { _______ , _______ , _______ , _______ , _______ , _______ , BL_TOGG , BL_DEC , BL_INC , _______ , _______ , _______ , _______ , _______ , _______ }, 70 _______ , _______ , _______ , _______ , _______ , _______ , BL_TOGG , BL_DEC , BL_INC , _______ , _______ , _______ , _______ , _______ , _______,
71 { _______ , _______ , _______ , _______ , _______ , _______ , BL_STEP , RGB_TOG , RGB_MOD , KC_WH_U , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_L , _______ }, 71 _______ , _______ , _______ , _______ , _______ , _______ , BL_STEP , RGB_TOG , RGB_MOD , KC_WH_U , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_L , _______,
72 { _______ , 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 , _______ }, 72 _______ , 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 , _______,
73 { _______ , _______ , _______ , _______ , _______ , _______ , RGB_SAD , RGB_VAI , RGB_VAD , _______ , _______ , _______ , _______ , _______ , _______ }, 73 _______ , _______ , _______ , _______ , _______ , _______ , RGB_SAD , RGB_VAI , RGB_VAD , _______ , _______ , _______ , _______ , _______ , _______,
74 { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ }, 74 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
75 }, 75 ),
76 76
77 [_RAISE] = { 77 [_RAISE] = LAYOUT_ortho_5x15(
78 { KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______ , _______ , _______ , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 }, 78 KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______ , _______ , _______ , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 ,
79 { _______ , _______ , KC_7 , KC_8 , KC_9 , _______ , _______ , _______ , _______ , _______ , KC_MUTE , KC_VOLD , KC_VOLU , _______ , _______ }, 79 _______ , _______ , KC_7 , KC_8 , KC_9 , _______ , _______ , _______ , _______ , _______ , KC_MUTE , KC_VOLD , KC_VOLU , _______ , _______,
80 { _______ , _______ , KC_4 , KC_5 , KC_6 , _______ , _______ , _______ , _______ , _______ , KC_MPRV , KC_MPLY , KC_MNXT , _______ , _______ }, 80 _______ , _______ , KC_4 , KC_5 , KC_6 , _______ , _______ , _______ , _______ , _______ , KC_MPRV , KC_MPLY , KC_MNXT , _______ , _______,
81 { _______ , _______ , KC_1 , KC_2 , KC_3 , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ }, 81 _______ , _______ , KC_1 , KC_2 , KC_3 , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
82 { _______ , _______ , _______ , KC_0 , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ }, 82 _______ , _______ , _______ , KC_0 , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
83 }, 83 ),
84 84
85 [_EMOJIFY] = { 85 [_EMOJIFY] = LAYOUT_ortho_5x15(
86 { TO(0) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , RESET }, 86 TO(0) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , RESET ,
87 { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ }, 87 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
88 { _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , _______ , _______ , _______ , X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______ }, 88 _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , _______ , _______ , _______ , X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______,
89 { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ }, 89 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
90 { _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ }, 90 _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
91 }, 91 )
92 92
93}; 93};
94 94
@@ -98,12 +98,12 @@ void matrix_init_user(void) {
98} 98}
99 99
100/* Template for future layers 100/* Template for future layers
101 [_LAYER_NAME] = { 101 [_LAYER_NAME] = LAYOUT_ortho_5x15(
102 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, 102 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
103 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, 103 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
104 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, 104 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
105 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, 105 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
106 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, 106 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
107 } 107 )
108}; 108};
109*/ 109*/
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] = {
36 * '--------------------------------------------------------------------------------------------------------------------------------------' 36 * '--------------------------------------------------------------------------------------------------------------------------------------'
37 */ 37 */
38 38
39 [_BP] = { /* BepoDev */ 39 [_BP] = LAYOUT_ortho_5x15( /* BepoDev */
40 { 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 }, 40 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,
41 { 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 }, 41 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,
42 { 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 }, 42 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,
43 { 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 }, 43 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,
44 { 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 }, 44 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
45 }, 45 ),
46 46
47/* FUNCTION 47/* FUNCTION
48 * .--------------------------------------------------------------------------------------------------------------------------------------. 48 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -58,13 +58,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
58 * '--------------------------------------------------------------------------------------------------------------------------------------' 58 * '--------------------------------------------------------------------------------------------------------------------------------------'
59 */ 59 */
60 60
61 [_FN] = { /* FUNCTION */ 61 [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
62 { 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 }, 62 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,
63 { 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 }, 63 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,
64 { 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 }, 64 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,
65 { 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 }, 65 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,
66 { 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 }, 66 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
67 } 67 )
68}; 68};
69 69
70const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 70const 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 @@
5#define _NM 2 5#define _NM 2
6 6
7const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 7const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
8 [_QW] = { 8 [_QW] = LAYOUT_ortho_5x15(
9 { 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 }, 9 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,
10 { 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 }, 10 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,
11 { 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 }, 11 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,
12 { 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 }, 12 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,
13 { 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 }, 13 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
14 }, 14 ),
15 [_NV] = { 15 [_NV] = LAYOUT_ortho_5x15(
16 { KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______ }, 16 KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______,
17 { _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______, _______, _______, _______ }, 17 _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______, _______, _______, _______,
18 { _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , _______, _______, _______, _______ }, 18 _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , _______, _______, _______, _______,
19 { _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______ }, 19 _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______,
20 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 20 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
21 }, 21 ),
22 [_NM] = { 22 [_NM] = LAYOUT_ortho_5x15(
23 { _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 23 _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
24 { _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 24 _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
25 { _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 25 _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
26 { _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 26 _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
27 { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 27 RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
28 } 28 )
29}; 29};
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 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16#include QMK_KEYBOARD_H
17 16
18// Layer shorthand 17#include QMK_KEYBOARD_H
19#define _QW 0
20#define _FN 1
21 18
22// Defines the keycodes used by our macros in process_record_user 19enum layer_names {
23enum custom_keycodes { 20 _QW,
24 QMKBEST = SAFE_RANGE, 21 _FN
25 QMKURL
26}; 22};
27 23
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 /* QWERTY
26 * .--------------------------------------------------------------------------------------------------------------------------------------.
27 * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
28 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
29 * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | ' |
30 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
31 * | CAP LK | A | S | D | F | G | HOME | DEL | PG UP | H | J | K | L | ; | ENTER |
32 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
33 * | LSHIFT | Z | X | C | V | B | END | UP | PG DN | N | M | , | . | / | RSHIFT |
34 * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
35 * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | LEFT | DOWN | RIGHT | SPACE | SPACE | FN | RALT | RGUI | RCTRL |
36 * '--------------------------------------------------------------------------------------------------------------------------------------'
37 */
38 [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
39 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,
40 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,
41 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,
42 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,
43 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
44 ),
29 45
30/* QWERTY 46 /* FUNCTION
31 * .--------------------------------------------------------------------------------------------------------------------------------------. 47 * .--------------------------------------------------------------------------------------------------------------------------------------.
32 * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP | 48 * | F1 | F2 | F3 | F4 | F5 | F6 | NUM LK | P/ | P* | F7 | F8 | F9 | F10 | F11 | F12 |
33 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| 49 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
34 * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | ' | 50 * | SELECT | CALC | MYCOMP | MAIL | RGB HD | RGB HI | P7 | P8 | P9 | - | | | PR SCR | SCR LK | PAUSE |
35 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| 51 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
36 * | CAP LK | A | S | D | F | G | HOME | DEL | PG UP | H | J | K | L | ; | ENTER | 52 * | PREV | PLAY | NEXT | STOP | RGB SD | RGB SI | P4 | P5 | P6 | + | | RESET | | | |
37 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| 53 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
38 * | LSHIFT | Z | X | C | V | B | END | UP | PG DN | N | M | , | . | / | RSHIFT | 54 * | VOL- | MUTE | VOL+ | APP | RGB VD | RGB VI | P1 | P2 | P3 | PENT | | | | | |
39 * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| 55 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
40 * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | LEFT | DOWN | RIGHT | SPACE | SPACE | FN | RALT | RGUI | RCTRL | 56 * | | | RGB TG | FN | RGB RMD| RGB MD | P0 | | P. | PENT | PENT | FN | | | |
41 * '--------------------------------------------------------------------------------------------------------------------------------------' 57 * '--------------------------------------------------------------------------------------------------------------------------------------'
42 */ 58 */
43 59 [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
44 [_QW] = LAYOUT_ortho_5x15( /* QWERTY */ 60 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,
45 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, 61 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,
46 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, 62 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______,
47 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, 63 KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
48 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, 64 _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______
49 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 65 )
50 ),
51
52/* FUNCTION
53 * .--------------------------------------------------------------------------------------------------------------------------------------.
54 * | F1 | F2 | F3 | F4 | F5 | F6 | NUM LK | P/ | P* | F7 | F8 | F9 | F10 | F11 | F12 |
55 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
56 * | SELECT | CALC | MYCOMP | MAIL | RGB HD | RGB HI | P7 | P8 | P9 | - | | | PR SCR | SCR LK | PAUSE |
57 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
58 * | PREV | PLAY | NEXT | STOP | RGB SD | RGB SI | P4 | P5 | P6 | + | | RESET | | | |
59 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
60 * | VOL- | MUTE | VOL+ | APP | RGB VD | RGB VI | P1 | P2 | P3 | PENT | | | | | |
61 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
62 * | | | RGB TG | FN | RGB RMD| RGB MD | P0 | | P. | PENT | PENT | FN | | | |
63 * '--------------------------------------------------------------------------------------------------------------------------------------'
64 */
65
66 [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
67 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,
68 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,
69 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______,
70 KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
71 _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______
72 )
73}; 66};
74
75bool process_record_user(uint16_t keycode, keyrecord_t *record) {
76 switch (keycode) {
77 case QMKBEST:
78 if (record->event.pressed) {
79 // when keycode QMKBEST is pressed
80 SEND_STRING("QMK is the best thing ever!");
81 } else {
82 // when keycode QMKBEST is released
83 }
84 break;
85 case QMKURL:
86 if (record->event.pressed) {
87 // when keycode QMKURL is pressed
88 SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
89 } else {
90 // when keycode QMKURL is released
91 }
92 break;
93 }
94 return true;
95}
96
97void matrix_init_user(void) {
98
99}
100
101void matrix_scan_user(void) {
102
103}
104
105void led_set_user(uint8_t usb_led) {
106
107}
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] = {
37 * '--------------------------------------------------------------------------------------------------------------------------------------' 37 * '--------------------------------------------------------------------------------------------------------------------------------------'
38 */ 38 */
39 39
40 [_BP] = { /* BepoDev */ 40 [_BP] = LAYOUT_ortho_5x15( /* BepoDev */
41 { 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 }, 41 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,
42 { 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 }, 42 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,
43 { 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 }, 43 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,
44 { 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 }, 44 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,
45 { 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 }, 45 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
46 }, 46 ),
47 47
48 48
49/* FUNCTION 49/* FUNCTION
@@ -61,12 +61,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
61 */ 61 */
62 62
63 63
64 [_FN] = { /* FUNCTION */ 64 [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
65 { 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 }, 65 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,
66 { _______, 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) }, 66 _______, 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),
67 { _______, RALT(BP_B), BP_BSLS, BP_LBRC, BP_RBRC, RALT(BP_P), _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______ }, 67 _______, RALT(BP_B), BP_BSLS, BP_LBRC, BP_RBRC, RALT(BP_P), _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______,
68 { _______, BP_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, BP_LESS, BP_GRTR, BP_AT , _______, _______ }, 68 _______, BP_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, BP_LESS, BP_GRTR, BP_AT , _______, _______,
69 { _______, _______, _______, _______, _______, LT(_FN,KC_ENT), _______, _______, _______, LT(_FN,KC_SPC), _______, _______, _______, _______, RESET }, 69 _______, _______, _______, _______, _______, LT(_FN,KC_ENT), _______, _______, _______, LT(_FN,KC_SPC), _______, _______, _______, _______, RESET
70 } 70 )
71 71
72}; 72};
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] = {
83 * '--------------------------------------------------------------------------------------------------------------------------------------' 83 * '--------------------------------------------------------------------------------------------------------------------------------------'
84 */ 84 */
85 85
86 [_QW] = { /* QWERTY */ 86 [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
87 { 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 }, 87 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,
88 { 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 }, 88 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,
89 { 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 }, 89 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,
90 { 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 }, 90 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,
91 { 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 }, 91 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
92 }, 92 ),
93 93
94/* FUNCTION 94/* FUNCTION
95 * .--------------------------------------------------------------------------------------------------------------------------------------. 95 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -105,13 +105,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
105 * '--------------------------------------------------------------------------------------------------------------------------------------' 105 * '--------------------------------------------------------------------------------------------------------------------------------------'
106 */ 106 */
107 107
108 [_FN] = { /* FUNCTION */ 108 [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
109 { 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 }, 109 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,
110 { 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 }, 110 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,
111 { KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______ }, 111 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______,
112 { KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______ }, 112 KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
113 { _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______ }, 113 _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______
114 } 114 )
115}; 115};
116 116
117const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 117const 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] = {
43 * '--------------------------------------------------------------------------------------------------------------------------------------' 43 * '--------------------------------------------------------------------------------------------------------------------------------------'
44 */ 44 */
45 45
46 [_QW] = { /* QWERTY */ 46 [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
47 { 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 }, 47 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,
48 { 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 }, 48 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,
49 { 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 }, 49 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,
50 { 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 }, 50 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,
51 { 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 }, 51 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
52 }, 52 ),
53 53
54/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE 54/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE
55 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. 55 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -65,13 +65,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
65 * '--------------------------------------------------------------------------------------------------------------------------------------' 65 * '--------------------------------------------------------------------------------------------------------------------------------------'
66 */ 66 */
67 67
68 [_CM] = { /* COLEMAK */ 68 [_CM] = LAYOUT_ortho_5x15( /* COLEMAK */
69 { 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 }, 69 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,
70 { 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 }, 70 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,
71 { 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 }, 71 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,
72 { 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 }, 72 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,
73 { 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 }, 73 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
74 }, 74 ),
75 75
76/* DVORAK - MIT ENHANCED / GRID COMPATIBLE 76/* DVORAK - MIT ENHANCED / GRID COMPATIBLE
77 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. 77 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -87,13 +87,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
87 * '--------------------------------------------------------------------------------------------------------------------------------------' 87 * '--------------------------------------------------------------------------------------------------------------------------------------'
88 */ 88 */
89 89
90 [_DV] = { /* DVORAK */ 90 [_DV] = LAYOUT_ortho_5x15( /* DVORAK */
91 { 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 }, 91 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,
92 { 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 }, 92 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,
93 { 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 }, 93 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,
94 { 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 }, 94 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,
95 { 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 }, 95 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
96 }, 96 ),
97 97
98/* LOWERED 98/* LOWERED
99 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. 99 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -109,13 +109,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
109 * '--------------------------------------------------------------------------------------------------------------------------------------' 109 * '--------------------------------------------------------------------------------------------------------------------------------------'
110 */ 110 */
111 111
112 [_LW] = { /* LOWERED */ 112 [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
113 { _______, 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___ }, 113 _______, 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___,
114 { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS }, 114 _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS,
115 { 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___, _______ }, 115 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___, _______,
116 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, 116 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
117 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 117 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
118 }, 118 ),
119 119
120/* RAISED 120/* RAISED
121 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. 121 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -131,13 +131,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
131 * '--------------------------------------------------------------------------------------------------------------------------------------' 131 * '--------------------------------------------------------------------------------------------------------------------------------------'
132 */ 132 */
133 133
134 [_RS] = { /* RAISED */ 134 [_RS] = LAYOUT_ortho_5x15( /* RAISED */
135 { _______, 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___ }, 135 _______, 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___,
136 { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS }, 136 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS,
137 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______ }, 137 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______,
138 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, 138 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
139 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 139 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
140 }, 140 ),
141 141
142/* FUNCTION 142/* FUNCTION
143 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. 143 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -153,13 +153,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
153 * '--------------------------------------------------------------------------------------------------------------------------------------' 153 * '--------------------------------------------------------------------------------------------------------------------------------------'
154 */ 154 */
155 155
156 [_FN] = { /* FUNCTION */ 156 [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
157 { 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___ }, 157 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___,
158 { 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 }, 158 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,
159 { 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 }, 159 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,
160 { 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 }, 160 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,
161 { RESET , _______, DF(_QW), DF(_CM), DF(_DV), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, 161 RESET , _______, DF(_QW), DF(_CM), DF(_DV), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
162 }, 162 )
163}; 163};
164 164
165const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 165const 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] = {
64 * | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl | 64 * | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl |
65 * `--------------------------------------------------------------------------------------------------------' 65 * `--------------------------------------------------------------------------------------------------------'
66 */ 66 */
67[_QWERTY] = { 67[_QWERTY] = LAYOUT_ortho_5x15(
68 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 68 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
69 { HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, 69 HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
70 { CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, 70 CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
71 { SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT }, 71 SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT,
72 { KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL } 72 KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL
73}, 73),
74 74
75/* Colemak 75/* Colemak
76 * ,--------------------------------------------------------------------------------------------------------. 76 * ,--------------------------------------------------------------------------------------------------------.
@@ -85,13 +85,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
85 * | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl | 85 * | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl |
86 * `--------------------------------------------------------------------------------------------------------' 86 * `--------------------------------------------------------------------------------------------------------'
87 */ 87 */
88[_COLEMAK] = { 88[_COLEMAK] = LAYOUT_ortho_5x15(
89 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 89 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
90 { HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC }, 90 HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
91 { CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, _______, _______, _______, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, 91 CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, _______, _______, _______, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
92 { SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT }, 92 SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT,
93 { KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL } 93 KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL
94}, 94),
95 95
96/* Dvorak 96/* Dvorak
97 * ,--------------------------------------------------------------------------------------------------------. 97 * ,--------------------------------------------------------------------------------------------------------.
@@ -106,13 +106,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
106 * | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl | 106 * | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl |
107 * `--------------------------------------------------------------------------------------------------------' 107 * `--------------------------------------------------------------------------------------------------------'
108 */ 108 */
109[_DVORAK] = { 109[_DVORAK] = LAYOUT_ortho_5x15(
110 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 110 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
111 { HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, _______, _______, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, 111 HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, _______, _______, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
112 { CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, _______, _______, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH }, 112 CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, _______, _______, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
113 { SFT_BSP, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, _______, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT }, 113 SFT_BSP, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, _______, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT,
114 { KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL } 114 KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL
115}, 115),
116 116
117/* Lower 117/* Lower
118 * ,--------------------------------------------------------------------------------------------------------. 118 * ,--------------------------------------------------------------------------------------------------------.
@@ -127,13 +127,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
127 * | | | | | | | | | | | | Next | Vol- | Vol+ | Play | 127 * | | | | | | | | | | | | Next | Vol- | Vol+ | Play |
128 * `--------------------------------------------------------------------------------------------------------' 128 * `--------------------------------------------------------------------------------------------------------'
129 */ 129 */
130[_LOWER] = { 130[_LOWER] = LAYOUT_ortho_5x15(
131 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 131 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
132 { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC }, 132 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
133 { KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE }, 133 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
134 { _______, 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 }, 134 _______, 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,
135 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY } 135 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
136}, 136),
137 137
138/* Raise 138/* Raise
139 * ,--------------------------------------------------------------------------------------------------------. 139 * ,--------------------------------------------------------------------------------------------------------.
@@ -148,13 +148,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
148 * | | | | | | | | | | | | Next | Vol- | Vol+ | Play | 148 * | | | | | | | | | | | | Next | Vol- | Vol+ | Play |
149 * `--------------------------------------------------------------------------------------------------------' 149 * `--------------------------------------------------------------------------------------------------------'
150 */ 150 */
151[_RAISE] = { 151[_RAISE] = LAYOUT_ortho_5x15(
152 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 152 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
153 { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC }, 153 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
154 { KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, 154 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
155 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, KC_F12, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BTN2 }, 155 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, KC_F12, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BTN2,
156 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY } 156 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
157}, 157),
158 158
159/* Plover layer (http://opensteno.org) 159/* Plover layer (http://opensteno.org)
160 * ,--------------------------------------------------------------------------------------------------------. 160 * ,--------------------------------------------------------------------------------------------------------.
@@ -170,13 +170,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
170 * `--------------------------------------------------------------------------------------------------------' 170 * `--------------------------------------------------------------------------------------------------------'
171 */ 171 */
172 172
173[_PLOVER] = { 173[_PLOVER] = LAYOUT_ortho_5x15(
174 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, 174 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
175 { 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 }, 175 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,
176 { 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 }, 176 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,
177 { 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 }, 177 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,
178 { EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX } 178 EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
179}, 179),
180 180
181/* Adjust (Lower + Raise) 181/* Adjust (Lower + Raise)
182 * ,--------------------------------------------------------------------------------------------------------. 182 * ,--------------------------------------------------------------------------------------------------------.
@@ -192,13 +192,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
192 * `--------------------------------------------------------------------------------------------------------' 192 * `--------------------------------------------------------------------------------------------------------'
193 */ 193 */
194 194
195[_ADJUST] = { 195[_ADJUST] = LAYOUT_ortho_5x15(
196 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 196 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
197 { _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_DEL }, 197 _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_DEL,
198 { _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______ }, 198 _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
199 { _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, _______, _______, _______, MI_OFF, _______, _______, _______, _______, _______ }, 199 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, _______, _______, _______, MI_OFF, _______, _______, _______, _______, _______,
200 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } 200 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
201} 201)
202}; 202};
203 203
204#ifdef AUDIO_ENABLE 204#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] = {
23 * '--------------------------------------------------------------------------------------------------------------------------------------' 23 * '--------------------------------------------------------------------------------------------------------------------------------------'
24 */ 24 */
25 25
26 [_AZ] = { /* AZERTY */ 26 [_AZ] = LAYOUT_ortho_5x15( /* AZERTY */
27 { 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 }, 27 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,
28 { 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 }, 28 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,
29 { 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 }, 29 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,
30 { 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 }, 30 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,
31 { 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 }, 31 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
32 }, 32 ),
33 33
34 34
35/* FUNCTION 35/* FUNCTION
@@ -46,11 +46,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 * '--------------------------------------------------------------------------------------------------------------------------------------' 46 * '--------------------------------------------------------------------------------------------------------------------------------------'
47 */ 47 */
48 48
49 [_FN] = { /* FUNCTION */ 49 [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
50 { 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 }, 50 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,
51 { 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 }, 51 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,
52 { 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 }, 52 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,
53 { 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 }, 53 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,
54 { 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 }, 54 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
55 }, 55 )
56}; 56};
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] = {
53 * °-----------------------------------------------------------------------------------------------------------------------° 53 * °-----------------------------------------------------------------------------------------------------------------------°
54 */ 54 */
55 55
56 [_QWZ] = { 56 [_QWZ] = LAYOUT_ortho_5x15(
57 { 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 }, 57 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,
58 { 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 }, 58 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,
59 { 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 }, 59 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,
60 { 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 }, 60 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,
61 { 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 }, 61 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
62 }, 62 ),
63 63
64 /* FNC 64 /* FNC
65 * .-----------------------------------------------------------------------------------------------------------------------. 65 * .-----------------------------------------------------------------------------------------------------------------------.
@@ -74,13 +74,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
74 * | TO(0) | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | Prev | VolDn | Next | 74 * | TO(0) | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | Prev | VolDn | Next |
75 * °-----------------------------------------------------------------------------------------------------------------------° 75 * °-----------------------------------------------------------------------------------------------------------------------°
76*/ 76*/
77 [_FNC] = { 77 [_FNC] = LAYOUT_ortho_5x15(
78 { 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 }, 78 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,
79 { 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 }, 79 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,
80 { 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 }, 80 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,
81 { 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 }, 81 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,
82 { 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 }, 82 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
83 }, 83 )
84 84
85}; 85};
86 86
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 @@
6#define _NM 3 6#define _NM 3
7 7
8const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 8const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
9 [_QW] = { 9 [_QW] = LAYOUT_ortho_5x15(
10 { 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 }, 10 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,
11 { 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 }, 11 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,
12 { 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 }, 12 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,
13 { 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 }, 13 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,
14 { 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 }, 14 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
15 }, 15 ),
16 [_LW] = { 16 [_LW] = LAYOUT_ortho_5x15(
17 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 17 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
18 { KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______ }, 18 KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______,
19 { _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F11 , KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_BSLS }, 19 _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F11 , KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_BSLS,
20 { _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______, _______, _______, KC_F12 , KC_GRV , _______, _______, _______, _______ }, 20 _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______, _______, _______, KC_F12 , KC_GRV , _______, _______, _______, _______,
21 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 21 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
22 }, 22 ),
23 [_NV] = { 23 [_NV] = LAYOUT_ortho_5x15(
24 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 24 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
25 { _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, _______, _______, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______ }, 25 _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, _______, _______, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______,
26 { _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , _______ }, 26 _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , _______,
27 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______ }, 27 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______,
28 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 28 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
29 }, 29 ),
30 [_NM] = { 30 [_NM] = LAYOUT_ortho_5x15(
31 { _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______ }, 31 _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
32 { _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______ }, 32 _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______,
33 { _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______ }, 33 _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______,
34 { _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______ }, 34 _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
35 { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 35 RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
36 } 36 )
37}; 37};
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] = {
40 * '--------------------------------------------------------------------------------------------------------------------------------------' 40 * '--------------------------------------------------------------------------------------------------------------------------------------'
41 */ 41 */
42 42
43 [_QW] = { /* SPLIT QWERTY */ 43 [_QW] = LAYOUT_ortho_5x15( /* SPLIT QWERTY */
44 { 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 }, 44 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,
45 { 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 }, 45 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,
46 { 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 }, 46 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,
47 { 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 }, 47 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,
48 { _______, 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, _______ }, 48 _______, 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, _______
49 }, 49 ),
50 50
51/* LOWERED 51/* LOWERED
52 * .--------------------------------------------------------------------------------------------------------------------------------------. 52 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -62,13 +62,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
62 * '--------------------------------------------------------------------------------------------------------------------------------------' 62 * '--------------------------------------------------------------------------------------------------------------------------------------'
63 */ 63 */
64 64
65 [_LW] = { /* LOWERED */ 65 [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
66 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______ }, 66 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______,
67 { _______, KC_MPRV, KC_MNXT, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 67 _______, KC_MPRV, KC_MNXT, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
68 { _______, KC_MPLY, KC_MSTP, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 68 _______, KC_MPLY, KC_MSTP, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
69 { _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 69 _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
70 { _______, MO(_RT), MO(_RT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 70 _______, MO(_RT), MO(_RT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
71 }, 71 ),
72 72
73/* RAISED 73/* RAISED
74 * .--------------------------------------------------------------------------------------------------------------------------------------. 74 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -84,13 +84,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
84 * '--------------------------------------------------------------------------------------------------------------------------------------' 84 * '--------------------------------------------------------------------------------------------------------------------------------------'
85 */ 85 */
86 86
87 [_RS] = { /* RAISED */ 87 [_RS] = LAYOUT_ortho_5x15( /* RAISED */
88 { _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL }, 88 _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
89 { _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS }, 89 _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS,
90 { _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______ }, 90 _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
91 { _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______ }, 91 _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
92 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_RT), MO(_RT), _______ }, 92 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_RT), MO(_RT), _______
93 }, 93 ),
94 94
95/* RESET 95/* RESET
96 * .--------------------------------------------------------------------------------------------------------------------------------------. 96 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -106,13 +106,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
106 * '--------------------------------------------------------------------------------------------------------------------------------------' 106 * '--------------------------------------------------------------------------------------------------------------------------------------'
107 */ 107 */
108 108
109 [_RT] = { /* RESET */ 109 [_RT] = LAYOUT_ortho_5x15( /* RESET */
110 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 110 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
111 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 111 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
112 { _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______ }, 112 _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______,
113 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 113 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
114 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 114 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
115 } 115 )
116 116
117}; 117};
118 118
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] = {
40 * '--------------------------------------------------------------------------------------------------------------------------------------' 40 * '--------------------------------------------------------------------------------------------------------------------------------------'
41 */ 41 */
42 42
43 [_QW] = { /* SPLIT QWERTY */ 43 [_QW] = LAYOUT_ortho_5x15( /* SPLIT QWERTY */
44 { 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 }, 44 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,
45 { 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 }, 45 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,
46 { 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 }, 46 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,
47 { 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 }, 47 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,
48 { 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 }, 48 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
49 }, 49 ),
50 50
51/* LOWERED 51/* LOWERED
52 * .--------------------------------------------------------------------------------------------------------------------------------------. 52 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -62,13 +62,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
62 * '--------------------------------------------------------------------------------------------------------------------------------------' 62 * '--------------------------------------------------------------------------------------------------------------------------------------'
63 */ 63 */
64 64
65 [_LW] = { /* LOWERED */ 65 [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
66 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______ }, 66 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______,
67 { _______, KC_MPRV, KC_MNXT, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______ }, 67 _______, KC_MPRV, KC_MNXT, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______,
68 { _______, KC_MPLY, KC_MSTP, KC_VOLD, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______ }, 68 _______, KC_MPLY, KC_MSTP, KC_VOLD, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______,
69 { _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 69 _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
70 { _______, MO(_RT), MO(_RT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 70 _______, MO(_RT), MO(_RT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
71 }, 71 ),
72 72
73/* RAISED 73/* RAISED
74 * .--------------------------------------------------------------------------------------------------------------------------------------. 74 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -84,13 +84,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
84 * '--------------------------------------------------------------------------------------------------------------------------------------' 84 * '--------------------------------------------------------------------------------------------------------------------------------------'
85 */ 85 */
86 86
87 [_RS] = { /* RAISED */ 87 [_RS] = LAYOUT_ortho_5x15( /* RAISED */
88 { _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL }, 88 _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
89 { _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS }, 89 _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS
90 { _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______ }, 90 _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
91 { _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______ }, 91 _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
92 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_RT), MO(_RT), _______ }, 92 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_RT), MO(_RT), _______
93 }, 93 ),
94 94
95/* RESET 95/* RESET
96 * .--------------------------------------------------------------------------------------------------------------------------------------. 96 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -106,13 +106,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
106 * '--------------------------------------------------------------------------------------------------------------------------------------' 106 * '--------------------------------------------------------------------------------------------------------------------------------------'
107 */ 107 */
108 108
109 [_RT] = { /* RESET */ 109 [_RT] = LAYOUT_ortho_5x15( /* RESET */
110 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 110 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
111 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 111 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
112 { _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______ }, 112 _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______,
113 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 113 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
114 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 114 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
115 } 115 )
116 116
117}; 117};
118 118
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 @@
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 27
28 28
29 [_WO] = { /* WORKMAN */ 29 [_WO] = LAYOUT_ortho_5x15( /* WORKMAN */
30 { 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 }, 30 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,
31 { 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 }, 31 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,
32 { 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 }, 32 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,
33 { 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 }, 33 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,
34 { 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)}, 34 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)
35 }, 35 ),
36 36
37 [_QW] = { /* QWERTY */ 37 [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
38 { _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______ }, 38 _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
39 { _______, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, _______ }, 39 _______, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, _______,
40 { _______, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______ }, 40 _______, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______,
41 { _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______ }, 41 _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
42 { _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ }, 42 _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______
43 },// 43 ),//
44 44
45 [_NUM] = { /* NUM */ 45 [_NUM] = LAYOUT_ortho_5x15( /* NUM */
46 { _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ }, 46 _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
47 { _______, _______, _______, _______, _______,_______,KC_7, KC_8, KC_9, _______,_______,_______, _______, _______, _______ }, 47 _______, _______, _______, _______, _______,_______,KC_7, KC_8, KC_9, _______,_______,_______, _______, _______, _______,
48 { _______, _______, _______, _______, _______,_______,KC_4, KC_5, KC_6, _______,_______,_______, _______, _______, _______ }, 48 _______, _______, _______, _______, _______,_______,KC_4, KC_5, KC_6, _______,_______,_______, _______, _______, _______,
49 { _______, _______, _______, _______, _______,_______,KC_1, KC_2, KC_3, _______,_______,_______, _______, _______, _______ }, 49 _______, _______, _______, _______, _______,_______,KC_1, KC_2, KC_3, _______,_______,_______, _______, _______, _______,
50 { _______, _______, _______, _______, _______,_______,_______, KC_0, _______, _______,_______,_______, _______, _______, _______ }, 50 _______, _______, _______, _______, _______,_______,_______, KC_0, _______, _______,_______,_______, _______, _______, _______
51 }, 51 ),
52 [_SYM] = { /* SYM */ 52 [_SYM] = LAYOUT_ortho_5x15( /* SYM */
53 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, }, 53 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
54 { _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR,KC_ASTR,_______, KC_F11, KC_F12, KC_LABK,KC_HOME,KC_UP, KC_PGUP, KC_ASTR, _______ }, 54 _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR,KC_ASTR,_______, KC_F11, KC_F12, KC_LABK,KC_HOME,KC_UP, KC_PGUP, KC_ASTR, _______,
55 { _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN,KC_GRV, _______, _______, _______, KC_RABK,KC_LEFT,KC_DOWN, KC_RIGHT,KC_PLUS, _______ }, 55 _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN,KC_GRV, _______, _______, _______, KC_RABK,KC_LEFT,KC_DOWN, KC_RIGHT,KC_PLUS, _______,
56 { _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC,KC_TILD,_______, _______, _______, KC_AMPR,KC_END, KC_DOWN, KC_PGDN, KC_BSLS, _______ }, 56 _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC,KC_TILD,_______, _______, _______, KC_AMPR,KC_END, KC_DOWN, KC_PGDN, KC_BSLS, _______,
57 { _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ }, 57 _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______
58 }, 58 ),
59 [_FUN] = { /* FUN */ 59 [_FUN] = LAYOUT_ortho_5x15( /* FUN */
60 { _______, RGB_RMOD,RGB_MOD, RGB_TOG, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, RESET }, 60 _______, RGB_RMOD,RGB_MOD, RGB_TOG, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, RESET,
61 { _______, RGB_HUD, RGB_HUI, RGB_MODE_PLAIN, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ }, 61 _______, RGB_HUD, RGB_HUI, RGB_MODE_PLAIN, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
62 { _______, RGB_SAD, RGB_SAI, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ }, 62 _______, RGB_SAD, RGB_SAI, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
63 { _______, RGB_VAD, RGB_VAI, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ }, 63 _______, RGB_VAD, RGB_VAI, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
64 { _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______ }, 64 _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______
65 } 65 )
66}; 66};
67 67
68const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 68const 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] = {
59 * | Caps | Fn3 | LGUI | LAlt | Fn2 | Fn1 | Tab | Del | Enter | Space | Bksp | LAlt | LGUI | Fn3 | Ins | 59 * | Caps | Fn3 | LGUI | LAlt | Fn2 | Fn1 | Tab | Del | Enter | Space | Bksp | LAlt | LGUI | Fn3 | Ins |
60 * '--------------------------------------------------------------------------------------------------------------------------------------' 60 * '--------------------------------------------------------------------------------------------------------------------------------------'
61 */ 61 */
62[_QWZ] = { 62[_QWZ] = LAYOUT_ortho_5x15(
63{ 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 }, 63DE_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,
64{ 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 }, 64KC_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,
65{ 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 }, 65KC_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,
66{ 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 }, 66KC_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,
67{ 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 }, 67KC_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
68}, 68),
69 69
70/* QWERTY 70/* QWERTY
71 * .--------------------------------------------------------------------------------------------------------------------------------------. 71 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -80,13 +80,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
80 * | | | | | | | | | | | | | | | | 80 * | | | | | | | | | | | | | | | |
81 * '--------------------------------------------------------------------------------------------------------------------------------------' 81 * '--------------------------------------------------------------------------------------------------------------------------------------'
82 */ 82 */
83[_QWY] = { 83[_QWY] = LAYOUT_ortho_5x15(
84{ 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 }, 84DE_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,
85{ 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 }, 85KC_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,
86{ 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 }, 86KC_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,
87{ 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 }, 87KC_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,
88{ 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 }, 88KC_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
89}, 89),
90 90
91/* GAMING 91/* GAMING
92 * .--------------------------------------------------------------------------------------------------------------------------------------. 92 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -101,13 +101,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
101 * | Fn2 | | | | Space | | | | | | | | | | | 101 * | Fn2 | | | | Space | | | | | | | | | | |
102 * '--------------------------------------------------------------------------------------------------------------------------------------' 102 * '--------------------------------------------------------------------------------------------------------------------------------------'
103 */ 103 */
104[_GAM] = { 104[_GAM] = LAYOUT_ortho_5x15(
105{ 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 }, 105DE_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,
106{ 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 }, 106KC_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,
107{ 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 }, 107KC_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,
108{ 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 }, 108KC_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,
109{ 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 }, 109MO(_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
110}, 110),
111 111
112/* FN1 112/* FN1
113 * .--------------------------------------------------------------------------------------------------------------------------------------. 113 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -122,13 +122,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
122 * | | | | | | | | | | | | | | | | 122 * | | | | | | | | | | | | | | | |
123 * '--------------------------------------------------------------------------------------------------------------------------------------' 123 * '--------------------------------------------------------------------------------------------------------------------------------------'
124 */ 124 */
125[_FN1] = { 125[_FN1] = LAYOUT_ortho_5x15(
126{ 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 }, 126KC_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,
127{ ________, DE_AT, DE_TILD, DE_EURO, DE_ACUT, DE_GRV, ________, ___xx___, ________, DE_BSLS, DE_LCBR, DE_RCBR, DE_PLUS, DE_ASTR, ___xx___ }, 127________, DE_AT, DE_TILD, DE_EURO, DE_ACUT, DE_GRV, ________, ___xx___, ________, DE_BSLS, DE_LCBR, DE_RCBR, DE_PLUS, DE_ASTR, ___xx___,
128{ ________, DE_DQOT, DE_QUOT, UC(L'‚'), UC(L'‘'), UC(L'’'), ________, ________, ________, DE_PIPE, DE_LBRC, DE_RBRC, DE_EXLM, DE_QST, ________ }, 128________, DE_DQOT, DE_QUOT, UC(L'‚'), UC(L'‘'), UC(L'’'), ________, ________, ________, DE_PIPE, DE_LBRC, DE_RBRC, DE_EXLM, DE_QST, ________,
129{ ________, DE_RING, DE_CIRC, UC(L'„'), UC(L'“'), UC(L'â€'), ________, ________, ________, DE_HASH, DE_LESS, DE_MORE, UC(L'…'), UC(L'–'), ________ }, 129________, DE_RING, DE_CIRC, UC(L'„'), UC(L'“'), UC(L'â€'), ________, ________, ________, DE_HASH, DE_LESS, DE_MORE, UC(L'…'), UC(L'–'), ________,
130{ ___xx___, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________ }, 130___xx___, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________
131}, 131),
132 132
133/* FN2 133/* FN2
134 * .--------------------------------------------------------------------------------------------------------------------------------------. 134 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -143,13 +143,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
143 * | Fn2 | | | | | PEnter | P0 | . : | P, | BTN1 | BTN2 | BTN3 | | | | 143 * | Fn2 | | | | | PEnter | P0 | . : | P, | BTN1 | BTN2 | BTN3 | | | |
144 * '--------------------------------------------------------------------------------------------------------------------------------------' 144 * '--------------------------------------------------------------------------------------------------------------------------------------'
145 */ 145 */
146[_FN2] = { 146[_FN2] = LAYOUT_ortho_5x15(
147{ ___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'−') }, 147___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'−'),
148{ ________, ___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'÷') }, 148________, ___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'÷'),
149{ ________, 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, ________ }, 149________, 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, ________,
150{ ________, ___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'—'), ________ }, 150________, ___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'—'), ________,
151{ MO(_FN2), ________, ________, ________, ________, KC_PENT, KC_P0, DE_DOT, KC_PDOT, KC_BTN1, KC_BTN2, KC_BTN3, ________, ________, ________ }, 151MO(_FN2), ________, ________, ________, ________, KC_PENT, KC_P0, DE_DOT, KC_PDOT, KC_BTN1, KC_BTN2, KC_BTN3, ________, ________, ________
152}, 152),
153 153
154/* FN3 154/* FN3
155 * .--------------------------------------------------------------------------------------------------------------------------------------. 155 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -164,13 +164,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
164 * | | | | | | | | Reset | | | | | | | | 164 * | | | | | | | | Reset | | | | | | | |
165 * '--------------------------------------------------------------------------------------------------------------------------------------' 165 * '--------------------------------------------------------------------------------------------------------------------------------------'
166 */ 166 */
167[_FN3] = { 167[_FN3] = LAYOUT_ortho_5x15(
168{ 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 }, 168KC_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,
169{ ________, QWERTZ, QWERTY, GAMING, ___xx___, ___xx___, RGB_TOG, RGB_M_P, RGB_MOD, ___xx___, KC_PGUP, KC_UP, KC_PGDN, ___xx___, ___xx___ }, 169________, QWERTZ, QWERTY, GAMING, ___xx___, ___xx___, RGB_TOG, RGB_M_P, RGB_MOD, ___xx___, KC_PGUP, KC_UP, KC_PGDN, ___xx___, ___xx___,
170{ ________, ___xx___, ___xx___, UC(L'›'), UC(L'‹'), ___xx___, RGB_HUI, RGB_SAI, RGB_VAI, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, ________ }, 170________, ___xx___, ___xx___, UC(L'›'), UC(L'‹'), ___xx___, RGB_HUI, RGB_SAI, RGB_VAI, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, ________,
171{ ________, ___xx___, ___xx___, UC(L'»'), UC(L'«'), ___xx___, RGB_HUD, RGB_SAD, RGB_VAD, UC(L' '), UC(L' '), UC(L' '), UC(L' '), UC(L'‑'), ________ }, 171________, ___xx___, ___xx___, UC(L'»'), UC(L'«'), ___xx___, RGB_HUD, RGB_SAD, RGB_VAD, UC(L' '), UC(L' '), UC(L' '), UC(L' '), UC(L'‑'), ________,
172{ ___xx___, ________, ________, ________, ________, ________, ________, RESET, ________, ________, ________, ________, ________, ________, ________ }, 172___xx___, ________, ________, ________, ________, ________, ________, RESET, ________, ________, ________, ________, ________, ________, ________
173}, 173)
174 174
175}; 175};
176 176
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] = {
43 * '--------------------------------------------------------------------------------------------------------------------------------------' 43 * '--------------------------------------------------------------------------------------------------------------------------------------'
44 */ 44 */
45 45
46 [_QW] = { /* QWERTY */ 46 [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
47 { 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 }, 47 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,
48 { 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 }, 48 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,
49 { 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 }, 49 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,
50 { 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 }, 50 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,
51 { 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 }, 51 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
52 }, 52 ),
53 53
54 /* Dvorak */ 54 /* Dvorak */
55 55
56 [_DV] = { /* Dvorak */ 56 [_DV] = LAYOUT_ortho_5x15( /* Dvorak */
57 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
58 { _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, _______, _______, KC_F, KC_G, KC_C, KC_R, KC_L, _______ }, 58 _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, _______, _______, KC_F, KC_G, KC_C, KC_R, KC_L, _______,
59 { _______, KC_A, KC_O, KC_E, KC_U, KC_I, _______, _______, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH }, 59 _______, KC_A, KC_O, KC_E, KC_U, KC_I, _______, _______, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
60 { _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, _______, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, _______ }, 60 _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, _______, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, _______,
61 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
62 }, 62 ),
63 63
64 64
65/* LOWERED 65/* LOWERED
@@ -76,13 +76,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
76 * '--------------------------------------------------------------------------------------------------------------------------------------' 76 * '--------------------------------------------------------------------------------------------------------------------------------------'
77 */ 77 */
78 78
79 [_LW] = { /* LOWERED */ 79 [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
80 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL }, 80 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
81 { 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 }, 81 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,
82 { _______, 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 }, 82 _______, 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,
83 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_VOLD, _______, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE }, 83 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_VOLD, _______, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE,
84 { _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT }, 84 _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
85 }, 85 ),
86 86
87/* RAISED 87/* RAISED
88 * .--------------------------------------------------------------------------------------------------------------------------------------. 88 * .--------------------------------------------------------------------------------------------------------------------------------------.
@@ -98,23 +98,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
98 * '--------------------------------------------------------------------------------------------------------------------------------------' 98 * '--------------------------------------------------------------------------------------------------------------------------------------'
99 */ 99 */
100 100
101 [_RS] = { /* RAISED */ 101 [_RS] = LAYOUT_ortho_5x15( /* RAISED */
102 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL }, 102 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
103 { 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 }, 103 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,
104 { _______, 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 }, 104 _______, 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,
105 { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_VOLD, _______, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE }, 105 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_VOLD, _______, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE,
106 { _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT }, 106 _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
107 }, 107 ),
108 108
109/* FUNCTION */ 109/* FUNCTION */
110 110
111 [_FN] = { /* FUNCTION */ 111 [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
112 { RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______, _______, _______, _______ }, 112 RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______, _______, _______, _______,
113 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, KC_PSCR, _______ }, 113 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, KC_PSCR, _______,
114 { _______, _______, _______, TO(_DV), TO(_QW), _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______ }, 114 _______, _______, _______, TO(_DV), TO(_QW), _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
115 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 115 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
116 { RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 116 RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
117 }, 117 )
118}; 118};
119 119
120 120
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 @@
2#include "mtdjr.h" 2#include "mtdjr.h"
3 3
4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 4const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
5 [_QWERTY] = LAYOUT_ortho_5x15(
6 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,
7 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,
8 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,
9 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,
10 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
11 ),
5 12
6 [_QWERTY] = LAYOUT_kc( 13 [_LOWER] = LAYOUT_ortho_5x15(
7// .--------------------------------------------------------------------------. 14 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,
8 EXC, 1 , 2 , 3 , 4 , 5 ,PGUP,MPNT,PGDN, 6 , 7 , 8 , 9 , 0 ,BSPC, 15 XXXXXXX, KC_ROOT, KC_PPLY, KC_PSEF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
9// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----| 16 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
10 TAB, Q , W , E , R , T , INS,HOME, DEL, Y , U , I , O , P ,QUOT, 17 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE,
11// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----| 18 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, KC_MPLY, XXXXXXX, KC_MNXT, KC_VOLD, KC_VOLU, KC_MNXT
12 LCTL, A , S , D , F , G , EQL,ELCK,MINS, H , J , K , L ,SCLN, ENT, 19 ),
13// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
14 LSFT, Z , X , C , V , B ,LBRC,BSLS,RBRC, N , M ,COMM, DOT,SLSH,ELCK,
15// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
16 LOWR,LCTL,LALT,LGUI,xxxx, SPC,LOWR,RASE,xxxx, SPC, APP,LEFT,DOWN, UP,RGHT
17// '----+----+----+----+----+----+----+----+----+----+----+----+----+----+----'
18),
19 20
20 [_LOWER] = LAYOUT_kc( 21 [_RAISE] = LAYOUT_ortho_5x15(
21// .--------------------------------------------------------------------------. 22 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
22 xxxx, F1 , F2 , F3 , F4 , F5 , F6 ,xxxx, F7 , F8 , F9 , F10, F11, F12, DEL, 23 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
23// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----| 24 KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BLI, XXXXXXX, KC_BLD, XXXXXXX, XXXXXXX, XXXXXXX, KC_XLCK, XXXXXXX, XXXXXXX,
24 xxxx,ROOT,PPLY,PSEF,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, 25 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,
25// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----| 26 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R
26 xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,CALC,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, 27 )
27// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
28 xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,MUTE,
29// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
30 ,xxxx,xxxx,xxxx,xxxx,xxxx, , ,xxxx,MPLY,xxxx,MNXT,VOLD,VOLU,MNXT
31// '----+----+----+----+----+----+----+----+----+----+----+----+----+----+----'
32),
33
34[_RAISE] = LAYOUT_kc(
35// .--------------------------------------------------------------------------.
36 xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,
37// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
38 xxxx,xxxx,xxxx,xxxx, RST,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,
39// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
40 CAPS,xxxx,xxxx,xxxx,xxxx,xxxx, BLI,xxxx, BLD,xxxx,xxxx,xxxx,XLCK,xxxx,xxxx,
41// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
42 RGB,RHUI,RHUD,RSAI,RSAD,RVAI,RVAD,xxxx,xxxx,xxxx,xxxx,xxxx,BTN1,MS_U,BTN2,
43// |----+----+----+----+----+----+----+----+----+----+----+----+----+----+----|
44 ,xxxx,xxxx,xxxx,xxxx,xxxx, , ,xxxx,xxxx,xxxx,xxxx,MS_L,MS_D,MS_R
45// '----+----+----+----+----+----+----+----+----+----+----+----+----+----+----'
46)
47}; 28};
48 29
49void led_set_user(uint8_t usb_led) { 30bool led_update_user(led_t led_state) {
50 if (usb_led & (1<<USB_LED_CAPS_LOCK)) { 31 if (led_state.caps_lock) {
51 capslock_led_on(); 32 capslock_led_on();
52 } else { 33 } else {
53 capslock_led_off(); 34 capslock_led_off();
54 } 35 }
36 return false;
55} 37}
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[] = {
65const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 65const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
66 66
67 //QWERY - Base Layer 67 //QWERY - Base Layer
68 [_QWERTY] = { 68 [_QWERTY] = LAYOUT_ortho_5x15(
69 {KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS}, 69 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS,
70 {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 70 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
71{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 }, 71LT(_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,
72 {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. ,^| .^? /^| 72 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. ,^| .^? /^|
73 { 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)} 73 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)
74 74
75 }, 75 ),
76 76
77 //_COLEMAK - Colemak Layout - Identical to qwerty layer except for the layout changes 77 //_COLEMAK - Colemak Layout - Identical to qwerty layer except for the layout changes
78 [_COLEMAK] = { 78 [_COLEMAK] = LAYOUT_ortho_5x15(
79 {KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS}, 79 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS,
80 {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 80 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
81{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 }, 81LT(_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,
82 {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. ,^| .^? /^| 82 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. ,^| .^? /^|
83 { 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)} 83 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)
84 84
85 }, 85 ),
86 86
87 // Decision Layer 87 // Decision Layer
88 [_LYMD] = 88 [_LYMD] =
89 { 89 LAYOUT_ortho_5x15(
90 {________,________ ,________ ,________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, 90 ________,________ ,________ ,________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
91 {________,MO(_LYFK) ,MO(_LYMED),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________}, 91 ________,MO(_LYFK) ,MO(_LYMED),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________,
92 {________,MO(_LYNUM),MO(_LYNAV),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, 92 ________,MO(_LYNUM),MO(_LYNAV),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
93 {________,MO(_LYMOS),MO(_LYSYS),MO(_LYLT) ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, 93 ________,MO(_LYMOS),MO(_LYSYS),MO(_LYLT) ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
94 {________,________ ,________ ,________ ,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___} 94 ________,________ ,________ ,________ ,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
95 }, 95 ),
96 96
97 //F Keys 97 //F Keys
98 [_LYFK] = 98 [_LYFK] =
99 { 99 LAYOUT_ortho_5x15(
100 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, 100 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
101 {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F7 ,KC_F8 ,KC_F9 ,KC_F12 ,________}, 101 KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F7 ,KC_F8 ,KC_F9 ,KC_F12 ,________,
102 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F4 ,KC_F5 ,KC_F6 ,KC_F11 ,___XX___}, 102 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F4 ,KC_F5 ,KC_F6 ,KC_F11 ,___XX___,
103 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F1 ,KC_F2 ,KC_F3 ,KC_F10 ,___XX___}, 103 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F1 ,KC_F2 ,KC_F3 ,KC_F10 ,___XX___,
104 {________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___} 104 ________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
105 }, 105 ),
106//Media Keys 106//Media Keys
107[_LYMED] = 107[_LYMED] =
108 { 108 LAYOUT_ortho_5x15(
109 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, 109 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
110 {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLU ,___XX___,___XX___,________}, 110 KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLU ,___XX___,___XX___,________,
111 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPRV ,KC_MUTE ,KC_MNXT ,___XX___,___XX___}, 111 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPRV ,KC_MUTE ,KC_MNXT ,___XX___,___XX___,
112 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLD ,___XX___,KC_MSTP ,___XX___}, 112 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLD ,___XX___,KC_MSTP ,___XX___,
113 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPLY ,___XX___,___XX___,___XX___,___XX___} 113 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPLY ,___XX___,___XX___,___XX___,___XX___
114 }, 114 ),
115//Num Keys 115//Num Keys
116[_LYNUM] = 116[_LYNUM] =
117 { 117 LAYOUT_ortho_5x15(
118 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_PEQL ,KC_PSLS ,KC_PAST ,KC_PMNS ,___XX___}, 118 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_PEQL ,KC_PSLS ,KC_PAST ,KC_PMNS ,___XX___,
119 {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_7 ,KC_8 ,KC_9 ,KC_MINUS,________}, 119 KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_7 ,KC_8 ,KC_9 ,KC_MINUS,________,
120 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_4 ,KC_5 ,KC_6 ,KC_PPLS ,KC_PSLS }, 120 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_4 ,KC_5 ,KC_6 ,KC_PPLS ,KC_PSLS,
121 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_1 ,KC_2 ,KC_3 ,KC_PENT ,KC_PAST }, 121 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_1 ,KC_2 ,KC_3 ,KC_PENT ,KC_PAST,
122 {________,________,________,________,________,________,________,________,________,________,KC_0 ,KC_0 ,KC_PDOT ,KC_PEQL ,___XX___} 122 ________,________,________,________,________,________,________,________,________,________,KC_0 ,KC_0 ,KC_PDOT ,KC_PEQL ,___XX___
123 }, 123 ),
124//Navigation Keys 124//Navigation Keys
125[_LYNAV] = 125[_LYNAV] =
126 { 126 LAYOUT_ortho_5x15(
127 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, 127 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
128 {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_HOME ,KC_UP ,KC_PGUP ,KC_PSCR ,________}, 128 KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_HOME ,KC_UP ,KC_PGUP ,KC_PSCR ,________,
129 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_LEFT ,KC_F5 ,KC_RIGHT,KC_SLCK ,___XX___}, 129 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_LEFT ,KC_F5 ,KC_RIGHT,KC_SLCK ,___XX___,
130 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_END ,KC_DOWN ,KC_PGDN ,KC_PAUS ,___XX___}, 130 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_END ,KC_DOWN ,KC_PGDN ,KC_PAUS ,___XX___,
131 {________,________,________,________,________,________,________,________,________,________,________,KC_INS ,KC_DEL ,___XX___,___XX___} 131 ________,________,________,________,________,________,________,________,________,________,________,KC_INS ,KC_DEL ,___XX___,___XX___
132 }, 132 ),
133 //Mouse Keys 133 //Mouse Keys
134 [_LYMOS] = 134 [_LYMOS] =
135 { 135 LAYOUT_ortho_5x15(
136 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, 136 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
137 {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_U ,KC_WH_U ,KC_ACL2 ,________}, 137 KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_U ,KC_WH_U ,KC_ACL2 ,________,
138 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MS_L ,KC_ACL0 ,KC_MS_R ,KC_ACL1 ,___XX___}, 138 _______,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MS_L ,KC_ACL0 ,KC_MS_R ,KC_ACL1 ,___XX___,
139 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_D ,KC_WH_D ,KC_BTN2 ,___XX___}, 139 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_D ,KC_WH_D ,KC_BTN2 ,___XX___,
140 {________,________,________,________,________,________,________,________,________,________,KC_BTN1 ,KC_BTN3 ,KC_BTN4 ,___XX___,___XX___} 140 ________,________,________,________,________,________,________,________,________,________,KC_BTN1 ,KC_BTN3 ,KC_BTN4 ,___XX___,___XX___
141 }, 141 ),
142 //Systen Keys 142 //Systen Keys
143 [_LYSYS] = 143 [_LYSYS] =
144 { 144 LAYOUT_ortho_5x15(
145 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, 145 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
146 {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________}, 146 KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________,
147 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,QWERTY ,COLEMAK ,___XX___,RESET }, 147 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,QWERTY ,COLEMAK ,___XX___,RESET,
148 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, 148 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
149 {________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___} 149 ________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
150 }, 150 ),
151 151
152// Light Control 152// Light Control
153[_LYLT] = 153[_LYLT] =
154 { 154 LAYOUT_ortho_5x15(
155 {________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___}, 155 ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
156 {KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,RGB_VAD ,RGB_VAI }, 156 KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,RGB_VAD ,RGB_VAI,
157 {________,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_TOG ,RGB_RMOD,RGB_MOD ,___XX___,___XX___,___XX___}, 157 ________,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_TOG ,RGB_RMOD,RGB_MOD ,___XX___,___XX___,___XX___,
158 {________,________,________,________,________,________,___XX___,___XX___,___XX___,BL_TOGG ,BL_DEC ,BL_INC ,BL_BRTG ,___XX___,___XX___}, 158 ________,________,________,________,________,________,___XX___,___XX___,___XX___,BL_TOGG ,BL_DEC ,BL_INC ,BL_BRTG ,___XX___,___XX___,
159 {________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___} 159 ________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
160 } 160 )
161}; 161};
162 162
163//Define layer colors 163//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 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16
16#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
17 18
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 /* QWERTY
21 * .--------------------------------------------------------------------------------------------------------------------------------------.
22 * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
23 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
24 * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | ' |
25 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
26 * | CAP LK | A | S | D | F | G | HOME | DEL | PG UP | H | J | K | L | ; | ENTER |
27 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
28 * | LSHIFT | Z | X | C | V | B | END | UP | PG DN | N | M | , | . | / | RSHIFT |
29 * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
30 * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | LEFT | DOWN | RIGHT | SPACE | SPACE | FN | RALT | RGUI | RCTRL |
31 * '--------------------------------------------------------------------------------------------------------------------------------------'
32 */
33 [0] = LAYOUT_ortho_5x15(
34 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,
35 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,
36 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,
37 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,
38 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
39 ),
19 40
20/* QWERTY 41 /* FUNCTION
21 * .--------------------------------------------------------------------------------------------------------------------------------------. 42 * .--------------------------------------------------------------------------------------------------------------------------------------.
22 * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP | 43 * | F1 | F2 | F3 | F4 | F5 | F6 | NUM LK | P/ | P* | F7 | F8 | F9 | F10 | F11 | F12 |
23 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| 44 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
24 * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | ' | 45 * | SELECT | CALC | MYCOMP | MAIL | RGB HD | RGB HI | P7 | P8 | P9 | - | | | PR SCR | SCR LK | PAUSE |
25 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------| 46 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
26 * | CAP LK | A | S | D | F | G | HOME | DEL | PG UP | H | J | K | L | ; | ENTER | 47 * | PREV | PLAY | NEXT | STOP | RGB SD | RGB SI | P4 | P5 | P6 | + | | RESET | | | |
27 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------| 48 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
28 * | LSHIFT | Z | X | C | V | B | END | UP | PG DN | N | M | , | . | / | RSHIFT | 49 * | VOL- | MUTE | VOL+ | APP | RGB VD | RGB VI | P1 | P2 | P3 | PENT | | | | | |
29 * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------| 50 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
30 * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | LEFT | DOWN | RIGHT | SPACE | SPACE | FN | RALT | RGUI | RCTRL | 51 * | | | RGB TG | FN | RGB RMD| RGB MD | P0 | | P. | PENT | PENT | FN | | | |
31 * '--------------------------------------------------------------------------------------------------------------------------------------' 52 * '--------------------------------------------------------------------------------------------------------------------------------------'
32 */ 53 */
33 54 [1] = LAYOUT_ortho_5x15(
34 [0] = LAYOUT_ortho_5x15( /* QWERTY */ 55 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,
35 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, 56 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,
36 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, 57 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______,
37 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, 58 KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
38 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, 59 _______, _______, RGB_TOG, _______, RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, _______, _______, _______, _______
39 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 60 ),
40 ),
41
42/* FUNCTION
43 * .--------------------------------------------------------------------------------------------------------------------------------------.
44 * | F1 | F2 | F3 | F4 | F5 | F6 | NUM LK | P/ | P* | F7 | F8 | F9 | F10 | F11 | F12 |
45 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
46 * | SELECT | CALC | MYCOMP | MAIL | RGB HD | RGB HI | P7 | P8 | P9 | - | | | PR SCR | SCR LK | PAUSE |
47 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
48 * | PREV | PLAY | NEXT | STOP | RGB SD | RGB SI | P4 | P5 | P6 | + | | RESET | | | |
49 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
50 * | VOL- | MUTE | VOL+ | APP | RGB VD | RGB VI | P1 | P2 | P3 | PENT | | | | | |
51 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
52 * | | | RGB TG | FN | RGB RMD| RGB MD | P0 | | P. | PENT | PENT | FN | | | |
53 * '--------------------------------------------------------------------------------------------------------------------------------------'
54 */
55
56 [1] = LAYOUT_ortho_5x15( /* FUNCTION */
57 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,
58 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,
59 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______,
60 KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
61 _______, _______, RGB_TOG, _______, RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, _______, _______, _______, _______
62 ),
63 61
64 [2] = LAYOUT_ortho_5x15( 62 [2] = LAYOUT_ortho_5x15(
65 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 63 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
66 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 64 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
67 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 65 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
68 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 66 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
69 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 67 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
70 ), 68 ),
71 69
72 [3] = LAYOUT_ortho_5x15( 70 [3] = LAYOUT_ortho_5x15(
73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 71 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
76 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
77 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 75 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
78 ), 76 )
79}; 77};
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 @@
4 4
5The 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! 5The 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!
6 6
7Keyboard Maintainer: [The QMK Community](https://github.com/qmk) 7* Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
8Hardware Supported: XD75Re 8* Hardware Supported: XD75Re
9Hardware 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) 9* 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)
10 10
11Make example for this keyboard (after setting up your build environment): 11Make example for this keyboard (after setting up your build environment):
12 12
13 make xd75:default 13 make xd75:default
14 14
15Flashing example: 15Flashing example for this keyboard:
16 16
17 make xd75:default:dfu 17 make xd75:default:flash
18 18
19See 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). 19See 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).
20 20
21## LED Control
21 22
22## LED control 23There are 3 individual LEDs that can be turned on and off. The functions are named according to how they're labeled on the PCB.
23
24There 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.
25 24
26TODO: it would be nice to have PWM support on these LEDs for fade-in/fade-out effects. 25TODO: it would be nice to have PWM support on these LEDs for fade-in/fade-out effects.
27 26
@@ -29,13 +28,9 @@ TODO: it would be nice to have PWM support on these LEDs for fade-in/fade-out ef
29capslock_led_on(); 28capslock_led_on();
30gp100_led_on(); 29gp100_led_on();
31gp103_led_on(); 30gp103_led_on();
32keycaps_led_on();
33
34 31
35// led_set_user example - you could also turn these on/off in response 32bool led_update_user(led_t led_state) {
36// to events in process_record_user or matrix_scan_user 33 if (led_state.caps_lock) {
37void led_set_user(uint8_t usb_led) {
38 if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
39 capslock_led_on(); 34 capslock_led_on();
40 } else { 35 } else {
41 capslock_led_off(); 36 capslock_led_off();
@@ -43,10 +38,11 @@ void led_set_user(uint8_t usb_led) {
43 38
44 if (some_custom_state) { 39 if (some_custom_state) {
45 gp100_led_on(); 40 gp100_led_on();
46 } 41 } else {
47 else {
48 gp100_led_off(); 42 gp100_led_off();
49 } 43 }
44
45 return false;
50} 46}
51``` 47```
52 48
@@ -55,6 +51,5 @@ For the curious:
55``` 51```
56CAPSLOCK_LED B2 52CAPSLOCK_LED B2
57GP103_LED F4 53GP103_LED F4
58KEYCAPS_LED F5
59GP100_LED F7 54GP100_LED F7
60``` 55```
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 @@
2MCU = atmega32u4 2MCU = atmega32u4
3 3
4# Bootloader selection 4# Bootloader selection
5# Teensy halfkay
6# Pro Micro caterina
7# Atmel DFU atmel-dfu
8# LUFA DFU lufa-dfu
9# QMK DFU qmk-dfu
10# ATmega32A bootloadHID
11# ATmega328P USBasp
12BOOTLOADER = atmel-dfu 5BOOTLOADER = atmel-dfu
13 6
14# QMK Build Options 7# Build Options
15# change to "no" to disable the options, or define them in the Makefile in 8# change yes to no to disable
16# the appropriate keymap folder that will get included automatically
17# 9#
18BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration 10BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
19MOUSEKEY_ENABLE = yes # Mouse keys 11MOUSEKEY_ENABLE = yes # Mouse keys
20EXTRAKEY_ENABLE = yes # Audio control and System control 12EXTRAKEY_ENABLE = yes # Audio control and System control
21CONSOLE_ENABLE = no # Console for debug 13CONSOLE_ENABLE = no # Console for debug
22COMMAND_ENABLE = yes # Commands for debug and configuration 14COMMAND_ENABLE = yes # Commands for debug and configuration
23NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
24BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
25MIDI_ENABLE = no # MIDI support
26AUDIO_ENABLE = no # Audio output on port C6
27UNICODE_ENABLE = no # Unicode
28BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
29RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
30SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
31 23
32LAYOUTS = ortho_5x15 24LAYOUTS = 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 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16
16#include "xd75.h" 17#include "xd75.h"
17 18
18#define XD75_CAPSLOCK_LED 2 // B2 19#define XD75_CAPSLOCK_LED B2
19#define XD75_GP103_LED 4 // F4 20#define XD75_GP103_LED F4
20#define XD75_KEYCAPS_LED 5 // F5 21#define XD75_GP100_LED F7
21#define XD75_GP100_LED 7 // F7
22 22
23void matrix_init_kb(void) { 23void matrix_init_kb(void) {
24 // put your keyboard start-up code here 24 capslock_led_init();
25 // runs once when the firmware starts up 25 gp100_led_init();
26 26 gp103_led_init();
27 capslock_led_init();
28 gp100_led_init();
29 gp103_led_init();
30 keycaps_led_init();
31
32 matrix_init_user();
33}
34
35void matrix_scan_kb(void) {
36 // put your looping keyboard code here
37 // runs every cycle (a lot)
38 27
39 matrix_scan_user(); 28 matrix_init_user();
40}
41
42bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
43 // put your per-action keyboard code here
44 // runs for every action, just before processing by the firmware
45
46 return process_record_user(keycode, record);
47}
48
49void led_set_kb(uint8_t usb_led) {
50 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
51
52 led_set_user(usb_led);
53} 29}
54 30
55void capslock_led_init(void) { 31void capslock_led_init(void) {
56 DDRB |= (1 << XD75_CAPSLOCK_LED); 32 setPinOutput(XD75_CAPSLOCK_LED);
57 capslock_led_off(); 33 capslock_led_off();
58} 34}
59 35
60void capslock_led_off(void) { 36void capslock_led_off(void) {
61 PORTB |= (1 << XD75_CAPSLOCK_LED); 37 writePinHigh(XD75_CAPSLOCK_LED);
62} 38}
63 39
64void capslock_led_on(void) { 40void capslock_led_on(void) {
65 PORTB &= ~(1 << XD75_CAPSLOCK_LED); 41 writePinLow(XD75_CAPSLOCK_LED);
66} 42}
67 43
68void gp100_led_init(void) { 44void gp100_led_init(void) {
69 DDRF |= (1 << XD75_GP100_LED); 45 setPinOutput(XD75_GP100_LED);
70 gp100_led_off(); 46 gp100_led_off();
71} 47}
72 48
73void gp100_led_off(void) { 49void gp100_led_off(void) {
74 PORTF |= (1 << XD75_GP100_LED); 50 writePinHigh(XD75_GP100_LED);
75} 51}
76 52
77void gp100_led_on(void) { 53void gp100_led_on(void) {
78 PORTF &= ~(1 << XD75_GP100_LED); 54 writePinLow(XD75_GP100_LED);
79} 55}
80 56
81void gp103_led_init(void) { 57void gp103_led_init(void) {
82 DDRF |= (1 << XD75_GP103_LED); 58 setPinOutput(XD75_GP103_LED);
83 gp103_led_off(); 59 gp103_led_off();
84} 60}
85 61
86void gp103_led_off(void) { 62void gp103_led_off(void) {
87 PORTF &= ~(1 << XD75_GP103_LED); 63 writePinLow(XD75_GP103_LED);
88} 64}
89 65
90void gp103_led_on(void) { 66void gp103_led_on(void) {
91 PORTF |= (1 << XD75_GP103_LED); 67 writePinHigh(XD75_GP103_LED);
92}
93
94void keycaps_led_init(void) {
95 DDRF |= (1 << XD75_KEYCAPS_LED);
96 keycaps_led_off();
97}
98
99void keycaps_led_off(void) {
100 PORTF |= (1 << XD75_KEYCAPS_LED);
101}
102
103void keycaps_led_on(void) {
104 PORTF &= ~(1 << XD75_KEYCAPS_LED);
105} 68}
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 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16
16#pragma once 17#pragma once
17 18
18#include "quantum.h" 19#include "quantum.h"
19 20
20// This a shortcut to help you visually see your layout. 21void capslock_led_init(void);
21// The following is an example using the Planck MIT layout 22void capslock_led_off(void);
22// The first section contains all of the arguments 23void capslock_led_on(void);
23// The second converts the arguments into a two-dimensional array 24
24#define LAYOUT( \ 25void gp100_led_init(void);
26void gp100_led_off(void);
27void gp100_led_on(void);
28
29void gp103_led_init(void);
30void gp103_led_off(void);
31void gp103_led_on(void);
32
33/* This is a shortcut to help you visually see your layout.
34 *
35 * The first section contains all of the arguments representing the physical
36 * layout of the board and position of the keys.
37 *
38 * The second converts the arguments into a two-dimensional array which
39 * represents the switch matrix.
40 */
41#define LAYOUT_ortho_5x15( \
25 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\ 42 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
26 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E,\ 43 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E,\
27 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,\ 44 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,\
@@ -35,34 +52,4 @@
35 { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E } \ 52 { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E } \
36} 53}
37 54
38#define LAYOUT_kc( \ 55#define LAYOUT LAYOUT_ortho_5x15
39 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
40 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E,\
41 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,\
42 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E,\
43 K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E \
44) { \
45 { 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 }, \
46 { 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 }, \
47 { 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 }, \
48 { 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 }, \
49 { 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 } \
50}
51
52#define LAYOUT_ortho_5x15 LAYOUT
53
54void capslock_led_init(void);
55void capslock_led_off(void);
56void capslock_led_on(void);
57
58void gp100_led_init(void);
59void gp100_led_off(void);
60void gp100_led_on(void);
61
62void gp103_led_init(void);
63void gp103_led_off(void);
64void gp103_led_on(void);
65
66void keycaps_led_init(void);
67void keycaps_led_off(void);
68void keycaps_led_on(void);
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 @@
209/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 209/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
210//#define MIDI_TONE_KEYCODE_OCTAVES 1 210//#define MIDI_TONE_KEYCODE_OCTAVES 1
211 211
212/*
213 * HD44780 LCD Display Configuration
214 */
215/*
216#define LCD_LINES 2 //< number of visible lines of the display
217#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
218
219#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
220
221#if LCD_IO_MODE
222#define LCD_PORT PORTB //< port for the LCD lines
223#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
224#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
225#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
226#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
227#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
228#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
229#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
230#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
231#define LCD_RS_PORT LCD_PORT //< port for RS line
232#define LCD_RS_PIN 3 //< pin for RS line
233#define LCD_RW_PORT LCD_PORT //< port for RW line
234#define LCD_RW_PIN 2 //< pin for RW line
235#define LCD_E_PORT LCD_PORT //< port for Enable line
236#define LCD_E_PIN 1 //< pin for Enable line
237#endif
238*/
239
240/* Bootmagic Lite key configuration */ 212/* Bootmagic Lite key configuration */
241// #define BOOTMAGIC_LITE_ROW 0 213// #define BOOTMAGIC_LITE_ROW 0
242// #define BOOTMAGIC_LITE_COLUMN 0 214// #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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34LTO_ENABLE = yes 33LTO_ENABLE = yes
35 34
36# custom matrix setup 35# 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/>.
192/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 192/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
193//#define MIDI_TONE_KEYCODE_OCTAVES 1 193//#define MIDI_TONE_KEYCODE_OCTAVES 1
194 194
195/*
196 * HD44780 LCD Display Configuration
197 */
198/*
199#define LCD_LINES 2 //< number of visible lines of the display
200#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
201
202#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
203
204#if LCD_IO_MODE
205#define LCD_PORT PORTB //< port for the LCD lines
206#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
207#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
208#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
209#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
210#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
211#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
212#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
213#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
214#define LCD_RS_PORT LCD_PORT //< port for RS line
215#define LCD_RS_PIN 3 //< pin for RS line
216#define LCD_RW_PORT LCD_PORT //< port for RW line
217#define LCD_RW_PIN 2 //< pin for RW line
218#define LCD_E_PORT LCD_PORT //< port for Enable line
219#define LCD_E_PIN 1 //< pin for Enable line
220#endif
221*/
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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_ENABLE = no # Enable support for HD44780 based LCDs
34 33
35# Supported layouts 34# Supported layouts
36LAYOUTS = tkl_ansi tkl_iso 35LAYOUTS = 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 @@
211/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 211/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
212//#define MIDI_TONE_KEYCODE_OCTAVES 1 212//#define MIDI_TONE_KEYCODE_OCTAVES 1
213 213
214/*
215 * HD44780 LCD Display Configuration
216 */
217/*
218#define LCD_LINES 2 //< number of visible lines of the display
219#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
220
221#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
222
223#if LCD_IO_MODE
224#define LCD_PORT PORTB //< port for the LCD lines
225#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
226#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
227#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
228#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
229#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
230#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
231#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
232#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
233#define LCD_RS_PORT LCD_PORT //< port for RS line
234#define LCD_RS_PIN 3 //< pin for RS line
235#define LCD_RW_PORT LCD_PORT //< port for RW line
236#define LCD_RW_PIN 2 //< pin for RW line
237#define LCD_E_PORT LCD_PORT //< port for Enable line
238#define LCD_E_PIN 1 //< pin for Enable line
239#endif
240*/
241
242/* Bootmagic Lite key configuration */ 214/* Bootmagic Lite key configuration */
243// #define BOOTMAGIC_LITE_ROW 0 215// #define BOOTMAGIC_LITE_ROW 0
244// #define BOOTMAGIC_LITE_COLUMN 0 216// #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
25NKRO_ENABLE = no # USB Nkey Rollover 25NKRO_ENABLE = no # USB Nkey Rollover
26BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 26BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
27RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 27RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
28BLUETOOTH_ENABLE = no # Enable Bluetooth 28MIDI_ENABLE = no # MIDI support
29AUDIO_ENABLE = no # Audio output 29UNICODE_ENABLE = no # Unicode
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
30LTO_ENABLE = yes 33LTO_ENABLE = yes
31 34
32# custom matrix setup 35# 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 @@
1/* Copyright 2017 Jason Williams (Wilba) 1/* Copyright 2020 Harrison Chan (Xelus)
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -13,133 +13,5 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16#pragma once 16
17
18#include "config_common.h" 17#include "config_common.h"
19
20// USB Device descriptor parameter
21#define VENDOR_ID 0x5845 // XE
22#define PRODUCT_ID 0x0060 // Dawn60
23#define DEVICE_VER 0x0001
24#define MANUFACTURER Xelus
25#define PRODUCT Dawn60
26#define DESCRIPTION Dawn60
27
28// key matrix size
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 14
31
32//no underglow - prototype
33//#define MATRIX_ROW_PINS { B1, B3, B7, F6, F7 }
34//#define MATRIX_COL_PINS { B0, D5, B2, F5, D2, D3, D4, D6, D7, B4, B5, B6, C6, C7 }
35//#define UNUSED_PINS
36
37//underglow
38#define MATRIX_ROW_PINS { B1, B3, F1, F6, F7 }
39#define MATRIX_COL_PINS { B0, D5, B2, F5, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4 }
40#define UNUSED_PINS
41
42// IS31FL3731 driver
43#define DRIVER_COUNT 2
44#define DRIVER_LED_TOTAL 64
45
46// COL2ROW or ROW2COL
47#define DIODE_DIRECTION COL2ROW
48
49// Set 0 if debouncing isn't needed
50#define DEBOUNCE 5
51
52// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
53#define LOCKING_SUPPORT_ENABLE
54// Locking resynchronize hack
55#define LOCKING_RESYNC_ENABLE
56
57/*
58 * Feature disable options
59 * These options are also useful to firmware size reduction.
60 */
61
62// disable debug print
63//#define NO_DEBUG
64
65// disable print
66//#define NO_PRINT
67
68// disable action features
69//#define NO_ACTION_LAYER
70//#define NO_ACTION_TAPPING
71//#define NO_ACTION_ONESHOT
72//#define NO_ACTION_MACRO
73//#define NO_ACTION_FUNCTION
74
75#define RGB_BACKLIGHT_ENABLED 1
76
77// This conditionally compiles the backlight code for Dawn60 specifics
78#define RGB_BACKLIGHT_DAWN60
79
80//RGB Underglow defines
81#define RGB_DI_PIN F0
82#define WS2812_LED_TOTAL 20
83
84#define RGB_UNDERGLOW_ALPHA_TOP_START 0
85#define RGB_UNDERGLOW_ALPHA_TOP_END 6
86#define RGB_UNDERGLOW_ALPHA_BOT_START 12
87#define RGB_UNDERGLOW_ALPHA_BOT_END 15
88
89// enable/disable LEDs based on layout
90// switch between split backspace (1) or normal backspace(0)
91#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1
92// switch between Tsangan (1) or Arrows Bottom Row (0)
93#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
94// switch between standard split rshift (0) or arrows r shift (1)
95// .------------------. .-------------------.
96// | ? | Shift | Fn | vs | Shift | Up | Fn |
97// `------------------' `-------------------'
98#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1
99
100//not used
101#define RGB_BACKLIGHT_USE_ISO_ENTER 0
102#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
103#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
104
105// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
106#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
107
108// disable backlight after timeout in minutes, 0 = no timeout
109#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
110
111// the default brightness
112#define RGB_BACKLIGHT_BRIGHTNESS 255
113
114// the default effect (RGB test)
115#define RGB_BACKLIGHT_EFFECT 255
116
117// the default effect speed (0-3)
118#define RGB_BACKLIGHT_EFFECT_SPEED 0
119
120// the default color1 and color2
121#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
122#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
123
124// These define which keys in the matrix are alphas/mods
125// Used for backlight effects so colors are different for
126// alphas vs. mods
127// Each value is for a row, bit 0 is column 0
128// Alpha=0 Mod=1
129#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
130#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001
131#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
132#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
133#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011111000011111
134
135#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
136#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
137#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
138#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
139
140// Backlight config starts after VIA's EEPROM usage,
141// dynamic keymaps start after this.
142#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
143
144// VIA lighting is handled by the keyboard-level code
145#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 @@
1/* Copyright 2017 Jason Williams (Wilba) #include "dawn60.h"
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#ifndef RGB_BACKLIGHT_DAWN60
17#error RGB_BACKLIGHT_DAWN60 not defined, you done goofed somehao, brah
18#endif
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 @@
1/* Copyright 2017 Jason Williams (Wilba) 1/* Copyright 2020 Harrison Chan (Xelus)
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -16,21 +16,7 @@
16#pragma once 16#pragma once
17 17
18#include "quantum.h" 18#include "quantum.h"
19#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
20#include "via.h"
21 19
22#define XXX KC_NO 20#if defined(KEYBOARD_xelus_dawn60_rev1)
23 21 #include "rev1.h"
24#define LAYOUT_60_all( \ 22#endif
25 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
26 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
27 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
28 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B, K3C, K3D, \
29 K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
30) { \
31 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
32 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
33 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
34 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \
35 { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D } \
36}
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.
8 8
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make xelus/dawn60:default 11 make xelus/dawn60/rev1:default
12 12
13See 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 13See 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 @@
1/* Copyright 2020 Harrison Chan (Xelus)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18#include "config_common.h"
19
20// USB Device descriptor parameter
21#define VENDOR_ID 0x5845 // XE
22#define PRODUCT_ID 0x0060 // Dawn60
23#define DEVICE_VER 0x0001
24#define MANUFACTURER Xelus
25#define PRODUCT Dawn60
26// key matrix size
27#define MATRIX_ROWS 5
28#define MATRIX_COLS 14
29
30//no underglow - prototype
31//#define MATRIX_ROW_PINS { B1, B3, B7, F6, F7 }
32//#define MATRIX_COL_PINS { B0, D5, B2, F5, D2, D3, D4, D6, D7, B4, B5, B6, C6, C7 }
33//#define UNUSED_PINS
34
35//underglow
36#define MATRIX_ROW_PINS { B1, B3, F1, F6, F7 }
37#define MATRIX_COL_PINS { B0, D5, B2, F5, D3, D2, C7, C6, B6, B5, B4, D7, D6, D4 }
38#define UNUSED_PINS
39
40// IS31FL3731 driver
41#define DRIVER_COUNT 2
42#define DRIVER_LED_TOTAL 64
43
44// COL2ROW or ROW2COL
45#define DIODE_DIRECTION COL2ROW
46
47// Set 0 if debouncing isn't needed
48#define DEBOUNCE 5
49
50// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
51#define LOCKING_SUPPORT_ENABLE
52// Locking resynchronize hack
53#define LOCKING_RESYNC_ENABLE
54
55/*
56 * Feature disable options
57 * These options are also useful to firmware size reduction.
58 */
59
60// disable debug print
61//#define NO_DEBUG
62
63// disable print
64//#define NO_PRINT
65
66// disable action features
67//#define NO_ACTION_LAYER
68//#define NO_ACTION_TAPPING
69//#define NO_ACTION_ONESHOT
70//#define NO_ACTION_MACRO
71//#define NO_ACTION_FUNCTION
72
73#define RGB_BACKLIGHT_ENABLED 1
74
75// This conditionally compiles the backlight code for Dawn60 specifics
76#define RGB_BACKLIGHT_DAWN60
77
78//RGB Underglow defines
79#define RGB_DI_PIN F0
80#define WS2812_LED_TOTAL 20
81
82#define RGB_UNDERGLOW_ALPHA_TOP_START 0
83#define RGB_UNDERGLOW_ALPHA_TOP_END 6
84#define RGB_UNDERGLOW_ALPHA_BOT_START 12
85#define RGB_UNDERGLOW_ALPHA_BOT_END 15
86
87// enable/disable LEDs based on layout
88// switch between split backspace (1) or normal backspace(0)
89#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1
90// switch between Tsangan (1) or Arrows Bottom Row (0)
91#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0
92// switch between standard split rshift (0) or arrows r shift (1)
93// .------------------. .-------------------.
94// | ? | Shift | Fn | vs | Shift | Up | Fn |
95// `------------------' `-------------------'
96#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1
97
98//not used
99#define RGB_BACKLIGHT_USE_ISO_ENTER 0
100#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
101#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
102
103// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
104#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
105
106// disable backlight after timeout in minutes, 0 = no timeout
107#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
108
109// the default brightness
110#define RGB_BACKLIGHT_BRIGHTNESS 255
111
112// the default effect (RGB test)
113#define RGB_BACKLIGHT_EFFECT 255
114
115// the default effect speed (0-3)
116#define RGB_BACKLIGHT_EFFECT_SPEED 0
117
118// the default color1 and color2
119#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
120#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
121
122// These define which keys in the matrix are alphas/mods
123// Used for backlight effects so colors are different for
124// alphas vs. mods
125// Each value is for a row, bit 0 is column 0
126// Alpha=0 Mod=1
127#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
128#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001
129#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
130#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001
131#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011111000011111
132
133#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
134#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
135#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
136#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
137
138// Backlight config starts after VIA's EEPROM usage,
139// dynamic keymaps start after this.
140#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 31
141
142// VIA lighting is handled by the keyboard-level code
143#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 @@
1/* Copyright 2018 Alex Peters 1/* Copyright 2020 Harrison Chan (Xelus)
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -13,12 +13,6 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16#ifndef RGB_BACKLIGHT_DAWN60
17#ifndef CONFIG_USER_H 17#error RGB_BACKLIGHT_DAWN60 not defined, you done goofed somehao, brah
18#define CONFIG_USER_H
19
20#include "config_common.h"
21
22// place overrides here
23
24#endif 18#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 @@
1/* Copyright 2020 Harrison Chan (Xelus)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18#include "quantum.h"
19#include "keyboards/wilba_tech/wt_rgb_backlight_keycodes.h"
20#include "via.h"
21
22#define XXX KC_NO
23
24#define LAYOUT_60_all( \
25 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
26 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
27 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
28 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3B, K3C, K3D, \
29 K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
30) { \
31 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
32 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
33 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
34 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, XXX, K3B, K3C, K3D }, \
35 { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D } \
36}
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.
8 8
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make xelus/valor:default 11 make xelus/valor/rev1:default
12 12
13See 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). 13See 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 @@
16 16
17// Nothing to see here, move along... ;-) 17// Nothing to see here, move along... ;-)
18 18
19#include "valor.h" \ No newline at end of file 19#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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17/**
18 * @file rt/templates/chconf.h
19 * @brief Configuration file template.
20 * @details A copy of this file must be placed in each project directory, it
21 * contains the application specific kernel settings.
22 *
23 * @addtogroup config
24 * @details Kernel related settings and hooks.
25 * @{
26 */
27
28#ifndef CHCONF_H
29#define CHCONF_H
30
31#define _CHIBIOS_RT_CONF_
32#define _CHIBIOS_RT_CONF_VER_6_0_
33
34/*===========================================================================*/
35/**
36 * @name System timers settings
37 * @{
38 */
39/*===========================================================================*/
40
41/**
42 * @brief System time counter resolution.
43 * @note Allowed values are 16 or 32 bits.
44 */
45#if !defined(CH_CFG_ST_RESOLUTION)
46#define CH_CFG_ST_RESOLUTION 32
47#endif
48
49/**
50 * @brief System tick frequency.
51 * @details Frequency of the system timer that drives the system ticks. This
52 * setting also defines the system tick time unit.
53 */
54#if !defined(CH_CFG_ST_FREQUENCY)
55#define CH_CFG_ST_FREQUENCY 10000
56#endif
57
58/**
59 * @brief Time intervals data size.
60 * @note Allowed values are 16, 32 or 64 bits.
61 */
62#if !defined(CH_CFG_INTERVALS_SIZE)
63#define CH_CFG_INTERVALS_SIZE 32
64#endif
65
66/**
67 * @brief Time types data size.
68 * @note Allowed values are 16 or 32 bits.
69 */
70#if !defined(CH_CFG_TIME_TYPES_SIZE)
71#define CH_CFG_TIME_TYPES_SIZE 32
72#endif
73
74/**
75 * @brief Time delta constant for the tick-less mode.
76 * @note If this value is zero then the system uses the classic
77 * periodic tick. This value represents the minimum number
78 * of ticks that is safe to specify in a timeout directive.
79 * The value one is not valid, timeouts are rounded up to
80 * this value.
81 */
82#if !defined(CH_CFG_ST_TIMEDELTA)
83#define CH_CFG_ST_TIMEDELTA 2
84#endif
85
86/** @} */
87
88/*===========================================================================*/
89/**
90 * @name Kernel parameters and options
91 * @{
92 */
93/*===========================================================================*/
94
95/**
96 * @brief Round robin interval.
97 * @details This constant is the number of system ticks allowed for the
98 * threads before preemption occurs. Setting this value to zero
99 * disables the preemption for threads with equal priority and the
100 * round robin becomes cooperative. Note that higher priority
101 * threads can still preempt, the kernel is always preemptive.
102 * @note Disabling the round robin preemption makes the kernel more compact
103 * and generally faster.
104 * @note The round robin preemption is not supported in tickless mode and
105 * must be set to zero in that case.
106 */
107#if !defined(CH_CFG_TIME_QUANTUM)
108#define CH_CFG_TIME_QUANTUM 0
109#endif
110
111/**
112 * @brief Managed RAM size.
113 * @details Size of the RAM area to be managed by the OS. If set to zero
114 * then the whole available RAM is used. The core memory is made
115 * available to the heap allocator and/or can be used directly through
116 * the simplified core memory allocator.
117 *
118 * @note In order to let the OS manage the whole RAM the linker script must
119 * provide the @p __heap_base__ and @p __heap_end__ symbols.
120 * @note Requires @p CH_CFG_USE_MEMCORE.
121 */
122#if !defined(CH_CFG_MEMCORE_SIZE)
123#define CH_CFG_MEMCORE_SIZE 0
124#endif
125
126/**
127 * @brief Idle thread automatic spawn suppression.
128 * @details When this option is activated the function @p chSysInit()
129 * does not spawn the idle thread. The application @p main()
130 * function becomes the idle thread and must implement an
131 * infinite loop.
132 */
133#if !defined(CH_CFG_NO_IDLE_THREAD)
134#define CH_CFG_NO_IDLE_THREAD FALSE
135#endif
136
137/** @} */
138
139/*===========================================================================*/
140/**
141 * @name Performance options
142 * @{
143 */
144/*===========================================================================*/
145
146/**
147 * @brief OS optimization.
148 * @details If enabled then time efficient rather than space efficient code
149 * is used when two possible implementations exist.
150 *
151 * @note This is not related to the compiler optimization options.
152 * @note The default is @p TRUE.
153 */
154#if !defined(CH_CFG_OPTIMIZE_SPEED)
155#define CH_CFG_OPTIMIZE_SPEED FALSE
156#endif
157
158/** @} */
159
160/*===========================================================================*/
161/**
162 * @name Subsystem options
163 * @{
164 */
165/*===========================================================================*/
166
167/**
168 * @brief Time Measurement APIs.
169 * @details If enabled then the time measurement APIs are included in
170 * the kernel.
171 *
172 * @note The default is @p TRUE.
173 */
174#if !defined(CH_CFG_USE_TM)
175#define CH_CFG_USE_TM FALSE
176#endif
177
178/**
179 * @brief Threads registry APIs.
180 * @details If enabled then the registry APIs are included in the kernel.
181 *
182 * @note The default is @p TRUE.
183 */
184#if !defined(CH_CFG_USE_REGISTRY)
185#define CH_CFG_USE_REGISTRY TRUE
186#endif
187
188/**
189 * @brief Threads synchronization APIs.
190 * @details If enabled then the @p chThdWait() function is included in
191 * the kernel.
192 *
193 * @note The default is @p TRUE.
194 */
195#if !defined(CH_CFG_USE_WAITEXIT)
196#define CH_CFG_USE_WAITEXIT TRUE
197#endif
198
199/**
200 * @brief Semaphores APIs.
201 * @details If enabled then the Semaphores APIs are included in the kernel.
202 *
203 * @note The default is @p TRUE.
204 */
205#if !defined(CH_CFG_USE_SEMAPHORES)
206#define CH_CFG_USE_SEMAPHORES TRUE
207#endif
208
209/**
210 * @brief Semaphores queuing mode.
211 * @details If enabled then the threads are enqueued on semaphores by
212 * priority rather than in FIFO order.
213 *
214 * @note The default is @p FALSE. Enable this if you have special
215 * requirements.
216 * @note Requires @p CH_CFG_USE_SEMAPHORES.
217 */
218#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
219#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
220#endif
221
222/**
223 * @brief Mutexes APIs.
224 * @details If enabled then the mutexes APIs are included in the kernel.
225 *
226 * @note The default is @p TRUE.
227 */
228#if !defined(CH_CFG_USE_MUTEXES)
229#define CH_CFG_USE_MUTEXES TRUE
230#endif
231
232/**
233 * @brief Enables recursive behavior on mutexes.
234 * @note Recursive mutexes are heavier and have an increased
235 * memory footprint.
236 *
237 * @note The default is @p FALSE.
238 * @note Requires @p CH_CFG_USE_MUTEXES.
239 */
240#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
241#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
242#endif
243
244/**
245 * @brief Conditional Variables APIs.
246 * @details If enabled then the conditional variables APIs are included
247 * in the kernel.
248 *
249 * @note The default is @p TRUE.
250 * @note Requires @p CH_CFG_USE_MUTEXES.
251 */
252#if !defined(CH_CFG_USE_CONDVARS)
253#define CH_CFG_USE_CONDVARS TRUE
254#endif
255
256/**
257 * @brief Conditional Variables APIs with timeout.
258 * @details If enabled then the conditional variables APIs with timeout
259 * specification are included in the kernel.
260 *
261 * @note The default is @p TRUE.
262 * @note Requires @p CH_CFG_USE_CONDVARS.
263 */
264#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
265#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
266#endif
267
268/**
269 * @brief Events Flags APIs.
270 * @details If enabled then the event flags APIs are included in the kernel.
271 *
272 * @note The default is @p TRUE.
273 */
274#if !defined(CH_CFG_USE_EVENTS)
275#define CH_CFG_USE_EVENTS TRUE
276#endif
277
278/**
279 * @brief Events Flags APIs with timeout.
280 * @details If enabled then the events APIs with timeout specification
281 * are included in the kernel.
282 *
283 * @note The default is @p TRUE.
284 * @note Requires @p CH_CFG_USE_EVENTS.
285 */
286#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
287#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
288#endif
289
290/**
291 * @brief Synchronous Messages APIs.
292 * @details If enabled then the synchronous messages APIs are included
293 * in the kernel.
294 *
295 * @note The default is @p TRUE.
296 */
297#if !defined(CH_CFG_USE_MESSAGES)
298#define CH_CFG_USE_MESSAGES TRUE
299#endif
300
301/**
302 * @brief Synchronous Messages queuing mode.
303 * @details If enabled then messages are served by priority rather than in
304 * FIFO order.
305 *
306 * @note The default is @p FALSE. Enable this if you have special
307 * requirements.
308 * @note Requires @p CH_CFG_USE_MESSAGES.
309 */
310#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
311#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
312#endif
313
314/**
315 * @brief Mailboxes APIs.
316 * @details If enabled then the asynchronous messages (mailboxes) APIs are
317 * included in the kernel.
318 *
319 * @note The default is @p TRUE.
320 * @note Requires @p CH_CFG_USE_SEMAPHORES.
321 */
322#if !defined(CH_CFG_USE_MAILBOXES)
323#define CH_CFG_USE_MAILBOXES TRUE
324#endif
325
326/**
327 * @brief Core Memory Manager APIs.
328 * @details If enabled then the core memory manager APIs are included
329 * in the kernel.
330 *
331 * @note The default is @p TRUE.
332 */
333#if !defined(CH_CFG_USE_MEMCORE)
334#define CH_CFG_USE_MEMCORE TRUE
335#endif
336
337/**
338 * @brief Heap Allocator APIs.
339 * @details If enabled then the memory heap allocator APIs are included
340 * in the kernel.
341 *
342 * @note The default is @p TRUE.
343 * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
344 * @p CH_CFG_USE_SEMAPHORES.
345 * @note Mutexes are recommended.
346 */
347#if !defined(CH_CFG_USE_HEAP)
348#define CH_CFG_USE_HEAP FALSE
349#endif
350
351/**
352 * @brief Memory Pools Allocator APIs.
353 * @details If enabled then the memory pools allocator APIs are included
354 * in the kernel.
355 *
356 * @note The default is @p TRUE.
357 */
358#if !defined(CH_CFG_USE_MEMPOOLS)
359#define CH_CFG_USE_MEMPOOLS FALSE
360#endif
361
362/**
363 * @brief Objects FIFOs APIs.
364 * @details If enabled then the objects FIFOs APIs are included
365 * in the kernel.
366 *
367 * @note The default is @p TRUE.
368 */
369#if !defined(CH_CFG_USE_OBJ_FIFOS)
370#define CH_CFG_USE_OBJ_FIFOS FALSE
371#endif
372
373/**
374 * @brief Pipes APIs.
375 * @details If enabled then the pipes APIs are included
376 * in the kernel.
377 *
378 * @note The default is @p TRUE.
379 */
380#if !defined(CH_CFG_USE_PIPES)
381#define CH_CFG_USE_PIPES FALSE
382#endif
383
384/**
385 * @brief Dynamic Threads APIs.
386 * @details If enabled then the dynamic threads creation APIs are included
387 * in the kernel.
388 *
389 * @note The default is @p TRUE.
390 * @note Requires @p CH_CFG_USE_WAITEXIT.
391 * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
392 */
393#if !defined(CH_CFG_USE_DYNAMIC)
394#define CH_CFG_USE_DYNAMIC FALSE
395#endif
396
397/** @} */
398
399/*===========================================================================*/
400/**
401 * @name Objects factory options
402 * @{
403 */
404/*===========================================================================*/
405
406/**
407 * @brief Objects Factory APIs.
408 * @details If enabled then the objects factory APIs are included in the
409 * kernel.
410 *
411 * @note The default is @p FALSE.
412 */
413#if !defined(CH_CFG_USE_FACTORY)
414#define CH_CFG_USE_FACTORY FALSE
415#endif
416
417/**
418 * @brief Maximum length for object names.
419 * @details If the specified length is zero then the name is stored by
420 * pointer but this could have unintended side effects.
421 */
422#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH)
423#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8
424#endif
425
426/**
427 * @brief Enables the registry of generic objects.
428 */
429#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY)
430#define CH_CFG_FACTORY_OBJECTS_REGISTRY FALSE
431#endif
432
433/**
434 * @brief Enables factory for generic buffers.
435 */
436#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS)
437#define CH_CFG_FACTORY_GENERIC_BUFFERS FALSE
438#endif
439
440/**
441 * @brief Enables factory for semaphores.
442 */
443#if !defined(CH_CFG_FACTORY_SEMAPHORES)
444#define CH_CFG_FACTORY_SEMAPHORES FALSE
445#endif
446
447/**
448 * @brief Enables factory for mailboxes.
449 */
450#if !defined(CH_CFG_FACTORY_MAILBOXES)
451#define CH_CFG_FACTORY_MAILBOXES FALSE
452#endif
453
454/**
455 * @brief Enables factory for objects FIFOs.
456 */
457#if !defined(CH_CFG_FACTORY_OBJ_FIFOS)
458#define CH_CFG_FACTORY_OBJ_FIFOS FALSE
459#endif
460
461/**
462 * @brief Enables factory for Pipes.
463 */
464#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__)
465#define CH_CFG_FACTORY_PIPES FALSE
466#endif
467
468/** @} */
469
470/*===========================================================================*/
471/**
472 * @name Debug options
473 * @{
474 */
475/*===========================================================================*/
476
477/**
478 * @brief Debug option, kernel statistics.
479 *
480 * @note The default is @p FALSE.
481 */
482#if !defined(CH_DBG_STATISTICS)
483#define CH_DBG_STATISTICS FALSE
484#endif
485
486/**
487 * @brief Debug option, system state check.
488 * @details If enabled the correct call protocol for system APIs is checked
489 * at runtime.
490 *
491 * @note The default is @p FALSE.
492 */
493#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
494#define CH_DBG_SYSTEM_STATE_CHECK FALSE
495#endif
496
497/**
498 * @brief Debug option, parameters checks.
499 * @details If enabled then the checks on the API functions input
500 * parameters are activated.
501 *
502 * @note The default is @p FALSE.
503 */
504#if !defined(CH_DBG_ENABLE_CHECKS)
505#define CH_DBG_ENABLE_CHECKS FALSE
506#endif
507
508/**
509 * @brief Debug option, consistency checks.
510 * @details If enabled then all the assertions in the kernel code are
511 * activated. This includes consistency checks inside the kernel,
512 * runtime anomalies and port-defined checks.
513 *
514 * @note The default is @p FALSE.
515 */
516#if !defined(CH_DBG_ENABLE_ASSERTS)
517#define CH_DBG_ENABLE_ASSERTS FALSE
518#endif
519
520/**
521 * @brief Debug option, trace buffer.
522 * @details If enabled then the trace buffer is activated.
523 *
524 * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
525 */
526#if !defined(CH_DBG_TRACE_MASK)
527#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
528#endif
529
530/**
531 * @brief Trace buffer entries.
532 * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
533 * different from @p CH_DBG_TRACE_MASK_DISABLED.
534 */
535#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
536#define CH_DBG_TRACE_BUFFER_SIZE 128
537#endif
538
539/**
540 * @brief Debug option, stack checks.
541 * @details If enabled then a runtime stack check is performed.
542 *
543 * @note The default is @p FALSE.
544 * @note The stack check is performed in a architecture/port dependent way.
545 * It may not be implemented or some ports.
546 * @note The default failure mode is to halt the system with the global
547 * @p panic_msg variable set to @p NULL.
548 */
549#if !defined(CH_DBG_ENABLE_STACK_CHECK)
550#define CH_DBG_ENABLE_STACK_CHECK FALSE
551#endif
552
553/**
554 * @brief Debug option, stacks initialization.
555 * @details If enabled then the threads working area is filled with a byte
556 * value when a thread is created. This can be useful for the
557 * runtime measurement of the used stack.
558 *
559 * @note The default is @p FALSE.
560 */
561#if !defined(CH_DBG_FILL_THREADS)
562#define CH_DBG_FILL_THREADS FALSE
563#endif
564
565/**
566 * @brief Debug option, threads profiling.
567 * @details If enabled then a field is added to the @p thread_t structure that
568 * counts the system ticks occurred while executing the thread.
569 *
570 * @note The default is @p FALSE.
571 * @note This debug option is not currently compatible with the
572 * tickless mode.
573 */
574#if !defined(CH_DBG_THREADS_PROFILING)
575#define CH_DBG_THREADS_PROFILING FALSE
576#endif
577
578/** @} */
579
580/*===========================================================================*/
581/**
582 * @name Kernel hooks
583 * @{
584 */
585/*===========================================================================*/
586
587/**
588 * @brief System structure extension.
589 * @details User fields added to the end of the @p ch_system_t structure.
590 */
591#define CH_CFG_SYSTEM_EXTRA_FIELDS \
592 /* Add threads custom fields here.*/
593
594/**
595 * @brief System initialization hook.
596 * @details User initialization code added to the @p chSysInit() function
597 * just before interrupts are enabled globally.
598 */
599#define CH_CFG_SYSTEM_INIT_HOOK() { \
600 /* Add threads initialization code here.*/ \
601}
602
603/**
604 * @brief Threads descriptor structure extension.
605 * @details User fields added to the end of the @p thread_t structure.
606 */
607#define CH_CFG_THREAD_EXTRA_FIELDS \
608 /* Add threads custom fields here.*/
609
610/**
611 * @brief Threads initialization hook.
612 * @details User initialization code added to the @p _thread_init() function.
613 *
614 * @note It is invoked from within @p _thread_init() and implicitly from all
615 * the threads creation APIs.
616 */
617#define CH_CFG_THREAD_INIT_HOOK(tp) { \
618 /* Add threads initialization code here.*/ \
619}
620
621/**
622 * @brief Threads finalization hook.
623 * @details User finalization code added to the @p chThdExit() API.
624 */
625#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
626 /* Add threads finalization code here.*/ \
627}
628
629/**
630 * @brief Context switch hook.
631 * @details This hook is invoked just before switching between threads.
632 */
633#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
634 /* Context switch code here.*/ \
635}
636
637/**
638 * @brief ISR enter hook.
639 */
640#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
641 /* IRQ prologue code here.*/ \
642}
643
644/**
645 * @brief ISR exit hook.
646 */
647#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
648 /* IRQ epilogue code here.*/ \
649}
650
651/**
652 * @brief Idle thread enter hook.
653 * @note This hook is invoked within a critical zone, no OS functions
654 * should be invoked from here.
655 * @note This macro can be used to activate a power saving mode.
656 */
657#define CH_CFG_IDLE_ENTER_HOOK() { \
658 /* Idle-enter code here.*/ \
659}
660
661/**
662 * @brief Idle thread leave hook.
663 * @note This hook is invoked within a critical zone, no OS functions
664 * should be invoked from here.
665 * @note This macro can be used to deactivate a power saving mode.
666 */
667#define CH_CFG_IDLE_LEAVE_HOOK() { \
668 /* Idle-leave code here.*/ \
669}
670
671/**
672 * @brief Idle Loop hook.
673 * @details This hook is continuously invoked by the idle thread loop.
674 */
675#define CH_CFG_IDLE_LOOP_HOOK() { \
676 /* Idle loop code here.*/ \
677}
678
679/**
680 * @brief System tick event hook.
681 * @details This hook is invoked in the system tick handler immediately
682 * after processing the virtual timers queue.
683 */
684#define CH_CFG_SYSTEM_TICK_HOOK() { \
685 /* System tick event code here.*/ \
686}
687
688/**
689 * @brief System halt hook.
690 * @details This hook is invoked in case to a system halting error before
691 * the system is halted.
692 */
693#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
694 /* System halt code here.*/ \
695}
696
697/**
698 * @brief Trace hook.
699 * @details This hook is invoked each time a new record is written in the
700 * trace buffer.
701 */
702#define CH_CFG_TRACE_HOOK(tep) { \
703 /* Trace code here.*/ \
704}
705
706/** @} */
707
708/*===========================================================================*/
709/* Port-specific settings (override port settings defaulted in chcore.h). */
710/*===========================================================================*/
711
712#endif /* CHCONF_H */
713
714/** @} */
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 @@
1/* Copyright 2020 Harrison Chan (Xelus)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x5845 // "XE"
23#define PRODUCT_ID 0x4654 // "FT"
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Xelus
26#define PRODUCT Xelus Valor FRL TKL
27
28/* key matrix size */
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 17
31
32/* key matrix pins */
33#define MATRIX_ROW_PINS { A15, A14, A1, B3, B4 }
34#define MATRIX_COL_PINS { A9, A8, B15, B14, B13, B12, A0, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3 }
35#define UNUSED_PINS
36
37/* COL2ROW or ROW2COL */
38#define DIODE_DIRECTION COL2ROW
39
40/* Set 0 if debouncing isn't needed */
41#define DEBOUNCE 5
42
43/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
44#define LOCKING_SUPPORT_ENABLE
45
46/* Locking resynchronize hack */
47#define LOCKING_RESYNC_ENABLE
48
49// I2C OLED defines
50#define I2C1_SCL 8
51#define I2C1_SDA 9
52
53#define I2C1_SCL_PAL_MODE 1
54#define I2C1_SDA_PAL_MODE 1
55
56#define I2C1_TIMINGR_PRESC 0U
57#define I2C1_TIMINGR_SCLDEL 3U
58#define I2C1_TIMINGR_SDADEL 1U
59#define I2C1_TIMINGR_SCLH 3U
60#define I2C1_TIMINGR_SCLL 9U
61
62// I2C EEPROM
63#define EEPROM_I2C_CAT24C512
64
65// Dynamic EEPROM
66#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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17/**
18 * @file templates/halconf.h
19 * @brief HAL configuration header.
20 * @details HAL configuration file, this file allows to enable or disable the
21 * various device drivers from your application. You may also use
22 * this file in order to override the device drivers default settings.
23 *
24 * @addtogroup HAL_CONF
25 * @{
26 */
27
28#ifndef HALCONF_H
29#define HALCONF_H
30
31#define _CHIBIOS_HAL_CONF_
32#define _CHIBIOS_HAL_CONF_VER_7_0_
33
34#include "mcuconf.h"
35
36/**
37 * @brief Enables the PAL subsystem.
38 */
39#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
40#define HAL_USE_PAL TRUE
41#endif
42
43/**
44 * @brief Enables the ADC subsystem.
45 */
46#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
47#define HAL_USE_ADC FALSE
48#endif
49
50/**
51 * @brief Enables the CAN subsystem.
52 */
53#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
54#define HAL_USE_CAN FALSE
55#endif
56
57/**
58 * @brief Enables the cryptographic subsystem.
59 */
60#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__)
61#define HAL_USE_CRY FALSE
62#endif
63
64/**
65 * @brief Enables the DAC subsystem.
66 */
67#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
68#define HAL_USE_DAC FALSE
69#endif
70
71/**
72 * @brief Enables the GPT subsystem.
73 */
74#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
75#define HAL_USE_GPT FALSE
76#endif
77
78/**
79 * @brief Enables the I2C subsystem.
80 */
81#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
82#define HAL_USE_I2C TRUE
83#endif
84
85/**
86 * @brief Enables the I2S subsystem.
87 */
88#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
89#define HAL_USE_I2S FALSE
90#endif
91
92/**
93 * @brief Enables the ICU subsystem.
94 */
95#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
96#define HAL_USE_ICU FALSE
97#endif
98
99/**
100 * @brief Enables the MAC subsystem.
101 */
102#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
103#define HAL_USE_MAC FALSE
104#endif
105
106/**
107 * @brief Enables the MMC_SPI subsystem.
108 */
109#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
110#define HAL_USE_MMC_SPI FALSE
111#endif
112
113/**
114 * @brief Enables the PWM subsystem.
115 */
116#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
117#define HAL_USE_PWM FALSE
118#endif
119
120/**
121 * @brief Enables the RTC subsystem.
122 */
123#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
124#define HAL_USE_RTC FALSE
125#endif
126
127/**
128 * @brief Enables the SDC subsystem.
129 */
130#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
131#define HAL_USE_SDC FALSE
132#endif
133
134/**
135 * @brief Enables the SERIAL subsystem.
136 */
137#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
138#define HAL_USE_SERIAL FALSE
139#endif
140
141/**
142 * @brief Enables the SERIAL over USB subsystem.
143 */
144#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
145#define HAL_USE_SERIAL_USB FALSE
146#endif
147
148/**
149 * @brief Enables the SIO subsystem.
150 */
151#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__)
152#define HAL_USE_SIO FALSE
153#endif
154
155/**
156 * @brief Enables the SPI subsystem.
157 */
158#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
159#define HAL_USE_SPI FALSE
160#endif
161
162/**
163 * @brief Enables the TRNG subsystem.
164 */
165#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__)
166#define HAL_USE_TRNG FALSE
167#endif
168
169/**
170 * @brief Enables the UART subsystem.
171 */
172#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
173#define HAL_USE_UART FALSE
174#endif
175
176/**
177 * @brief Enables the USB subsystem.
178 */
179#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
180#define HAL_USE_USB TRUE
181#endif
182
183/**
184 * @brief Enables the WDG subsystem.
185 */
186#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
187#define HAL_USE_WDG FALSE
188#endif
189
190/**
191 * @brief Enables the WSPI subsystem.
192 */
193#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__)
194#define HAL_USE_WSPI FALSE
195#endif
196
197/*===========================================================================*/
198/* PAL driver related settings. */
199/*===========================================================================*/
200
201/**
202 * @brief Enables synchronous APIs.
203 * @note Disabling this option saves both code and data space.
204 */
205#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__)
206#define PAL_USE_CALLBACKS FALSE
207#endif
208
209/**
210 * @brief Enables synchronous APIs.
211 * @note Disabling this option saves both code and data space.
212 */
213#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__)
214#define PAL_USE_WAIT FALSE
215#endif
216
217/*===========================================================================*/
218/* ADC driver related settings. */
219/*===========================================================================*/
220
221/**
222 * @brief Enables synchronous APIs.
223 * @note Disabling this option saves both code and data space.
224 */
225#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
226#define ADC_USE_WAIT TRUE
227#endif
228
229/**
230 * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
231 * @note Disabling this option saves both code and data space.
232 */
233#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
234#define ADC_USE_MUTUAL_EXCLUSION TRUE
235#endif
236
237/*===========================================================================*/
238/* CAN driver related settings. */
239/*===========================================================================*/
240
241/**
242 * @brief Sleep mode related APIs inclusion switch.
243 */
244#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
245#define CAN_USE_SLEEP_MODE TRUE
246#endif
247
248/**
249 * @brief Enforces the driver to use direct callbacks rather than OSAL events.
250 */
251#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__)
252#define CAN_ENFORCE_USE_CALLBACKS FALSE
253#endif
254
255/*===========================================================================*/
256/* CRY driver related settings. */
257/*===========================================================================*/
258
259/**
260 * @brief Enables the SW fall-back of the cryptographic driver.
261 * @details When enabled, this option, activates a fall-back software
262 * implementation for algorithms not supported by the underlying
263 * hardware.
264 * @note Fall-back implementations may not be present for all algorithms.
265 */
266#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__)
267#define HAL_CRY_USE_FALLBACK FALSE
268#endif
269
270/**
271 * @brief Makes the driver forcibly use the fall-back implementations.
272 */
273#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__)
274#define HAL_CRY_ENFORCE_FALLBACK FALSE
275#endif
276
277/*===========================================================================*/
278/* DAC driver related settings. */
279/*===========================================================================*/
280
281/**
282 * @brief Enables synchronous APIs.
283 * @note Disabling this option saves both code and data space.
284 */
285#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__)
286#define DAC_USE_WAIT TRUE
287#endif
288
289/**
290 * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs.
291 * @note Disabling this option saves both code and data space.
292 */
293#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
294#define DAC_USE_MUTUAL_EXCLUSION TRUE
295#endif
296
297/*===========================================================================*/
298/* I2C driver related settings. */
299/*===========================================================================*/
300
301/**
302 * @brief Enables the mutual exclusion APIs on the I2C bus.
303 */
304#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
305#define I2C_USE_MUTUAL_EXCLUSION TRUE
306#endif
307
308/*===========================================================================*/
309/* MAC driver related settings. */
310/*===========================================================================*/
311
312/**
313 * @brief Enables the zero-copy API.
314 */
315#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
316#define MAC_USE_ZERO_COPY FALSE
317#endif
318
319/**
320 * @brief Enables an event sources for incoming packets.
321 */
322#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
323#define MAC_USE_EVENTS TRUE
324#endif
325
326/*===========================================================================*/
327/* MMC_SPI driver related settings. */
328/*===========================================================================*/
329
330/**
331 * @brief Delays insertions.
332 * @details If enabled this options inserts delays into the MMC waiting
333 * routines releasing some extra CPU time for the threads with
334 * lower priority, this may slow down the driver a bit however.
335 * This option is recommended also if the SPI driver does not
336 * use a DMA channel and heavily loads the CPU.
337 */
338#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
339#define MMC_NICE_WAITING TRUE
340#endif
341
342/*===========================================================================*/
343/* SDC driver related settings. */
344/*===========================================================================*/
345
346/**
347 * @brief Number of initialization attempts before rejecting the card.
348 * @note Attempts are performed at 10mS intervals.
349 */
350#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
351#define SDC_INIT_RETRY 100
352#endif
353
354/**
355 * @brief Include support for MMC cards.
356 * @note MMC support is not yet implemented so this option must be kept
357 * at @p FALSE.
358 */
359#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
360#define SDC_MMC_SUPPORT FALSE
361#endif
362
363/**
364 * @brief Delays insertions.
365 * @details If enabled this options inserts delays into the MMC waiting
366 * routines releasing some extra CPU time for the threads with
367 * lower priority, this may slow down the driver a bit however.
368 */
369#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
370#define SDC_NICE_WAITING TRUE
371#endif
372
373/**
374 * @brief OCR initialization constant for V20 cards.
375 */
376#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__)
377#define SDC_INIT_OCR_V20 0x50FF8000U
378#endif
379
380/**
381 * @brief OCR initialization constant for non-V20 cards.
382 */
383#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__)
384#define SDC_INIT_OCR 0x80100000U
385#endif
386
387/*===========================================================================*/
388/* SERIAL driver related settings. */
389/*===========================================================================*/
390
391/**
392 * @brief Default bit rate.
393 * @details Configuration parameter, this is the baud rate selected for the
394 * default configuration.
395 */
396#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
397#define SERIAL_DEFAULT_BITRATE 38400
398#endif
399
400/**
401 * @brief Serial buffers size.
402 * @details Configuration parameter, you can change the depth of the queue
403 * buffers depending on the requirements of your application.
404 * @note The default is 16 bytes for both the transmission and receive
405 * buffers.
406 */
407#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
408#define SERIAL_BUFFERS_SIZE 16
409#endif
410
411/*===========================================================================*/
412/* SERIAL_USB driver related setting. */
413/*===========================================================================*/
414
415/**
416 * @brief Serial over USB buffers size.
417 * @details Configuration parameter, the buffer size must be a multiple of
418 * the USB data endpoint maximum packet size.
419 * @note The default is 256 bytes for both the transmission and receive
420 * buffers.
421 */
422#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
423#define SERIAL_USB_BUFFERS_SIZE 1
424#endif
425
426/**
427 * @brief Serial over USB number of buffers.
428 * @note The default is 2 buffers.
429 */
430#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
431#define SERIAL_USB_BUFFERS_NUMBER 2
432#endif
433
434/*===========================================================================*/
435/* SPI driver related settings. */
436/*===========================================================================*/
437
438/**
439 * @brief Enables synchronous APIs.
440 * @note Disabling this option saves both code and data space.
441 */
442#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
443#define SPI_USE_WAIT TRUE
444#endif
445
446/**
447 * @brief Enables circular transfers APIs.
448 * @note Disabling this option saves both code and data space.
449 */
450#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__)
451#define SPI_USE_CIRCULAR FALSE
452#endif
453
454
455/**
456 * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
457 * @note Disabling this option saves both code and data space.
458 */
459#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
460#define SPI_USE_MUTUAL_EXCLUSION TRUE
461#endif
462
463/**
464 * @brief Handling method for SPI CS line.
465 * @note Disabling this option saves both code and data space.
466 */
467#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__)
468#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
469#endif
470
471/*===========================================================================*/
472/* UART driver related settings. */
473/*===========================================================================*/
474
475/**
476 * @brief Enables synchronous APIs.
477 * @note Disabling this option saves both code and data space.
478 */
479#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
480#define UART_USE_WAIT FALSE
481#endif
482
483/**
484 * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
485 * @note Disabling this option saves both code and data space.
486 */
487#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
488#define UART_USE_MUTUAL_EXCLUSION FALSE
489#endif
490
491/*===========================================================================*/
492/* USB driver related settings. */
493/*===========================================================================*/
494
495/**
496 * @brief Enables synchronous APIs.
497 * @note Disabling this option saves both code and data space.
498 */
499#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
500#define USB_USE_WAIT TRUE
501#endif
502
503/*===========================================================================*/
504/* WSPI driver related settings. */
505/*===========================================================================*/
506
507/**
508 * @brief Enables synchronous APIs.
509 * @note Disabling this option saves both code and data space.
510 */
511#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__)
512#define WSPI_USE_WAIT TRUE
513#endif
514
515/**
516 * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs.
517 * @note Disabling this option saves both code and data space.
518 */
519#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
520#define WSPI_USE_MUTUAL_EXCLUSION TRUE
521#endif
522
523#endif /* HALCONF_H */
524
525/** @} */
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 @@
1/* Copyright 2017 Benjamin Kesselring 1/* Copyright 2020 Harrison Chan (Xelus)
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
@@ -13,7 +13,7 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16
17#pragma once 16#pragma once
18 17
19// place overrides here 18#define USB_POLLING_INTERVAL_MS 1
19#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 @@
1/* Copyright 2020 Harrison Chan (Xelus)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_all(
20 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,
21 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,
22 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,
23 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,
24 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
25 ),
26
27 [1] = LAYOUT_all(
28 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,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
33 )
34};
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 @@
1# The Default Valor FRL TKL Layout
2
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 @@
1/* Copyright 2020 Harrison Chan (Xelus)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18#define USB_POLLING_INTERVAL_MS 1
19#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 @@
1/* Copyright 2020 Harrison Chan (Xelus)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_all(
20 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,
21 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,
22 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,
23 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,
24 KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
25 ),
26
27 [1] = LAYOUT_all(
28 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,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
33 ),
34
35 [2] = LAYOUT_all(
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
41 ),
42
43 [3] = LAYOUT_all(
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
48 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
49 )
50};
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 @@
1# The VIA Valor FRL TKL Layout
2
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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17#ifndef _MCUCONF_H_
18#define _MCUCONF_H_
19
20/*
21 * STM32F0xx drivers configuration.
22 * The following settings override the default settings present in
23 * the various device driver implementation headers.
24 * Note that the settings for each driver only have effect if the whole
25 * driver is enabled in halconf.h.
26 *
27 * IRQ priorities:
28 * 3...0 Lowest...Highest.
29 *
30 * DMA priorities:
31 * 0...3 Lowest...Highest.
32 */
33
34#define STM32F0xx_MCUCONF
35// #define STM32F070xB
36
37/*
38 * HAL driver system settings.
39 */
40#define STM32_NO_INIT FALSE
41#define STM32_PVD_ENABLE FALSE
42#define STM32_PLS STM32_PLS_LEV0
43#define STM32_HSI_ENABLED TRUE
44#define STM32_HSI14_ENABLED TRUE
45#define STM32_HSI48_ENABLED FALSE
46#define STM32_LSI_ENABLED TRUE
47#define STM32_HSE_ENABLED FALSE
48#define STM32_LSE_ENABLED FALSE
49#define STM32_SW STM32_SW_PLL
50#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2
51#define STM32_PREDIV_VALUE 1
52#define STM32_PLLMUL_VALUE 12
53#define STM32_HPRE STM32_HPRE_DIV1
54#define STM32_PPRE STM32_PPRE_DIV1
55#define STM32_ADCSW STM32_ADCSW_HSI14
56#define STM32_ADCPRE STM32_ADCPRE_DIV4
57#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
58#define STM32_ADCPRE STM32_ADCPRE_DIV4
59#define STM32_ADCSW STM32_ADCSW_HSI14
60#define STM32_USBSW STM32_USBSW_HSI48
61#define STM32_CECSW STM32_CECSW_HSI
62#define STM32_I2C1SW STM32_I2C1SW_HSI
63#define STM32_USART1SW STM32_USART1SW_PCLK
64#define STM32_RTCSEL STM32_RTCSEL_LSI
65
66/*
67 * ADC driver system settings.
68 */
69#define STM32_ADC_USE_ADC1 FALSE
70#define STM32_ADC_ADC1_DMA_PRIORITY 2
71#define STM32_ADC_IRQ_PRIORITY 2
72#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2
73
74/*
75 * EXT driver system settings.
76 */
77#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3
78#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3
79#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3
80#define STM32_EXT_EXTI16_IRQ_PRIORITY 3
81#define STM32_EXT_EXTI17_IRQ_PRIORITY 3
82
83/*
84 * GPT driver system settings.
85 */
86#define STM32_GPT_USE_TIM1 FALSE
87#define STM32_GPT_USE_TIM2 FALSE
88#define STM32_GPT_USE_TIM3 FALSE
89#define STM32_GPT_USE_TIM14 FALSE
90#define STM32_GPT_TIM1_IRQ_PRIORITY 2
91#define STM32_GPT_TIM2_IRQ_PRIORITY 2
92#define STM32_GPT_TIM3_IRQ_PRIORITY 2
93#define STM32_GPT_TIM14_IRQ_PRIORITY 2
94
95/*
96 * I2C driver system settings.
97 */
98#define STM32_I2C_USE_I2C1 TRUE
99#define STM32_I2C_USE_I2C2 FALSE
100#define STM32_I2C_BUSY_TIMEOUT 50
101#define STM32_I2C_I2C1_IRQ_PRIORITY 3
102#define STM32_I2C_I2C2_IRQ_PRIORITY 3
103#define STM32_I2C_USE_DMA TRUE
104#define STM32_I2C_I2C1_DMA_PRIORITY 1
105#define STM32_I2C_I2C2_DMA_PRIORITY 1
106#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
107#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
108#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
109
110/*
111 * ICU driver system settings.
112 */
113#define STM32_ICU_USE_TIM1 FALSE
114#define STM32_ICU_USE_TIM2 FALSE
115#define STM32_ICU_USE_TIM3 FALSE
116#define STM32_ICU_TIM1_IRQ_PRIORITY 3
117#define STM32_ICU_TIM2_IRQ_PRIORITY 3
118#define STM32_ICU_TIM3_IRQ_PRIORITY 3
119
120/*
121 * PWM driver system settings.
122 */
123#define STM32_PWM_USE_ADVANCED FALSE
124#define STM32_PWM_USE_TIM1 FALSE
125#define STM32_PWM_USE_TIM2 FALSE
126#define STM32_PWM_USE_TIM3 FALSE
127#define STM32_PWM_TIM1_IRQ_PRIORITY 3
128#define STM32_PWM_TIM2_IRQ_PRIORITY 3
129#define STM32_PWM_TIM3_IRQ_PRIORITY 3
130
131/*
132 * SERIAL driver system settings.
133 */
134#define STM32_SERIAL_USE_USART1 FALSE
135#define STM32_SERIAL_USE_USART2 FALSE
136#define STM32_SERIAL_USART1_PRIORITY 3
137#define STM32_SERIAL_USART2_PRIORITY 3
138
139/*
140 * SPI driver system settings.
141 */
142#define STM32_SPI_USE_SPI1 FALSE
143#define STM32_SPI_USE_SPI2 FALSE
144#define STM32_SPI_SPI1_DMA_PRIORITY 1
145#define STM32_SPI_SPI2_DMA_PRIORITY 1
146#define STM32_SPI_SPI1_IRQ_PRIORITY 2
147#define STM32_SPI_SPI2_IRQ_PRIORITY 2
148#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
149#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
150#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
151
152/*
153 * ST driver system settings.
154 */
155#define STM32_ST_IRQ_PRIORITY 2
156#define STM32_ST_USE_TIMER 2
157
158/*
159 * UART driver system settings.
160 */
161#define STM32_UART_USE_USART1 FALSE
162#define STM32_UART_USE_USART2 FALSE
163#define STM32_UART_USART1_IRQ_PRIORITY 3
164#define STM32_UART_USART2_IRQ_PRIORITY 3
165#define STM32_UART_USART1_DMA_PRIORITY 0
166#define STM32_UART_USART2_DMA_PRIORITY 0
167#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
168
169/*
170 * USB driver system settings.
171 */
172#define STM32_USB_USE_USB1 TRUE
173#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
174#define STM32_USB_USB1_LP_IRQ_PRIORITY 3
175
176#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 @@
1# Ext65Rev2 1# Valor FRL TKL
2 2
3Ext65Rev2 Keyboard 3An Alice-esque FRL TKL keyboard PCB.
4 4
5* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) 5* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
6* Hardware Supported: Ext65Rev2 6* Hardware Supported: Valor FRL TKL
7* Hardware Availability: [Keyboard Treehouse](https://keyboardtreehouse.com/collections/all/products/ext65-r2-pcb) 7* Hardware Availability: Custom keyboard group buys
8 8
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make aeboards/ext65/rev2:default 11 make xelus/valor_frl_tkl:default
12 12
13See 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 13See 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 @@
1# MCU name
2MCU = STM32F072
3
4# Build Options
5# change yes to no to disable
6#
7BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
8MOUSEKEY_ENABLE = yes # Mouse keys
9EXTRAKEY_ENABLE = yes # Audio control and System control
10CONSOLE_ENABLE = yes # Console for debug
11COMMAND_ENABLE = yes # Commands for debug and configuration
12# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
13SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
14# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
15NKRO_ENABLE = yes # USB Nkey Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18BLUETOOTH_ENABLE = no # Enable Bluetooth
19AUDIO_ENABLE = no # Audio output
20
21EEPROM_DRIVER = i2c
22
23# Enter lower-power sleep mode when on the ChibiOS idle thread
24OPT_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 @@
1/* Copyright 2020 Harrison Chan (Xelus)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17// Nothing to see here, move along... ;-)
18
19#include "valor_frl_tkl.h"
20
21void board_init(void) {
22 SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
23 SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
24}
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 @@
1/* Copyright 2020 Harrison Chan (Xelus)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#define ____ KC_NO
22
23#define LAYOUT_all( \
24 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, K014, K015, K016, \
25 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \
26 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \
27 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
28 K400, K402, K404, K405, K407, K409, K412, K414, K415, K416 \
29) { \
30 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \
31 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \
32 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, ____, ____, ____ }, \
33 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, ____, K315, ____ }, \
34 { K400, ____, K402, ____, K404, K405, ____, K407, ____, K409, ____, ____, K412, ____, K414, K415, K416 } \
35}
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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_ansi_tsangan 60_hhkb 60_iso 60_iso_split_bs_rshift 60_iso_tsangan 33LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_ansi_tsangan 60_hhkb 60_iso 60_iso_split_bs_rshift 60_iso_tsangan
35 34
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/>.
192/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 192/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
193//#define MIDI_TONE_KEYCODE_OCTAVES 1 193//#define MIDI_TONE_KEYCODE_OCTAVES 1
194 194
195/*
196 * HD44780 LCD Display Configuration
197 */
198/*
199#define LCD_LINES 2 //< number of visible lines of the display
200#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
201
202#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
203
204#if LCD_IO_MODE
205#define LCD_PORT PORTB //< port for the LCD lines
206#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
207#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
208#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
209#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
210#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
211#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
212#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
213#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
214#define LCD_RS_PORT LCD_PORT //< port for RS line
215#define LCD_RS_PIN 3 //< pin for RS line
216#define LCD_RW_PORT LCD_PORT //< port for RW line
217#define LCD_RW_PIN 2 //< pin for RW line
218#define LCD_E_PORT LCD_PORT //< port for Enable line
219#define LCD_E_PIN 1 //< pin for Enable line
220#endif
221*/
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
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
31AUDIO_ENABLE = no # Audio output on port C6 31AUDIO_ENABLE = no # Audio output on port C6
32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 32FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
33HD44780_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33LTO_ENABLE = yes # reduce firmware size 32LTO_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
24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 24# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
25NKRO_ENABLE = yes # USB Nkey Rollover 25NKRO_ENABLE = yes # USB Nkey Rollover
26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 26BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
27RGB_MATRIX_ENABLE = WS2812 27RGB_MATRIX_ENABLE = yes
28RGB_MATRIX_DRIVER = WS2812
28MIDI_ENABLE = no # MIDI support 29MIDI_ENABLE = no # MIDI support
29UNICODE_ENABLE = no # Unicode 30UNICODE_ENABLE = no # Unicode
30BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 31BLUETOOTH_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/>.
218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 218/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
219//#define MIDI_TONE_KEYCODE_OCTAVES 1 219//#define MIDI_TONE_KEYCODE_OCTAVES 1
220 220
221/*
222 * HD44780 LCD Display Configuration
223 */
224/*
225#define LCD_LINES 2 //< number of visible lines of the display
226#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
227
228#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
229
230#if LCD_IO_MODE
231#define LCD_PORT PORTB //< port for the LCD lines
232#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
233#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
234#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
235#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
236#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
237#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
238#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
239#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
240#define LCD_RS_PORT LCD_PORT //< port for RS line
241#define LCD_RS_PIN 3 //< pin for RS line
242#define LCD_RW_PORT LCD_PORT //< port for RW line
243#define LCD_RW_PIN 2 //< pin for RW line
244#define LCD_E_PORT LCD_PORT //< port for Enable line
245#define LCD_E_PIN 1 //< pin for Enable line
246#endif
247*/
248
249/* Bootmagic Lite key configuration */ 221/* Bootmagic Lite key configuration */
250// #define BOOTMAGIC_LITE_ROW 0 222// #define BOOTMAGIC_LITE_ROW 0
251// #define BOOTMAGIC_LITE_COLUMN 0 223// #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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34LAYOUTS = tkl_ansi 33LAYOUTS = 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/>.
219/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 219/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
220//#define MIDI_TONE_KEYCODE_OCTAVES 1 220//#define MIDI_TONE_KEYCODE_OCTAVES 1
221 221
222/*
223 * HD44780 LCD Display Configuration
224 */
225/*
226#define LCD_LINES 2 //< number of visible lines of the display
227#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
228
229#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
230
231#if LCD_IO_MODE
232#define LCD_PORT PORTB //< port for the LCD lines
233#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
234#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
235#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
236#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
237#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
238#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
239#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
240#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
241#define LCD_RS_PORT LCD_PORT //< port for RS line
242#define LCD_RS_PIN 3 //< pin for RS line
243#define LCD_RW_PORT LCD_PORT //< port for RW line
244#define LCD_RW_PIN 2 //< pin for RW line
245#define LCD_E_PORT LCD_PORT //< port for Enable line
246#define LCD_E_PIN 1 //< pin for Enable line
247#endif
248*/
249
250/* Bootmagic Lite key configuration */ 222/* Bootmagic Lite key configuration */
251// #define BOOTMAGIC_LITE_ROW 0 223// #define BOOTMAGIC_LITE_ROW 0
252// #define BOOTMAGIC_LITE_COLUMN 0 224// #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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33 32
34ENCODER_ENABLE = yes # Enable support for Rotary Encoder 33ENCODER_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
29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 29BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
30AUDIO_ENABLE = no # Audio output on port C6 30AUDIO_ENABLE = no # Audio output on port C6
31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 31FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
32HD44780_ENABLE = no # Enable support for HD44780 based LCDs
33TAP_DANCE_ENABLE = no 32TAP_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
105 105
106ifeq ($(strip $(RGB_MATRIX)), yes) 106ifeq ($(strip $(RGB_MATRIX)), yes)
107 RGBLIGHT_ENABLE = no 107 RGBLIGHT_ENABLE = no
108 RGB_MATRIX_ENABLE = WS2812 108 RGB_MATRIX_ENABLE = yes
109endif 109endif
110 110
111ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) 111ifeq ($(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
105 105
106ifeq ($(strip $(RGB_MATRIX)), yes) 106ifeq ($(strip $(RGB_MATRIX)), yes)
107 RGBLIGHT_ENABLE = no 107 RGBLIGHT_ENABLE = no
108 RGB_MATRIX_ENABLE = WS2812 108 RGB_MATRIX_ENABLE = yes
109endif 109endif
110 110
111ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes) 111ifeq ($(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
28BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 28BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
29RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. 29RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
30SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 30SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
31 31RGB_MATRIX_ENABLE = no
32RGB_MATRIX_DRIVER = WS2812
32 33
33DEFAULT_FOLDER = zinc/rev1 34DEFAULT_FOLDER = zinc/rev1
34 35
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)
34 RGBLIGHT_ENABLE = no 34 RGBLIGHT_ENABLE = no
35 # SERIAL_LINK_ENABLE = yes 35 # SERIAL_LINK_ENABLE = yes
36 ENCODER_ENABLE = yes 36 ENCODER_ENABLE = yes
37 RGB_MATRIX_ENABLE = IS31FL3737 37 RGB_MATRIX_ENABLE = yes
38 INDICATOR_LIGHTS = yes 38 INDICATOR_LIGHTS = yes
39 RGBLIGHT_TWINKLE = yes 39 RGBLIGHT_TWINKLE = yes
40 RGBLIGHT_STARTUP_ANIMATION = yes 40 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)
6else ifeq ($(strip $(KEYBOARD)), crkbd/rev1/legacy) 6else ifeq ($(strip $(KEYBOARD)), crkbd/rev1/legacy)
7 BOOTLOADER = atmel-dfu # Elite-C 7 BOOTLOADER = atmel-dfu # Elite-C
8 8
9 RGB_MATRIX_ENABLE = WS2812 # per-key RGB and underglow 9 RGB_MATRIX_ENABLE = yes # per-key RGB and underglow
10endif 10endif
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
22 22
23ifeq ($(strip $(KEYBOARD)), crkbd/rev1) 23ifeq ($(strip $(KEYBOARD)), crkbd/rev1)
24 OLED_DRIVER_ENABLE = yes 24 OLED_DRIVER_ENABLE = yes
25 RGB_MATRIX_ENABLE = WS2812 25 RGB_MATRIX_ENABLE = yes
26 HAPTIC_ENABLE = SOLENOID 26 HAPTIC_ENABLE = SOLENOID
27 BOOTLOADER = qmk-dfu 27 BOOTLOADER = qmk-dfu
28endif 28endif
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 @@
1#!/usr/bin/env python3
2# coding=utf-8
3"""MILC - A CLI Framework
4
5PYTHON_ARGCOMPLETE_OK
6
7MILC is an opinionated framework for writing CLI apps. It optimizes for the
8most common unix tool pattern- small tools that are run from the command
9line but generally do not feature any user interaction while they run.
10
11For more details see the MILC documentation:
12
13 <https://github.com/clueboard/milc/tree/master/docs>
14"""
15from __future__ import division, print_function, unicode_literals
16import argparse
17import logging
18import os
19import re
20import shlex
21import subprocess
22import sys
23from decimal import Decimal
24from pathlib import Path
25from platform import platform
26from tempfile import NamedTemporaryFile
27from time import sleep
28
29try:
30 from ConfigParser import RawConfigParser
31except ImportError:
32 from configparser import RawConfigParser
33
34try:
35 import thread
36 import threading
37except ImportError:
38 thread = None
39
40import argcomplete
41import colorama
42from appdirs import user_config_dir
43
44# Disable logging until we can configure it how the user wants
45logging.basicConfig(stream=os.devnull)
46
47# Log Level Representations
48EMOJI_LOGLEVELS = {
49 'CRITICAL': '{bg_red}{fg_white}¬_¬{style_reset_all}',
50 'ERROR': '{fg_red}☒{style_reset_all}',
51 'WARNING': '{fg_yellow}âš {style_reset_all}',
52 'INFO': '{fg_blue}ℹ{style_reset_all}',
53 'DEBUG': '{fg_cyan}â˜{style_reset_all}',
54 'NOTSET': '{style_reset_all}¯\\_(o_o)_/¯'
55}
56EMOJI_LOGLEVELS['FATAL'] = EMOJI_LOGLEVELS['CRITICAL']
57EMOJI_LOGLEVELS['WARN'] = EMOJI_LOGLEVELS['WARNING']
58UNICODE_SUPPORT = sys.stdout.encoding.lower().startswith('utf')
59
60# ANSI Color setup
61# Regex was gratefully borrowed from kfir on stackoverflow:
62# https://stackoverflow.com/a/45448194
63ansi_regex = r'\x1b(' \
64 r'(\[\??\d+[hl])|' \
65 r'([=<>a-kzNM78])|' \
66 r'([\(\)][a-b0-2])|' \
67 r'(\[\d{0,2}[ma-dgkjqi])|' \
68 r'(\[\d+;\d+[hfy]?)|' \
69 r'(\[;?[hf])|' \
70 r'(#[3-68])|' \
71 r'([01356]n)|' \
72 r'(O[mlnp-z]?)|' \
73 r'(/Z)|' \
74 r'(\d+)|' \
75 r'(\[\?\d;\d0c)|' \
76 r'(\d;\dR))'
77ansi_escape = re.compile(ansi_regex, flags=re.IGNORECASE)
78ansi_styles = (
79 ('fg', colorama.ansi.AnsiFore()),
80 ('bg', colorama.ansi.AnsiBack()),
81 ('style', colorama.ansi.AnsiStyle()),
82)
83ansi_colors = {}
84
85for prefix, obj in ansi_styles:
86 for color in [x for x in obj.__dict__ if not x.startswith('_')]:
87 ansi_colors[prefix + '_' + color.lower()] = getattr(obj, color)
88
89
90def format_ansi(text):
91 """Return a copy of text with certain strings replaced with ansi.
92 """
93 # Avoid .format() so we don't have to worry about the log content
94 for color in ansi_colors:
95 text = text.replace('{%s}' % color, ansi_colors[color])
96 return text + ansi_colors['style_reset_all']
97
98
99class ANSIFormatterMixin(object):
100 """A log formatter mixin that inserts ANSI color.
101 """
102 def format(self, record):
103 msg = super(ANSIFormatterMixin, self).format(record)
104 return format_ansi(msg)
105
106
107class ANSIStrippingMixin(object):
108 """A log formatter mixin that strips ANSI.
109 """
110 def format(self, record):
111 msg = super(ANSIStrippingMixin, self).format(record)
112 record.levelname = ansi_escape.sub('', record.levelname)
113 return ansi_escape.sub('', msg)
114
115
116class EmojiLoglevelMixin(object):
117 """A log formatter mixin that makes the loglevel an emoji on UTF capable terminals.
118 """
119 def format(self, record):
120 if UNICODE_SUPPORT:
121 record.levelname = EMOJI_LOGLEVELS[record.levelname].format(**ansi_colors)
122 return super(EmojiLoglevelMixin, self).format(record)
123
124
125class ANSIFormatter(ANSIFormatterMixin, logging.Formatter):
126 """A log formatter that colorizes output.
127 """
128 pass
129
130
131class ANSIStrippingFormatter(ANSIStrippingMixin, ANSIFormatterMixin, logging.Formatter):
132 """A log formatter that strips ANSI
133 """
134 pass
135
136
137class ANSIEmojiLoglevelFormatter(EmojiLoglevelMixin, ANSIFormatterMixin, logging.Formatter):
138 """A log formatter that adds Emoji and ANSI
139 """
140 pass
141
142
143class ANSIStrippingEmojiLoglevelFormatter(ANSIStrippingMixin, EmojiLoglevelMixin, ANSIFormatterMixin, logging.Formatter):
144 """A log formatter that adds Emoji and strips ANSI
145 """
146 pass
147
148
149class Configuration(object):
150 """Represents the running configuration.
151
152 This class never raises IndexError, instead it will return None if a
153 section or option does not yet exist.
154 """
155 def __contains__(self, key):
156 return self._config.__contains__(key)
157
158 def __iter__(self):
159 return self._config.__iter__()
160
161 def __len__(self):
162 return self._config.__len__()
163
164 def __repr__(self):
165 return self._config.__repr__()
166
167 def keys(self):
168 return self._config.keys()
169
170 def items(self):
171 return self._config.items()
172
173 def values(self):
174 return self._config.values()
175
176 def __init__(self, *args, **kwargs):
177 self._config = {}
178
179 def __getattr__(self, key):
180 return self.__getitem__(key)
181
182 def __getitem__(self, key):
183 """Returns a config section, creating it if it doesn't exist yet.
184 """
185 if key not in self._config:
186 self.__dict__[key] = self._config[key] = ConfigurationSection(self)
187
188 return self._config[key]
189
190 def __setitem__(self, key, value):
191 self.__dict__[key] = value
192 self._config[key] = value
193
194 def __delitem__(self, key):
195 if key in self.__dict__ and key[0] != '_':
196 del self.__dict__[key]
197 if key in self._config:
198 del self._config[key]
199
200
201class ConfigurationSection(Configuration):
202 def __init__(self, parent, *args, **kwargs):
203 super(ConfigurationSection, self).__init__(*args, **kwargs)
204 self.parent = parent
205
206 def __getitem__(self, key):
207 """Returns a config value, pulling from the `user` section as a fallback.
208 This is called when the attribute is accessed either via the get method or through [ ] index.
209 """
210 if key in self._config and self._config.get(key) is not None:
211 return self._config[key]
212
213 elif key in self.parent.user:
214 return self.parent.user[key]
215
216 return None
217
218 def __getattr__(self, key):
219 """Returns the config value from the `user` section.
220 This is called when the attribute is accessed via dot notation but does not exists.
221 """
222 if key in self.parent.user:
223 return self.parent.user[key]
224
225 return None
226
227
228def handle_store_boolean(self, *args, **kwargs):
229 """Does the add_argument for action='store_boolean'.
230 """
231 disabled_args = None
232 disabled_kwargs = kwargs.copy()
233 disabled_kwargs['action'] = 'store_false'
234 disabled_kwargs['dest'] = self.get_argument_name(*args, **kwargs)
235 disabled_kwargs['help'] = 'Disable ' + kwargs['help']
236 kwargs['action'] = 'store_true'
237 kwargs['help'] = 'Enable ' + kwargs['help']
238
239 for flag in args:
240 if flag[:2] == '--':
241 disabled_args = ('--no-' + flag[2:],)
242 break
243
244 self.add_argument(*args, **kwargs)
245 self.add_argument(*disabled_args, **disabled_kwargs)
246
247 return (args, kwargs, disabled_args, disabled_kwargs)
248
249
250class SubparserWrapper(object):
251 """Wrap subparsers so we can track what options the user passed.
252 """
253 def __init__(self, cli, submodule, subparser):
254 self.cli = cli
255 self.submodule = submodule
256 self.subparser = subparser
257
258 for attr in dir(subparser):
259 if not hasattr(self, attr):
260 setattr(self, attr, getattr(subparser, attr))
261
262 def completer(self, completer):
263 """Add an arpcomplete completer to this subcommand.
264 """
265 self.subparser.completer = completer
266
267 def add_argument(self, *args, **kwargs):
268 """Add an argument for this subcommand.
269
270 This also stores the default for the argument in `self.cli.default_arguments`.
271 """
272 if kwargs.get('action') == 'store_boolean':
273 # Store boolean will call us again with the enable/disable flag arguments
274 return handle_store_boolean(self, *args, **kwargs)
275
276 self.cli.acquire_lock()
277 argument_name = self.cli.get_argument_name(*args, **kwargs)
278
279 self.subparser.add_argument(*args, **kwargs)
280
281 if kwargs.get('action') == 'store_false':
282 self.cli._config_store_false.append(argument_name)
283
284 if kwargs.get('action') == 'store_true':
285 self.cli._config_store_true.append(argument_name)
286
287 if self.submodule not in self.cli.default_arguments:
288 self.cli.default_arguments[self.submodule] = {}
289 self.cli.default_arguments[self.submodule][argument_name] = kwargs.get('default')
290 self.cli.release_lock()
291
292
293class MILC(object):
294 """MILC - An Opinionated Batteries Included Framework
295 """
296 def __init__(self):
297 """Initialize the MILC object.
298
299 version
300 The version string to associate with your CLI program
301 """
302 # Setup a lock for thread safety
303 self._lock = threading.RLock() if thread else None
304
305 # Define some basic info
306 self.acquire_lock()
307 self._config_store_true = []
308 self._config_store_false = []
309 self._description = None
310 self._entrypoint = None
311 self._inside_context_manager = False
312 self.ansi = ansi_colors
313 self.arg_only = {}
314 self.config = self.config_source = None
315 self.config_file = None
316 self.default_arguments = {}
317 self.version = 'unknown'
318 self.platform = platform()
319
320 # Figure out our program name
321 self.prog_name = sys.argv[0][:-3] if sys.argv[0].endswith('.py') else sys.argv[0]
322 self.prog_name = self.prog_name.split('/')[-1]
323 self.release_lock()
324
325 # Initialize all the things
326 self.read_config_file()
327 self.initialize_argparse()
328 self.initialize_logging()
329
330 @property
331 def description(self):
332 return self._description
333
334 @description.setter
335 def description(self, value):
336 self._description = self._arg_parser.description = value
337
338 def echo(self, text, *args, **kwargs):
339 """Print colorized text to stdout.
340
341 ANSI color strings (such as {fg-blue}) will be converted into ANSI
342 escape sequences, and the ANSI reset sequence will be added to all
343 strings.
344
345 If *args or **kwargs are passed they will be used to %-format the strings.
346
347 If `self.config.general.color` is False any ANSI escape sequences in the text will be stripped.
348 """
349 if args and kwargs:
350 raise RuntimeError('You can only specify *args or **kwargs, not both!')
351
352 args = args or kwargs
353 text = format_ansi(text)
354
355 if not self.config.general.color:
356 text = ansi_escape.sub('', text)
357
358 print(text % args)
359
360 def run(self, command, *args, **kwargs):
361 """Run a command with subprocess.run
362 The *args and **kwargs arguments get passed directly to `subprocess.run`.
363 """
364 if isinstance(command, str):
365 raise TypeError('`command` must be a non-text sequence such as list or tuple.')
366
367 if 'windows' in self.platform.lower():
368 safecmd = map(shlex.quote, command)
369 safecmd = ' '.join(safecmd)
370 command = [os.environ['SHELL'], '-c', safecmd]
371
372 self.log.debug('Running command: %s', command)
373
374 return subprocess.run(command, *args, **kwargs)
375
376 def initialize_argparse(self):
377 """Prepare to process arguments from sys.argv.
378 """
379 kwargs = {
380 'fromfile_prefix_chars': '@',
381 'conflict_handler': 'resolve',
382 }
383
384 self.acquire_lock()
385 self.subcommands = {}
386 self._subparsers = None
387 self.argwarn = argcomplete.warn
388 self.args = None
389 self._arg_parser = argparse.ArgumentParser(**kwargs)
390 self.set_defaults = self._arg_parser.set_defaults
391 self.print_usage = self._arg_parser.print_usage
392 self.print_help = self._arg_parser.print_help
393 self.release_lock()
394
395 def completer(self, completer):
396 """Add an argcomplete completer to this subcommand.
397 """
398 self._arg_parser.completer = completer
399
400 def add_argument(self, *args, **kwargs):
401 """Wrapper to add arguments and track whether they were passed on the command line.
402 """
403 if 'action' in kwargs and kwargs['action'] == 'store_boolean':
404 return handle_store_boolean(self, *args, **kwargs)
405
406 self.acquire_lock()
407
408 self._arg_parser.add_argument(*args, **kwargs)
409 if 'general' not in self.default_arguments:
410 self.default_arguments['general'] = {}
411 self.default_arguments['general'][self.get_argument_name(*args, **kwargs)] = kwargs.get('default')
412
413 self.release_lock()
414
415 def initialize_logging(self):
416 """Prepare the defaults for the logging infrastructure.
417 """
418 self.acquire_lock()
419 self.log_file = None
420 self.log_file_mode = 'a'
421 self.log_file_handler = None
422 self.log_print = True
423 self.log_print_to = sys.stderr
424 self.log_print_level = logging.INFO
425 self.log_file_level = logging.DEBUG
426 self.log_level = logging.INFO
427 self.log = logging.getLogger(self.__class__.__name__)
428 self.log.setLevel(logging.DEBUG)
429 logging.root.setLevel(logging.DEBUG)
430 self.release_lock()
431
432 self.add_argument('-V', '--version', version=self.version, action='version', help='Display the version and exit')
433 self.add_argument('-v', '--verbose', action='store_true', help='Make the logging more verbose')
434 self.add_argument('--datetime-fmt', default='%Y-%m-%d %H:%M:%S', help='Format string for datetimes')
435 self.add_argument('--log-fmt', default='%(levelname)s %(message)s', help='Format string for printed log output')
436 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.')
437 self.add_argument('--log-file', help='File to write log messages to')
438 self.add_argument('--color', action='store_boolean', default=True, help='color in output')
439 self.add_argument('--config-file', help='The location for the configuration file')
440 self.arg_only['config_file'] = ['general']
441
442 def add_subparsers(self, title='Sub-commands', **kwargs):
443 if self._inside_context_manager:
444 raise RuntimeError('You must run this before the with statement!')
445
446 self.acquire_lock()
447 self._subparsers = self._arg_parser.add_subparsers(title=title, dest='subparsers', **kwargs)
448 self.release_lock()
449
450 def acquire_lock(self):
451 """Acquire the MILC lock for exclusive access to properties.
452 """
453 if self._lock:
454 self._lock.acquire()
455
456 def release_lock(self):
457 """Release the MILC lock.
458 """
459 if self._lock:
460 self._lock.release()
461
462 def find_config_file(self):
463 """Locate the config file.
464 """
465 if self.config_file:
466 return self.config_file
467
468 if '--config-file' in sys.argv:
469 return Path(sys.argv[sys.argv.index('--config-file') + 1]).expanduser().resolve()
470
471 filedir = user_config_dir(appname='qmk', appauthor='QMK')
472 filename = '%s.ini' % self.prog_name
473 return Path(filedir) / filename
474
475 def get_argument_name(self, *args, **kwargs):
476 """Takes argparse arguments and returns the dest name.
477 """
478 try:
479 return self._arg_parser._get_optional_kwargs(*args, **kwargs)['dest']
480 except ValueError:
481 return self._arg_parser._get_positional_kwargs(*args, **kwargs)['dest']
482
483 def argument(self, *args, **kwargs):
484 """Decorator to call self.add_argument or self.<subcommand>.add_argument.
485 """
486 if self._inside_context_manager:
487 raise RuntimeError('You must run this before the with statement!')
488
489 def argument_function(handler):
490 subcommand_name = handler.__name__.replace("_", "-")
491
492 if kwargs.get('arg_only'):
493 arg_name = self.get_argument_name(*args, **kwargs)
494 if arg_name not in self.arg_only:
495 self.arg_only[arg_name] = []
496 self.arg_only[arg_name].append(subcommand_name)
497 del kwargs['arg_only']
498
499 if handler is self._entrypoint:
500 self.add_argument(*args, **kwargs)
501
502 elif subcommand_name in self.subcommands:
503 self.subcommands[subcommand_name].add_argument(*args, **kwargs)
504
505 else:
506 raise RuntimeError('Decorated function is not entrypoint or subcommand!')
507
508 return handler
509
510 return argument_function
511
512 def arg_passed(self, arg):
513 """Returns True if arg was passed on the command line.
514 """
515 return self.default_arguments.get(arg) != self.args[arg]
516
517 def parse_args(self):
518 """Parse the CLI args.
519 """
520 if self.args:
521 self.log.debug('Warning: Arguments have already been parsed, ignoring duplicate attempt!')
522 return
523
524 argcomplete.autocomplete(self._arg_parser)
525
526 self.acquire_lock()
527 self.args = self._arg_parser.parse_args()
528
529 if 'entrypoint' in self.args:
530 self._entrypoint = self.args.entrypoint
531
532 self.release_lock()
533
534 def read_config_file(self):
535 """Read in the configuration file and store it in self.config.
536 """
537 self.acquire_lock()
538 self.config = Configuration()
539 self.config_source = Configuration()
540 self.config_file = self.find_config_file()
541
542 if self.config_file and self.config_file.exists():
543 config = RawConfigParser(self.config)
544 config.read(str(self.config_file))
545
546 # Iterate over the config file options and write them into self.config
547 for section in config.sections():
548 for option in config.options(section):
549 value = config.get(section, option)
550
551 # Coerce values into useful datatypes
552 if value.lower() in ['1', 'yes', 'true', 'on']:
553 value = True
554 elif value.lower() in ['0', 'no', 'false', 'off']:
555 value = False
556 elif value.lower() in ['none']:
557 continue
558 elif value.replace('.', '').isdigit():
559 if '.' in value:
560 value = Decimal(value)
561 else:
562 value = int(value)
563
564 self.config[section][option] = value
565 self.config_source[section][option] = 'config_file'
566
567 self.release_lock()
568
569 def merge_args_into_config(self):
570 """Merge CLI arguments into self.config to create the runtime configuration.
571 """
572 self.acquire_lock()
573 for argument in vars(self.args):
574 if argument in ('subparsers', 'entrypoint'):
575 continue
576
577 # Find the argument's section
578 # Underscores in command's names are converted to dashes during initialization.
579 # TODO(Erovia) Find a better solution
580 entrypoint_name = self._entrypoint.__name__.replace("_", "-")
581 if entrypoint_name in self.default_arguments and argument in self.default_arguments[entrypoint_name]:
582 argument_found = True
583 section = self._entrypoint.__name__
584 if argument in self.default_arguments['general']:
585 argument_found = True
586 section = 'general'
587
588 if not argument_found:
589 raise RuntimeError('Could not find argument in `self.default_arguments`. This should be impossible!')
590 exit(1)
591
592 if argument not in self.arg_only or section not in self.arg_only[argument]:
593 # Determine the arg value and source
594 arg_value = getattr(self.args, argument)
595 if argument in self._config_store_true and arg_value:
596 passed_on_cmdline = True
597 elif argument in self._config_store_false and not arg_value:
598 passed_on_cmdline = True
599 elif arg_value is not None:
600 passed_on_cmdline = True
601 else:
602 passed_on_cmdline = False
603
604 # Merge this argument into self.config
605 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]):
606 self.config[section][argument] = arg_value
607 self.config_source[section][argument] = 'argument'
608
609 self.release_lock()
610
611 def save_config(self):
612 """Save the current configuration to the config file.
613 """
614 self.log.debug("Saving config file to '%s'", str(self.config_file))
615
616 if not self.config_file:
617 self.log.warning('%s.config_file file not set, not saving config!', self.__class__.__name__)
618 return
619
620 self.acquire_lock()
621
622 # Generate a sanitized version of our running configuration
623 config = RawConfigParser()
624 for section_name, section in self.config._config.items():
625 config.add_section(section_name)
626 for option_name, value in section.items():
627 if section_name == 'general':
628 if option_name in ['config_file']:
629 continue
630 if value is not None:
631 config.set(section_name, option_name, str(value))
632
633 # Write out the config file
634 config_dir = self.config_file.parent
635 if not config_dir.exists():
636 config_dir.mkdir(parents=True, exist_ok=True)
637
638 with NamedTemporaryFile(mode='w', dir=str(config_dir), delete=False) as tmpfile:
639 config.write(tmpfile)
640
641 # Move the new config file into place atomically
642 if os.path.getsize(tmpfile.name) > 0:
643 os.replace(tmpfile.name, str(self.config_file))
644 else:
645 self.log.warning('Config file saving failed, not replacing %s with %s.', str(self.config_file), tmpfile.name)
646
647 # Housekeeping
648 self.release_lock()
649 cli.log.info('Wrote configuration to %s', shlex.quote(str(self.config_file)))
650
651 def __call__(self):
652 """Execute the entrypoint function.
653 """
654 if not self._inside_context_manager:
655 # If they didn't use the context manager use it ourselves
656 with self:
657 return self.__call__()
658
659 if not self._entrypoint:
660 raise RuntimeError('No entrypoint provided!')
661
662 return self._entrypoint(self)
663
664 def entrypoint(self, description):
665 """Set the entrypoint for when no subcommand is provided.
666 """
667 if self._inside_context_manager:
668 raise RuntimeError('You must run this before cli()!')
669
670 self.acquire_lock()
671 self.description = description
672 self.release_lock()
673
674 def entrypoint_func(handler):
675 self.acquire_lock()
676 self._entrypoint = handler
677 self.release_lock()
678
679 return handler
680
681 return entrypoint_func
682
683 def add_subcommand(self, handler, description, name=None, hidden=False, **kwargs):
684 """Register a subcommand.
685
686 If name is not provided we use `handler.__name__`.
687 """
688
689 if self._inside_context_manager:
690 raise RuntimeError('You must run this before the with statement!')
691
692 if self._subparsers is None:
693 self.add_subparsers(metavar="")
694
695 if not name:
696 name = handler.__name__.replace("_", "-")
697
698 self.acquire_lock()
699 if not hidden:
700 self._subparsers.metavar = "{%s,%s}" % (self._subparsers.metavar[1:-1], name) if self._subparsers.metavar else "{%s%s}" % (self._subparsers.metavar[1:-1], name)
701 kwargs['help'] = description
702 self.subcommands[name] = SubparserWrapper(self, name, self._subparsers.add_parser(name, **kwargs))
703 self.subcommands[name].set_defaults(entrypoint=handler)
704
705 self.release_lock()
706
707 return handler
708
709 def subcommand(self, description, hidden=False, **kwargs):
710 """Decorator to register a subcommand.
711 """
712 def subcommand_function(handler):
713 return self.add_subcommand(handler, description, hidden=hidden, **kwargs)
714
715 return subcommand_function
716
717 def setup_logging(self):
718 """Called by __enter__() to setup the logging configuration.
719 """
720 if len(logging.root.handlers) != 0:
721 # MILC is the only thing that should have root log handlers
722 logging.root.handlers = []
723
724 self.acquire_lock()
725
726 if self.config['general']['verbose']:
727 self.log_print_level = logging.DEBUG
728
729 self.log_file = self.config['general']['log_file'] or self.log_file
730 self.log_file_format = ANSIStrippingFormatter(self.config['general']['log_file_fmt'], self.config['general']['datetime_fmt'])
731 self.log_format = self.config['general']['log_fmt']
732
733 if self.config.general.color:
734 self.log_format = ANSIEmojiLoglevelFormatter(self.config.general.log_fmt, self.config.general.datetime_fmt)
735 else:
736 self.log_format = ANSIStrippingEmojiLoglevelFormatter(self.config.general.log_fmt, self.config.general.datetime_fmt)
737
738 if self.log_file:
739 self.log_file_handler = logging.FileHandler(self.log_file, self.log_file_mode)
740 self.log_file_handler.setLevel(self.log_file_level)
741 self.log_file_handler.setFormatter(self.log_file_format)
742 logging.root.addHandler(self.log_file_handler)
743
744 if self.log_print:
745 self.log_print_handler = logging.StreamHandler(self.log_print_to)
746 self.log_print_handler.setLevel(self.log_print_level)
747 self.log_print_handler.setFormatter(self.log_format)
748 logging.root.addHandler(self.log_print_handler)
749
750 self.release_lock()
751
752 def __enter__(self):
753 if self._inside_context_manager:
754 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.')
755 return
756
757 self.acquire_lock()
758 self._inside_context_manager = True
759 self.release_lock()
760
761 colorama.init()
762 self.parse_args()
763 self.merge_args_into_config()
764 self.setup_logging()
765
766 return self
767
768 def __exit__(self, exc_type, exc_val, exc_tb):
769 self.acquire_lock()
770 self._inside_context_manager = False
771 self.release_lock()
772
773 if exc_type is not None and not isinstance(SystemExit(), exc_type):
774 print(exc_type)
775 logging.exception(exc_val)
776 exit(255)
777
778
779cli = MILC()
780
781if __name__ == '__main__':
782
783 @cli.argument('-c', '--comma', help='comma in output', default=True, action='store_boolean')
784 @cli.entrypoint('My useful CLI tool with subcommands.')
785 def main(cli):
786 comma = ',' if cli.config.general.comma else ''
787 cli.log.info('{bg_green}{fg_red}Hello%s World!', comma)
788
789 @cli.argument('-n', '--name', help='Name to greet', default='World')
790 @cli.subcommand('Description of hello subcommand here.')
791 def hello(cli):
792 comma = ',' if cli.config.general.comma else ''
793 cli.log.info('{fg_blue}Hello%s %s!', comma, cli.config.hello.name)
794
795 def goodbye(cli):
796 comma = ',' if cli.config.general.comma else ''
797 cli.log.info('{bg_red}Goodbye%s %s!', comma, cli.config.goodbye.name)
798
799 @cli.argument('-n', '--name', help='Name to greet', default='World')
800 @cli.subcommand('Think a bit before greeting the user.')
801 def thinking(cli):
802 comma = ',' if cli.config.general.comma else ''
803 spinner = cli.spinner(text='Just a moment...', spinner='earth')
804 spinner.start()
805 sleep(2)
806 spinner.stop()
807
808 with cli.spinner(text='Almost there!', spinner='moon'):
809 sleep(2)
810
811 cli.log.info('{fg_cyan}Hello%s %s!', comma, cli.config.thinking.name)
812
813 @cli.subcommand('Show off our ANSI colors.')
814 def pride(cli):
815 cli.echo('{bg_red} ')
816 cli.echo('{bg_lightred_ex} ')
817 cli.echo('{bg_lightyellow_ex} ')
818 cli.echo('{bg_green} ')
819 cli.echo('{bg_blue} ')
820 cli.echo('{bg_magenta} ')
821
822 # You can register subcommands using decorators as seen above, or using functions like like this:
823 cli.add_subcommand(goodbye, 'This will show up in --help output.')
824 cli.goodbye.add_argument('-n', '--name', help='Name to bid farewell to', default='World')
825
826 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
8 8
9from . import c2json 9from . import c2json
10from . import cformat 10from . import cformat
11from . import chibios
11from . import clean 12from . import clean
12from . import compile 13from . import compile
13from . import config 14from . 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 @@
1"""This script automates the copying of the default keymap into your own keymap.
2"""
3import re
4import sys
5import os
6
7from qmk.constants import QMK_FIRMWARE
8from qmk.path import normpath
9from milc import cli
10
11
12def eprint(*args, **kwargs):
13 print(*args, file=sys.stderr, **kwargs)
14
15
16fileHeader = """\
17/* Copyright 2020 QMK
18 *
19 * This program is free software: you can redistribute it and/or modify
20 * it under the terms of the GNU General Public License as published by
21 * the Free Software Foundation, either version 2 of the License, or
22 * (at your option) any later version.
23 *
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
28 *
29 * You should have received a copy of the GNU General Public License
30 * along with this program. If not, see <http://www.gnu.org/licenses/>.
31 */
32
33/*
34 * This file was auto-generated by:
35 * `qmk chibios-confupdate -i {0} -r {1}`
36 */
37
38#pragma once
39"""
40
41
42def collect_defines(filepath):
43 with open(filepath, 'r') as f:
44 content = f.read()
45 define_search = re.compile(r'(?m)^#\s*define\s+(?:.*\\\r?\n)*.*$', re.MULTILINE)
46 value_search = re.compile(r'^#\s*define\s+(?P<name>[a-zA-Z0-9_]+(\([^\)]*\))?)\s*(?P<value>.*)', re.DOTALL)
47 define_matches = define_search.findall(content)
48
49 defines = {"keys": [], "dict": {}}
50 for define_match in define_matches:
51 value_match = value_search.search(define_match)
52 defines["keys"].append(value_match.group("name"))
53 defines["dict"][value_match.group("name")] = value_match.group("value")
54 return defines
55
56
57def check_diffs(input_defs, reference_defs):
58 not_present_in_input = []
59 not_present_in_reference = []
60 to_override = []
61
62 for key in reference_defs["keys"]:
63 if key not in input_defs["dict"]:
64 not_present_in_input.append(key)
65 continue
66
67 for key in input_defs["keys"]:
68 if key not in input_defs["dict"]:
69 not_present_in_input.append(key)
70 continue
71
72 for key in input_defs["keys"]:
73 if key in reference_defs["keys"] and input_defs["dict"][key] != reference_defs["dict"][key]:
74 to_override.append((key, input_defs["dict"][key]))
75
76 return (to_override, not_present_in_input, not_present_in_reference)
77
78
79def migrate_chconf_h(to_override, outfile):
80 print(fileHeader.format(cli.args.input.relative_to(QMK_FIRMWARE), cli.args.reference.relative_to(QMK_FIRMWARE)), file=outfile)
81
82 for override in to_override:
83 print("#define %s %s" % (override[0], override[1]), file=outfile)
84 print("", file=outfile)
85
86 print("#include_next <chconf.h>\n", file=outfile)
87
88
89def migrate_halconf_h(to_override, outfile):
90 print(fileHeader.format(cli.args.input.relative_to(QMK_FIRMWARE), cli.args.reference.relative_to(QMK_FIRMWARE)), file=outfile)
91
92 for override in to_override:
93 print("#define %s %s" % (override[0], override[1]), file=outfile)
94 print("", file=outfile)
95
96 print("#include_next <halconf.h>\n", file=outfile)
97
98
99def migrate_mcuconf_h(to_override, outfile):
100 print(fileHeader.format(cli.args.input.relative_to(QMK_FIRMWARE), cli.args.reference.relative_to(QMK_FIRMWARE)), file=outfile)
101
102 print("#include_next <mcuconf.h>\n", file=outfile)
103
104 for override in to_override:
105 print("#undef %s" % (override[0]), file=outfile)
106 print("#define %s %s" % (override[0], override[1]), file=outfile)
107 print("", file=outfile)
108
109
110@cli.argument('-i', '--input', type=normpath, arg_only=True, help='Specify input config file.')
111@cli.argument('-r', '--reference', type=normpath, arg_only=True, help='Specify the reference file to compare against')
112@cli.argument('-o', '--overwrite', arg_only=True, action='store_true', help='Overwrites the input file during migration.')
113@cli.argument('-d', '--delete', arg_only=True, action='store_true', help='If the file has no overrides, migration will delete the input file.')
114@cli.subcommand('Generates a migrated ChibiOS configuration file, as a result of comparing the input against a reference')
115def chibios_confmigrate(cli):
116 """Generates a usable ChibiOS replacement configuration file, based on a fully-defined conf and a reference config.
117 """
118
119 input_defs = collect_defines(cli.args.input)
120 reference_defs = collect_defines(cli.args.reference)
121
122 (to_override, not_present_in_input, not_present_in_reference) = check_diffs(input_defs, reference_defs)
123
124 if len(not_present_in_input) > 0:
125 eprint("Keys not in input, but present inside reference (potential manual migration required):")
126 for key in not_present_in_input:
127 eprint(" %s" % (key))
128
129 if len(not_present_in_reference) > 0:
130 eprint("Keys not in reference, but present inside input (potential manual migration required):")
131 for key in not_present_in_reference:
132 eprint(" %s" % (key))
133
134 if len(to_override) == 0:
135 eprint('No overrides found! If there were no missing keys above, it should be safe to delete the input file.')
136 if cli.args.delete:
137 os.remove(cli.args.input)
138 else:
139 eprint('Overrides found:')
140 for override in to_override:
141 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")))
142
143 eprint('--------------------------------------')
144
145 if "CHCONF_H" in input_defs["dict"] or "_CHCONF_H_" in input_defs["dict"]:
146 migrate_chconf_h(to_override, outfile=sys.stdout)
147 if cli.args.overwrite:
148 with open(cli.args.input, "w") as out_file:
149 migrate_chconf_h(to_override, outfile=out_file)
150
151 elif "HALCONF_H" in input_defs["dict"] or "_HALCONF_H_" in input_defs["dict"]:
152 migrate_halconf_h(to_override, outfile=sys.stdout)
153 if cli.args.overwrite:
154 with open(cli.args.input, "w") as out_file:
155 migrate_halconf_h(to_override, outfile=out_file)
156
157 elif "MCUCONF_H" in input_defs["dict"] or "_MCUCONF_H_" in input_defs["dict"]:
158 migrate_mcuconf_h(to_override, outfile=sys.stdout)
159 if cli.args.overwrite:
160 with open(cli.args.input, "w") as out_file:
161 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
10from enum import Enum 10from enum import Enum
11 11
12from milc import cli 12from milc import cli
13from milc.questions import yesno
13from qmk import submodules 14from qmk import submodules
14from qmk.constants import QMK_FIRMWARE 15from qmk.constants import QMK_FIRMWARE
15from qmk.questions import yesno
16from qmk.commands import run 16from qmk.commands import run
17 17
18 18
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 @@
1"""Functions to collect user input.
2"""
3
4from milc import cli
5
6try:
7 from milc import format_ansi
8except ImportError:
9 from milc.ansi import format_ansi
10
11
12def yesno(prompt, *args, default=None, **kwargs):
13 """Displays prompt to the user and gets a yes or no response.
14
15 Returns True for a yes and False for a no.
16
17 If you add `--yes` and `--no` arguments to your program the user can answer questions by passing command line flags.
18
19 @add_argument('-y', '--yes', action='store_true', arg_only=True, help='Answer yes to all questions.')
20 @add_argument('-n', '--no', action='store_true', arg_only=True, help='Answer no to all questions.')
21
22 Arguments:
23 prompt
24 The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
25
26 default
27 Whether to default to a Yes or No when the user presses enter.
28
29 None- force the user to enter Y or N
30
31 True- Default to yes
32
33 False- Default to no
34 """
35 if not args and kwargs:
36 args = kwargs
37
38 if 'no' in cli.args and cli.args.no:
39 return False
40
41 if 'yes' in cli.args and cli.args.yes:
42 return True
43
44 if default is not None:
45 if default:
46 prompt = prompt + ' [Y/n] '
47 else:
48 prompt = prompt + ' [y/N] '
49
50 while True:
51 cli.echo('')
52 answer = input(format_ansi(prompt % args))
53 cli.echo('')
54
55 if not answer and prompt is not None:
56 return default
57
58 elif answer.lower() in ['y', 'yes']:
59 return True
60
61 elif answer.lower() in ['n', 'no']:
62 return False
63
64
65def question(prompt, *args, default=None, confirm=False, answer_type=str, validate=None, **kwargs):
66 """Prompt the user to answer a question with a free-form input.
67
68 Arguments:
69 prompt
70 The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
71
72 default
73 The value to return when the user doesn't enter any value. Use None to prompt until they enter a value.
74
75 confirm
76 Present the user with a confirmation dialog before accepting their answer.
77
78 answer_type
79 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.
80
81 validate
82 This is an optional function that can be used to validate the answer. It should return True or False and have the following signature:
83
84 def function_name(answer, *args, **kwargs):
85 """
86 if not args and kwargs:
87 args = kwargs
88
89 if default is not None:
90 prompt = '%s [%s] ' % (prompt, default)
91
92 while True:
93 cli.echo('')
94 answer = input(format_ansi(prompt % args))
95 cli.echo('')
96
97 if answer:
98 if validate is not None and not validate(answer, *args, **kwargs):
99 continue
100
101 elif confirm:
102 if yesno('Is the answer "%s" correct?', answer, default=True):
103 try:
104 return answer_type(answer)
105 except Exception as e:
106 cli.log.error('Could not convert answer (%s) to type %s: %s', answer, answer_type.__name__, str(e))
107
108 else:
109 try:
110 return answer_type(answer)
111 except Exception as e:
112 cli.log.error('Could not convert answer (%s) to type %s: %s', answer, answer_type.__name__, str(e))
113
114 elif default is not None:
115 return default
116
117
118def choice(heading, options, *args, default=None, confirm=False, prompt='Please enter your choice: ', **kwargs):
119 """Present the user with a list of options and let them pick one.
120
121 Users can enter either the number or the text of their choice.
122
123 This will return the value of the item they choose, not the numerical index.
124
125 Arguments:
126 heading
127 The text to place above the list of options.
128
129 options
130 A sequence of items to choose from.
131
132 default
133 The index of the item to return when the user doesn't enter any value. Use None to prompt until they enter a value.
134
135 confirm
136 Present the user with a confirmation dialog before accepting their answer.
137
138 prompt
139 The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
140 """
141 if not args and kwargs:
142 args = kwargs
143
144 if prompt and default:
145 prompt = prompt + ' [%s] ' % (default + 1,)
146
147 while True:
148 # Prompt for an answer.
149 cli.echo('')
150 cli.echo(heading % args)
151 cli.echo('')
152 for i, option in enumerate(options, 1):
153 cli.echo('\t{fg_cyan}%d.{fg_reset} %s', i, option)
154
155 cli.echo('')
156 answer = input(format_ansi(prompt))
157 cli.echo('')
158
159 # If the user types in one of the options exactly use that
160 if answer in options:
161 return answer
162
163 # Massage the answer into a valid integer
164 if answer == '' and default:
165 answer = default
166 else:
167 try:
168 answer = int(answer) - 1
169 except Exception:
170 # Normally we would log the exception here, but in the interest of clean UI we do not.
171 cli.log.error('Invalid choice: %s', answer + 1)
172 continue
173
174 # Validate the answer
175 if answer >= len(options) or answer < 0:
176 cli.log.error('Invalid choice: %s', answer + 1)
177 continue
178
179 if confirm and not yesno('Is the answer "%s" correct?', answer + 1, default=True):
180 continue
181
182 # Return the answer they chose.
183 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)
5 OK_COLOR=\033[32;01m 5 OK_COLOR=\033[32;01m
6 ERROR_COLOR=\033[31;01m 6 ERROR_COLOR=\033[31;01m
7 WARN_COLOR=\033[33;01m 7 WARN_COLOR=\033[33;01m
8 SKIPPED_COLOR=\033[36;01m
8 BLUE=\033[0;34m 9 BLUE=\033[0;34m
9 BOLD=\033[1m 10 BOLD=\033[1m
10endif 11endif
@@ -20,6 +21,7 @@ ON_ERROR ?= exit 1
20OK_STRING=$(OK_COLOR)[OK]$(NO_COLOR)\n 21OK_STRING=$(OK_COLOR)[OK]$(NO_COLOR)\n
21ERROR_STRING=$(ERROR_COLOR)[ERRORS]$(NO_COLOR)\n 22ERROR_STRING=$(ERROR_COLOR)[ERRORS]$(NO_COLOR)\n
22WARN_STRING=$(WARN_COLOR)[WARNINGS]$(NO_COLOR)\n 23WARN_STRING=$(WARN_COLOR)[WARNINGS]$(NO_COLOR)\n
24SKIPPED_STRING=$(SKIPPED_COLOR)[SKIPPED]$(NO_COLOR)\n
23 25
24TAB_LOG = printf "\n%s\n\n" "$$LOG" | $(AWK) '{ sub(/^/," | "); print }' 26TAB_LOG = printf "\n%s\n\n" "$$LOG" | $(AWK) '{ sub(/^/," | "); print }'
25TAB_LOG_PLAIN = printf "%s\n" "$$LOG" 27TAB_LOG_PLAIN = printf "%s\n" "$$LOG"
@@ -29,6 +31,7 @@ PRINT_ERROR = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_L
29PRINT_WARNING = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG) 31PRINT_WARNING = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG)
30PRINT_ERROR_PLAIN = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN) && $(ON_ERROR) 32PRINT_ERROR_PLAIN = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN) && $(ON_ERROR)
31PRINT_WARNING_PLAIN = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN) 33PRINT_WARNING_PLAIN = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN)
34PRINT_SKIPPED_PLAIN = ($(SILENT) || printf " $(SKIPPED_STRING)" | $(AWK_STATUS))
32PRINT_OK = $(SILENT) || printf " $(OK_STRING)" | $(AWK_STATUS) 35PRINT_OK = $(SILENT) || printf " $(OK_STRING)" | $(AWK_STATUS)
33BUILD_CMD = LOG=$$($(CMD) 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING); else $(PRINT_OK); fi; 36BUILD_CMD = LOG=$$($(CMD) 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING); else $(PRINT_OK); fi;
34MAKE_MSG_FORMAT = $(AWK) '{ printf "%-118s", $$0;}' 37MAKE_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 @@
20#define STM32_LSECLK 32768U 20#define STM32_LSECLK 32768U
21#define STM32_HSECLK 25000000U 21#define STM32_HSECLK 25000000U
22 22
23#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE 23#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
24# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
25#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 @@
20#define STM32_LSECLK 32768U 20#define STM32_LSECLK 32768U
21#define STM32_HSECLK 25000000U 21#define STM32_HSECLK 25000000U
22 22
23#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE 23#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
24# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
25#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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
3 Licensed under the Apache License, Version 2.0 (the "License");
4 you may not use this file except in compliance with the License.
5 You may obtain a copy of the License at
6 http://www.apache.org/licenses/LICENSE-2.0
7 Unless required by applicable law or agreed to in writing, software
8 distributed under the License is distributed on an "AS IS" BASIS,
9 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 See the License for the specific language governing permissions and
11 limitations under the License.
12*/
13
14#ifndef _MCUCONF_H_
15#define _MCUCONF_H_
16
17/*
18 * STM32F0xx drivers configuration.
19 * The following settings override the default settings present in
20 * the various device driver implementation headers.
21 * Note that the settings for each driver only have effect if the whole
22 * driver is enabled in halconf.h.
23 *
24 * IRQ priorities:
25 * 3...0 Lowest...Highest.
26 *
27 * DMA priorities:
28 * 0...3 Lowest...Highest.
29 */
30
31#define STM32F0xx_MCUCONF
32
33/*
34 * HAL driver system settings.
35 */
36#define STM32_NO_INIT FALSE
37#define STM32_PVD_ENABLE FALSE
38#define STM32_PLS STM32_PLS_LEV0
39#define STM32_HSI_ENABLED TRUE
40#define STM32_HSI14_ENABLED TRUE
41#define STM32_HSI48_ENABLED FALSE
42#define STM32_LSI_ENABLED TRUE
43#define STM32_HSE_ENABLED FALSE
44#define STM32_LSE_ENABLED FALSE
45#define STM32_SW STM32_SW_PLL
46#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2
47#define STM32_PREDIV_VALUE 1
48#define STM32_PLLMUL_VALUE 12
49#define STM32_HPRE STM32_HPRE_DIV1
50#define STM32_PPRE STM32_PPRE_DIV1
51#define STM32_ADCSW STM32_ADCSW_HSI14
52#define STM32_ADCPRE STM32_ADCPRE_DIV4
53#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
54#define STM32_ADCPRE STM32_ADCPRE_DIV4
55#define STM32_ADCSW STM32_ADCSW_HSI14
56#define STM32_USBSW STM32_USBSW_HSI48
57#define STM32_CECSW STM32_CECSW_HSI
58#define STM32_I2C1SW STM32_I2C1SW_HSI
59#define STM32_USART1SW STM32_USART1SW_PCLK
60#define STM32_RTCSEL STM32_RTCSEL_LSI
61
62/*
63 * ADC driver system settings.
64 */
65#define STM32_ADC_USE_ADC1 FALSE
66#define STM32_ADC_ADC1_DMA_PRIORITY 2
67#define STM32_ADC_IRQ_PRIORITY 2
68#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2
69
70/*
71 * EXT driver system settings.
72 */
73#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3
74#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3
75#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3
76#define STM32_EXT_EXTI16_IRQ_PRIORITY 3
77#define STM32_EXT_EXTI17_IRQ_PRIORITY 3
78
79/*
80 * GPT driver system settings.
81 */
82#define STM32_GPT_USE_TIM1 FALSE
83#define STM32_GPT_USE_TIM2 FALSE
84#define STM32_GPT_USE_TIM3 FALSE
85#define STM32_GPT_USE_TIM14 FALSE
86#define STM32_GPT_TIM1_IRQ_PRIORITY 2
87#define STM32_GPT_TIM2_IRQ_PRIORITY 2
88#define STM32_GPT_TIM3_IRQ_PRIORITY 2
89#define STM32_GPT_TIM14_IRQ_PRIORITY 2
90
91/*
92 * I2C driver system settings.
93 */
94#define STM32_I2C_USE_I2C1 FALSE
95#define STM32_I2C_USE_I2C2 FALSE
96#define STM32_I2C_BUSY_TIMEOUT 50
97#define STM32_I2C_I2C1_IRQ_PRIORITY 3
98#define STM32_I2C_I2C2_IRQ_PRIORITY 3
99#define STM32_I2C_USE_DMA TRUE
100#define STM32_I2C_I2C1_DMA_PRIORITY 1
101#define STM32_I2C_I2C2_DMA_PRIORITY 1
102#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
103
104/*
105 * ICU driver system settings.
106 */
107#define STM32_ICU_USE_TIM1 FALSE
108#define STM32_ICU_USE_TIM2 FALSE
109#define STM32_ICU_USE_TIM3 FALSE
110#define STM32_ICU_TIM1_IRQ_PRIORITY 3
111#define STM32_ICU_TIM2_IRQ_PRIORITY 3
112#define STM32_ICU_TIM3_IRQ_PRIORITY 3
113
114/*
115 * PWM driver system settings.
116 */
117#define STM32_PWM_USE_ADVANCED FALSE
118#define STM32_PWM_USE_TIM1 FALSE
119#define STM32_PWM_USE_TIM2 FALSE
120#define STM32_PWM_USE_TIM3 FALSE
121#define STM32_PWM_TIM1_IRQ_PRIORITY 3
122#define STM32_PWM_TIM2_IRQ_PRIORITY 3
123#define STM32_PWM_TIM3_IRQ_PRIORITY 3
124
125/*
126 * SERIAL driver system settings.
127 */
128#define STM32_SERIAL_USE_USART1 FALSE
129#define STM32_SERIAL_USE_USART2 FALSE
130#define STM32_SERIAL_USART1_PRIORITY 3
131#define STM32_SERIAL_USART2_PRIORITY 3
132
133/*
134 * SPI driver system settings.
135 */
136#define STM32_SPI_USE_SPI1 FALSE
137#define STM32_SPI_USE_SPI2 FALSE
138#define STM32_SPI_SPI1_DMA_PRIORITY 1
139#define STM32_SPI_SPI2_DMA_PRIORITY 1
140#define STM32_SPI_SPI1_IRQ_PRIORITY 2
141#define STM32_SPI_SPI2_IRQ_PRIORITY 2
142#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
143
144/*
145 * ST driver system settings.
146 */
147#define STM32_ST_IRQ_PRIORITY 2
148#define STM32_ST_USE_TIMER 2
149
150/*
151 * UART driver system settings.
152 */
153#define STM32_UART_USE_USART1 FALSE
154#define STM32_UART_USE_USART2 FALSE
155#define STM32_UART_USART1_IRQ_PRIORITY 3
156#define STM32_UART_USART2_IRQ_PRIORITY 3
157#define STM32_UART_USART1_DMA_PRIORITY 0
158#define STM32_UART_USART2_DMA_PRIORITY 0
159#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
160
161/*
162 * USB driver system settings.
163 */
164#define STM32_USB_USE_USB1 TRUE
165#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
166#define STM32_USB_USB1_LP_IRQ_PRIORITY 3
167
168#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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17/*
18 * This file has been automatically generated using ChibiStudio board
19 * generator plugin. Do not edit manually.
20 */
21
22#include "hal.h"
23#include "stm32_gpio.h"
24
25/*===========================================================================*/
26/* Driver local definitions. */
27/*===========================================================================*/
28
29/*===========================================================================*/
30/* Driver exported variables. */
31/*===========================================================================*/
32
33/*===========================================================================*/
34/* Driver local variables and types. */
35/*===========================================================================*/
36
37/**
38 * @brief Type of STM32 GPIO port setup.
39 */
40typedef struct {
41 uint32_t moder;
42 uint32_t otyper;
43 uint32_t ospeedr;
44 uint32_t pupdr;
45 uint32_t odr;
46 uint32_t afrl;
47 uint32_t afrh;
48} gpio_setup_t;
49
50/**
51 * @brief Type of STM32 GPIO initialization data.
52 */
53typedef struct {
54#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
55 gpio_setup_t PAData;
56#endif
57#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
58 gpio_setup_t PBData;
59#endif
60#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
61 gpio_setup_t PCData;
62#endif
63#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
64 gpio_setup_t PDData;
65#endif
66#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
67 gpio_setup_t PEData;
68#endif
69#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
70 gpio_setup_t PFData;
71#endif
72#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
73 gpio_setup_t PGData;
74#endif
75#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
76 gpio_setup_t PHData;
77#endif
78#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
79 gpio_setup_t PIData;
80#endif
81#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
82 gpio_setup_t PJData;
83#endif
84#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
85 gpio_setup_t PKData;
86#endif
87} gpio_config_t;
88
89/**
90 * @brief STM32 GPIO static initialization data.
91 */
92static const gpio_config_t gpio_default_config = {
93#if STM32_HAS_GPIOA
94 {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
95#endif
96#if STM32_HAS_GPIOB
97 {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
98#endif
99#if STM32_HAS_GPIOC
100 {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
101#endif
102#if STM32_HAS_GPIOD
103 {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
104#endif
105#if STM32_HAS_GPIOE
106 {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
107#endif
108#if STM32_HAS_GPIOF
109 {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
110#endif
111#if STM32_HAS_GPIOG
112 {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
113#endif
114#if STM32_HAS_GPIOH
115 {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
116#endif
117#if STM32_HAS_GPIOI
118 {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
119#endif
120#if STM32_HAS_GPIOJ
121 {VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR, VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
122#endif
123#if STM32_HAS_GPIOK
124 {VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR, VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
125#endif
126};
127
128/*===========================================================================*/
129/* Driver local functions. */
130/*===========================================================================*/
131
132static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
133 gpiop->OTYPER = config->otyper;
134 gpiop->OSPEEDR = config->ospeedr;
135 gpiop->PUPDR = config->pupdr;
136 gpiop->ODR = config->odr;
137 gpiop->AFRL = config->afrl;
138 gpiop->AFRH = config->afrh;
139 gpiop->MODER = config->moder;
140}
141
142static void stm32_gpio_init(void) {
143 /* Enabling GPIO-related clocks, the mask comes from the
144 registry header file.*/
145 rccResetAHB(STM32_GPIO_EN_MASK);
146 rccEnableAHB(STM32_GPIO_EN_MASK, true);
147
148 /* Initializing all the defined GPIO ports.*/
149#if STM32_HAS_GPIOA
150 gpio_init(GPIOA, &gpio_default_config.PAData);
151#endif
152#if STM32_HAS_GPIOB
153 gpio_init(GPIOB, &gpio_default_config.PBData);
154#endif
155#if STM32_HAS_GPIOC
156 gpio_init(GPIOC, &gpio_default_config.PCData);
157#endif
158#if STM32_HAS_GPIOD
159 gpio_init(GPIOD, &gpio_default_config.PDData);
160#endif
161#if STM32_HAS_GPIOE
162 gpio_init(GPIOE, &gpio_default_config.PEData);
163#endif
164#if STM32_HAS_GPIOF
165 gpio_init(GPIOF, &gpio_default_config.PFData);
166#endif
167#if STM32_HAS_GPIOG
168 gpio_init(GPIOG, &gpio_default_config.PGData);
169#endif
170#if STM32_HAS_GPIOH
171 gpio_init(GPIOH, &gpio_default_config.PHData);
172#endif
173#if STM32_HAS_GPIOI
174 gpio_init(GPIOI, &gpio_default_config.PIData);
175#endif
176#if STM32_HAS_GPIOJ
177 gpio_init(GPIOJ, &gpio_default_config.PJData);
178#endif
179#if STM32_HAS_GPIOK
180 gpio_init(GPIOK, &gpio_default_config.PKData);
181#endif
182}
183
184/*===========================================================================*/
185/* Driver interrupt handlers. */
186/*===========================================================================*/
187
188/*===========================================================================*/
189/* Driver exported functions. */
190/*===========================================================================*/
191
192__attribute__((weak)) void enter_bootloader_mode_if_requested(void) {}
193
194/**
195 * @brief Early initialization code.
196 * @details GPIO ports and system clocks are initialized before everything
197 * else.
198 */
199void __early_init(void) {
200 enter_bootloader_mode_if_requested();
201
202 stm32_gpio_init();
203 stm32_clock_init();
204}
205
206#if HAL_USE_SDC || defined(__DOXYGEN__)
207/**
208 * @brief SDC card detection.
209 */
210bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
211 (void)sdcp;
212 /* TODO: Fill the implementation.*/
213 return true;
214}
215
216/**
217 * @brief SDC card write protection detection.
218 */
219bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
220 (void)sdcp;
221 /* TODO: Fill the implementation.*/
222 return false;
223}
224#endif /* HAL_USE_SDC */
225
226#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
227/**
228 * @brief MMC_SPI card detection.
229 */
230bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
231 (void)mmcp;
232 /* TODO: Fill the implementation.*/
233 return true;
234}
235
236/**
237 * @brief MMC_SPI card write protection detection.
238 */
239bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
240 (void)mmcp;
241 /* TODO: Fill the implementation.*/
242 return false;
243}
244#endif
245
246/**
247 * @brief Board-specific initialization code.
248 * @todo Add your board-specific code, if any.
249 */
250void 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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17/*
18 * This file has been automatically generated using ChibiStudio board
19 * generator plugin. Do not edit manually.
20 */
21
22#ifndef BOARD_H
23#define BOARD_H
24
25/*===========================================================================*/
26/* Driver constants. */
27/*===========================================================================*/
28
29/*
30 * Setup for Generic STM32_F072 Board
31 */
32
33/*
34 * Board identifier.
35 */
36#define BOARD_GENERIC_STM32_F072XB
37#define BOARD_NAME "STM32_F072"
38
39/*
40 * Board oscillators-related settings.
41 * NOTE: LSE not fitted.
42 * NOTE: HSE not fitted.
43 */
44#if !defined(STM32_LSECLK)
45# define STM32_LSECLK 0U
46#endif
47
48#define STM32_LSEDRV (3U << 3U)
49
50#if !defined(STM32_HSECLK)
51# define STM32_HSECLK 0U
52#endif
53
54#define STM32_HSE_BYPASS
55
56/*
57 * MCU type as defined in the ST header.
58 */
59#define STM32F072xB
60
61/*
62 * IO pins assignments.
63 */
64#define GPIOA_BUTTON 0U
65#define GPIOA_PIN1 1U
66#define GPIOA_PIN2 2U
67#define GPIOA_PIN3 3U
68#define GPIOA_PIN4 4U
69#define GPIOA_PIN5 5U
70#define GPIOA_PIN6 6U
71#define GPIOA_PIN7 7U
72#define GPIOA_PIN8 8U
73#define GPIOA_PIN9 9U
74#define GPIOA_PIN10 10U
75#define GPIOA_USB_DM 11U
76#define GPIOA_USB_DP 12U
77#define GPIOA_SWDIO 13U
78#define GPIOA_SWCLK 14U
79#define GPIOA_PIN15 15U
80
81#define GPIOB_PIN0 0U
82#define GPIOB_PIN1 1U
83#define GPIOB_PIN2 2U
84#define GPIOB_PIN3 3U
85#define GPIOB_PIN4 4U
86#define GPIOB_PIN5 5U
87#define GPIOB_PIN6 6U
88#define GPIOB_PIN7 7U
89#define GPIOB_PIN8 8U
90#define GPIOB_PIN9 9U
91#define GPIOB_PIN10 10U
92#define GPIOB_PIN11 11U
93#define GPIOB_PIN12 12U
94#define GPIOB_SPI2_SCK 13U
95#define GPIOB_SPI2_MISO 14U
96#define GPIOB_SPI2_MOSI 15U
97
98#define GPIOC_MEMS_CS 0U
99#define GPIOC_PIN1 1U
100#define GPIOC_PIN2 2U
101#define GPIOC_PIN3 3U
102#define GPIOC_PIN4 4U
103#define GPIOC_PIN5 5U
104#define GPIOC_LED_RED 6U
105#define GPIOC_LED_BLUE 7U
106#define GPIOC_LED_ORANGE 8U
107#define GPIOC_LED_GREEN 9U
108#define GPIOC_PIN10 10U
109#define GPIOC_PIN11 11U
110#define GPIOC_PIN12 12U
111#define GPIOC_PIN13 13U
112#define GPIOC_OSC32_IN 14U
113#define GPIOC_OSC32_OUT 15U
114
115#define GPIOD_PIN0 0U
116#define GPIOD_PIN1 1U
117#define GPIOD_PIN2 2U
118#define GPIOD_PIN3 3U
119#define GPIOD_PIN4 4U
120#define GPIOD_PIN5 5U
121#define GPIOD_PIN6 6U
122#define GPIOD_PIN7 7U
123#define GPIOD_PIN8 8U
124#define GPIOD_PIN9 9U
125#define GPIOD_PIN10 10U
126#define GPIOD_PIN11 11U
127#define GPIOD_PIN12 12U
128#define GPIOD_PIN13 13U
129#define GPIOD_PIN14 14U
130#define GPIOD_PIN15 15U
131
132#define GPIOE_PIN0 0U
133#define GPIOE_PIN1 1U
134#define GPIOE_PIN2 2U
135#define GPIOE_PIN3 3U
136#define GPIOE_PIN4 4U
137#define GPIOE_PIN5 5U
138#define GPIOE_PIN6 6U
139#define GPIOE_PIN7 7U
140#define GPIOE_PIN8 8U
141#define GPIOE_PIN9 9U
142#define GPIOE_PIN10 10U
143#define GPIOE_PIN11 11U
144#define GPIOE_PIN12 12U
145#define GPIOE_PIN13 13U
146#define GPIOE_PIN14 14U
147#define GPIOE_PIN15 15U
148
149#define GPIOF_OSC_IN 0U
150#define GPIOF_OSC_OUT 1U
151#define GPIOF_PIN2 2U
152#define GPIOF_PIN3 3U
153#define GPIOF_PIN4 4U
154#define GPIOF_PIN5 5U
155#define GPIOF_PIN6 6U
156#define GPIOF_PIN7 7U
157#define GPIOF_PIN8 8U
158#define GPIOF_PIN9 9U
159#define GPIOF_PIN10 10U
160#define GPIOF_PIN11 11U
161#define GPIOF_PIN12 12U
162#define GPIOF_PIN13 13U
163#define GPIOF_PIN14 14U
164#define GPIOF_PIN15 15U
165
166/*
167 * IO lines assignments.
168 */
169#define LINE_BUTTON PAL_LINE(GPIOA, 0U)
170#define LINE_USB_DM PAL_LINE(GPIOA, 11U)
171#define LINE_USB_DP PAL_LINE(GPIOA, 12U)
172#define LINE_SWDIO PAL_LINE(GPIOA, 13U)
173#define LINE_SWCLK PAL_LINE(GPIOA, 14U)
174#define LINE_SPI2_SCK PAL_LINE(GPIOB, 13U)
175#define LINE_SPI2_MISO PAL_LINE(GPIOB, 14U)
176#define LINE_SPI2_MOSI PAL_LINE(GPIOB, 15U)
177#define LINE_MEMS_CS PAL_LINE(GPIOC, 0U)
178#define LINE_LED_RED PAL_LINE(GPIOC, 6U)
179#define LINE_LED_BLUE PAL_LINE(GPIOC, 7U)
180#define LINE_LED_ORANGE PAL_LINE(GPIOC, 8U)
181#define LINE_LED_GREEN PAL_LINE(GPIOC, 9U)
182#define LINE_OSC32_IN PAL_LINE(GPIOC, 14U)
183#define LINE_OSC32_OUT PAL_LINE(GPIOC, 15U)
184#define LINE_OSC_IN PAL_LINE(GPIOF, 0U)
185#define LINE_OSC_OUT PAL_LINE(GPIOF, 1U)
186
187/*===========================================================================*/
188/* Driver pre-compile time settings. */
189/*===========================================================================*/
190
191/*===========================================================================*/
192/* Derived constants and error checks. */
193/*===========================================================================*/
194
195/*===========================================================================*/
196/* Driver data structures and types. */
197/*===========================================================================*/
198
199/*===========================================================================*/
200/* Driver macros. */
201/*===========================================================================*/
202
203/*
204 * I/O ports initial setup, this configuration is established soon after reset
205 * in the initialization code.
206 * Please refer to the STM32 Reference Manual for details.
207 */
208#define PIN_MODE_INPUT(n) (0U << ((n)*2U))
209#define PIN_MODE_OUTPUT(n) (1U << ((n)*2U))
210#define PIN_MODE_ALTERNATE(n) (2U << ((n)*2U))
211#define PIN_MODE_ANALOG(n) (3U << ((n)*2U))
212#define PIN_ODR_LOW(n) (0U << (n))
213#define PIN_ODR_HIGH(n) (1U << (n))
214#define PIN_OTYPE_PUSHPULL(n) (0U << (n))
215#define PIN_OTYPE_OPENDRAIN(n) (1U << (n))
216#define PIN_OSPEED_VERYLOW(n) (0U << ((n)*2U))
217#define PIN_OSPEED_LOW(n) (1U << ((n)*2U))
218#define PIN_OSPEED_MEDIUM(n) (2U << ((n)*2U))
219#define PIN_OSPEED_HIGH(n) (3U << ((n)*2U))
220#define PIN_PUPDR_FLOATING(n) (0U << ((n)*2U))
221#define PIN_PUPDR_PULLUP(n) (1U << ((n)*2U))
222#define PIN_PUPDR_PULLDOWN(n) (2U << ((n)*2U))
223#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U))
224
225/*
226 * GPIOA setup:
227 *
228 * PA0 - BUTTON (input floating).
229 * PA1 - PIN1 (input pullup).
230 * PA2 - PIN2 (input pullup).
231 * PA3 - PIN3 (input pullup).
232 * PA4 - PIN4 (input pullup).
233 * PA5 - PIN5 (input pullup).
234 * PA6 - PIN6 (input pullup).
235 * PA7 - PIN7 (input pullup).
236 * PA8 - PIN8 (input pullup).
237 * PA9 - PIN9 (input pullup).
238 * PA10 - PIN10 (input pullup).
239 * PA11 - USB_DM (input floating).
240 * PA12 - USB_DP (input floating).
241 * PA13 - SWDIO (alternate 0).
242 * PA14 - SWCLK (alternate 0).
243 * PA15 - PIN15 (input pullup).
244 */
245#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))
246#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))
247#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))
248#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))
249#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))
250#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))
251#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))
252
253/*
254 * GPIOB setup:
255 *
256 * PB0 - PIN0 (input pullup).
257 * PB1 - PIN1 (input pullup).
258 * PB2 - PIN2 (input pullup).
259 * PB3 - PIN3 (input pullup).
260 * PB4 - PIN4 (input pullup).
261 * PB5 - PIN5 (input pullup).
262 * PB6 - PIN6 (input pullup).
263 * PB7 - PIN7 (input pullup).
264 * PB8 - PIN8 (input pullup).
265 * PB9 - PIN9 (input pullup).
266 * PB10 - PIN10 (input pullup).
267 * PB11 - PIN11 (input pullup).
268 * PB12 - PIN12 (input pullup).
269 * PB13 - SPI2_SCK (alternate 0).
270 * PB14 - SPI2_MISO (alternate 0).
271 * PB15 - SPI2_MOSI (alternate 0).
272 */
273#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))
274#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))
275#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))
276#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))
277#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))
278#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))
279#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))
280
281/*
282 * GPIOC setup:
283 *
284 * PC0 - MEMS_CS (output pushpull maximum).
285 * PC1 - PIN1 (input pullup).
286 * PC2 - PIN2 (input pullup).
287 * PC3 - PIN3 (input pullup).
288 * PC4 - PIN4 (input pullup).
289 * PC5 - PIN5 (input pullup).
290 * PC6 - LED_RED (output pushpull maximum).
291 * PC7 - LED_BLUE (output pushpull maximum).
292 * PC8 - LED_ORANGE (output pushpull maximum).
293 * PC9 - LED_GREEN (output pushpull maximum).
294 * PC10 - PIN10 (input pullup).
295 * PC11 - PIN11 (input pullup).
296 * PC12 - PIN12 (input pullup).
297 * PC13 - PIN13 (input pullup).
298 * PC14 - OSC32_IN (input floating).
299 * PC15 - OSC32_OUT (input floating).
300 */
301#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))
302#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))
303#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))
304#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))
305#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))
306#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))
307#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))
308
309/*
310 * GPIOD setup:
311 *
312 * PD0 - PIN0 (input pullup).
313 * PD1 - PIN1 (input pullup).
314 * PD2 - PIN2 (input pullup).
315 * PD3 - PIN3 (input pullup).
316 * PD4 - PIN4 (input pullup).
317 * PD5 - PIN5 (input pullup).
318 * PD6 - PIN6 (input pullup).
319 * PD7 - PIN7 (input pullup).
320 * PD8 - PIN8 (input pullup).
321 * PD9 - PIN9 (input pullup).
322 * PD10 - PIN10 (input pullup).
323 * PD11 - PIN11 (input pullup).
324 * PD12 - PIN12 (input pullup).
325 * PD13 - PIN13 (input pullup).
326 * PD14 - PIN14 (input pullup).
327 * PD15 - PIN15 (input pullup).
328 */
329#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))
330#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))
331#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))
332#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))
333#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))
334#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))
335#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))
336
337/*
338 * GPIOE setup:
339 *
340 * PE0 - PIN0 (input pullup).
341 * PE1 - PIN1 (input pullup).
342 * PE2 - PIN2 (input pullup).
343 * PE3 - PIN3 (input pullup).
344 * PE4 - PIN4 (input pullup).
345 * PE5 - PIN5 (input pullup).
346 * PE6 - PIN6 (input pullup).
347 * PE7 - PIN7 (input pullup).
348 * PE8 - PIN8 (input pullup).
349 * PE9 - PIN9 (input pullup).
350 * PE10 - PIN10 (input pullup).
351 * PE11 - PIN11 (input pullup).
352 * PE12 - PIN12 (input pullup).
353 * PE13 - PIN13 (input pullup).
354 * PE14 - PIN14 (input pullup).
355 * PE15 - PIN15 (input pullup).
356 */
357#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))
358#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))
359#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))
360#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))
361#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))
362#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))
363#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))
364
365/*
366 * GPIOF setup:
367 *
368 * PF0 - OSC_IN (input floating).
369 * PF1 - OSC_OUT (input floating).
370 * PF2 - PIN2 (input pullup).
371 * PF3 - PIN3 (input pullup).
372 * PF4 - PIN4 (input pullup).
373 * PF5 - PIN5 (input pullup).
374 * PF6 - PIN6 (input pullup).
375 * PF7 - PIN7 (input pullup).
376 * PF8 - PIN8 (input pullup).
377 * PF9 - PIN9 (input pullup).
378 * PF10 - PIN10 (input pullup).
379 * PF11 - PIN11 (input pullup).
380 * PF12 - PIN12 (input pullup).
381 * PF13 - PIN13 (input pullup).
382 * PF14 - PIN14 (input pullup).
383 * PF15 - PIN15 (input pullup).
384 */
385#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))
386#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))
387#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))
388#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))
389#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))
390#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))
391#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))
392
393/*===========================================================================*/
394/* External declarations. */
395/*===========================================================================*/
396
397#if !defined(_FROM_ASM_)
398# ifdef __cplusplus
399extern "C" {
400# endif
401void boardInit(void);
402# ifdef __cplusplus
403}
404# endif
405#endif /* _FROM_ASM_ */
406
407#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 @@
1# List of all the board related files. 1# List of all the board related files.
2BOARDSRC = $(BOARD_PATH)/board/board.c 2BOARDSRC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F072RB/board.c
3 3
4# Required include directories 4# Required include directories
5BOARDINC = $(BOARD_PATH)/board 5BOARDINC = $(CHIBIOS)/os/hal/boards/ST_NUCLEO64_F072RB
6 6
7# Shared variables 7# Shared variables
8ALLCSRC += $(BOARDSRC) 8ALLCSRC += $(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 @@
1/* Copyright 2020 Nick Brassel (tzarc)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <https://www.gnu.org/licenses/>.
15 */
16#pragma once
17
18#include_next "board.h"
19
20#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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17#ifndef _MCUCONF_H_
18#define _MCUCONF_H_
19
20/*
21 * STM32F0xx drivers configuration.
22 * The following settings override the default settings present in
23 * the various device driver implementation headers.
24 * Note that the settings for each driver only have effect if the whole
25 * driver is enabled in halconf.h.
26 *
27 * IRQ priorities:
28 * 3...0 Lowest...Highest.
29 *
30 * DMA priorities:
31 * 0...3 Lowest...Highest.
32 */
33
34#define STM32F0xx_MCUCONF
35// #define STM32F070xB
36
37/*
38 * HAL driver system settings.
39 */
40#define STM32_NO_INIT FALSE
41#define STM32_PVD_ENABLE FALSE
42#define STM32_PLS STM32_PLS_LEV0
43#define STM32_HSI_ENABLED TRUE
44#define STM32_HSI14_ENABLED TRUE
45#define STM32_HSI48_ENABLED FALSE
46#define STM32_LSI_ENABLED TRUE
47#define STM32_HSE_ENABLED FALSE
48#define STM32_LSE_ENABLED FALSE
49#define STM32_SW STM32_SW_PLL
50#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2
51#define STM32_PREDIV_VALUE 1
52#define STM32_PLLMUL_VALUE 12
53#define STM32_HPRE STM32_HPRE_DIV1
54#define STM32_PPRE STM32_PPRE_DIV1
55#define STM32_ADCSW STM32_ADCSW_HSI14
56#define STM32_ADCPRE STM32_ADCPRE_DIV4
57#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
58#define STM32_ADCPRE STM32_ADCPRE_DIV4
59#define STM32_ADCSW STM32_ADCSW_HSI14
60#define STM32_USBSW STM32_USBSW_HSI48
61#define STM32_CECSW STM32_CECSW_HSI
62#define STM32_I2C1SW STM32_I2C1SW_HSI
63#define STM32_USART1SW STM32_USART1SW_PCLK
64#define STM32_RTCSEL STM32_RTCSEL_LSI
65
66/*
67 * IRQ system settings.
68 */
69#define STM32_IRQ_EXTI0_1_IRQ_PRIORITY 3
70#define STM32_IRQ_EXTI2_3_IRQ_PRIORITY 3
71#define STM32_IRQ_EXTI4_15_IRQ_PRIORITY 3
72#define STM32_IRQ_EXTI16_IRQ_PRIORITY 3
73#define STM32_IRQ_EXTI17_20_IRQ_PRIORITY 3
74#define STM32_IRQ_EXTI21_22_IRQ_PRIORITY 3
75
76/*
77 * ADC driver system settings.
78 */
79#define STM32_ADC_USE_ADC1 FALSE
80#define STM32_ADC_ADC1_DMA_PRIORITY 2
81#define STM32_ADC_IRQ_PRIORITY 2
82#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2
83
84/*
85 * GPT driver system settings.
86 */
87#define STM32_GPT_USE_TIM1 FALSE
88#define STM32_GPT_USE_TIM2 FALSE
89#define STM32_GPT_USE_TIM3 FALSE
90#define STM32_GPT_USE_TIM14 FALSE
91#define STM32_GPT_TIM1_IRQ_PRIORITY 2
92#define STM32_GPT_TIM2_IRQ_PRIORITY 2
93#define STM32_GPT_TIM3_IRQ_PRIORITY 2
94#define STM32_GPT_TIM14_IRQ_PRIORITY 2
95
96/*
97 * I2C driver system settings.
98 */
99#define STM32_I2C_USE_I2C1 FALSE
100#define STM32_I2C_USE_I2C2 FALSE
101#define STM32_I2C_BUSY_TIMEOUT 50
102#define STM32_I2C_I2C1_IRQ_PRIORITY 3
103#define STM32_I2C_I2C2_IRQ_PRIORITY 3
104#define STM32_I2C_USE_DMA TRUE
105#define STM32_I2C_I2C1_DMA_PRIORITY 1
106#define STM32_I2C_I2C2_DMA_PRIORITY 1
107#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
108#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
109#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
110
111/*
112 * ICU driver system settings.
113 */
114#define STM32_ICU_USE_TIM1 FALSE
115#define STM32_ICU_USE_TIM2 FALSE
116#define STM32_ICU_USE_TIM3 FALSE
117#define STM32_ICU_TIM1_IRQ_PRIORITY 3
118#define STM32_ICU_TIM2_IRQ_PRIORITY 3
119#define STM32_ICU_TIM3_IRQ_PRIORITY 3
120
121/*
122 * PWM driver system settings.
123 */
124#define STM32_PWM_USE_ADVANCED FALSE
125#define STM32_PWM_USE_TIM1 FALSE
126#define STM32_PWM_USE_TIM2 FALSE
127#define STM32_PWM_USE_TIM3 TRUE
128#define STM32_PWM_TIM1_IRQ_PRIORITY 3
129#define STM32_PWM_TIM2_IRQ_PRIORITY 3
130#define STM32_PWM_TIM3_IRQ_PRIORITY 3
131
132/*
133 * SERIAL driver system settings.
134 */
135#define STM32_SERIAL_USE_USART1 FALSE
136#define STM32_SERIAL_USE_USART2 FALSE
137#define STM32_SERIAL_USART1_PRIORITY 3
138#define STM32_SERIAL_USART2_PRIORITY 3
139
140/*
141 * SPI driver system settings.
142 */
143#define STM32_SPI_USE_SPI1 FALSE
144#define STM32_SPI_USE_SPI2 TRUE
145#define STM32_SPI_SPI1_DMA_PRIORITY 1
146#define STM32_SPI_SPI2_DMA_PRIORITY 1
147#define STM32_SPI_SPI1_IRQ_PRIORITY 2
148#define STM32_SPI_SPI2_IRQ_PRIORITY 2
149#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
150#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
151#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
152
153/*
154 * ST driver system settings.
155 */
156#define STM32_ST_IRQ_PRIORITY 2
157#define STM32_ST_USE_TIMER 2
158
159/*
160 * UART driver system settings.
161 */
162#define STM32_UART_USE_USART1 FALSE
163#define STM32_UART_USE_USART2 FALSE
164#define STM32_UART_USART1_IRQ_PRIORITY 3
165#define STM32_UART_USART2_IRQ_PRIORITY 3
166#define STM32_UART_USART1_DMA_PRIORITY 0
167#define STM32_UART_USART2_DMA_PRIORITY 0
168#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
169
170/*
171 * USB driver system settings.
172 */
173#define STM32_USB_USE_USB1 TRUE
174#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
175#define STM32_USB_USB1_LP_IRQ_PRIORITY 3
176
177#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 @@
15 */ 15 */
16#pragma once 16#pragma once
17 17
18#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE 18#ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP
19# define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
20#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 @@
1/*
2 ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17#ifndef _MCUCONF_H_
18#define _MCUCONF_H_
19
20#define STM32F103_MCUCONF
21
22/*
23 * STM32F103 drivers configuration.
24 * The following settings override the default settings present in
25 * the various device driver implementation headers.
26 * Note that the settings for each driver only have effect if the whole
27 * driver is enabled in halconf.h.
28 *
29 * IRQ priorities:
30 * 15...0 Lowest...Highest.
31 *
32 * DMA priorities:
33 * 0...3 Lowest...Highest.
34 */
35
36/*
37 * HAL driver system settings.
38 */
39#define STM32_NO_INIT FALSE
40#define STM32_HSI_ENABLED TRUE
41#define STM32_LSI_ENABLED FALSE
42#define STM32_HSE_ENABLED TRUE
43#define STM32_LSE_ENABLED FALSE
44#define STM32_SW STM32_SW_PLL
45#define STM32_PLLSRC STM32_PLLSRC_HSE
46#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1
47#define STM32_PLLMUL_VALUE 9
48#define STM32_HPRE STM32_HPRE_DIV1
49#define STM32_PPRE1 STM32_PPRE1_DIV2
50#define STM32_PPRE2 STM32_PPRE2_DIV2
51#define STM32_ADCPRE STM32_ADCPRE_DIV4
52#define STM32_USB_CLOCK_REQUIRED TRUE
53#define STM32_USBPRE STM32_USBPRE_DIV1P5
54#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
55#define STM32_RTCSEL STM32_RTCSEL_HSEDIV
56#define STM32_PVD_ENABLE FALSE
57#define STM32_PLS STM32_PLS_LEV0
58
59/*
60 * ADC driver system settings.
61 */
62#define STM32_ADC_USE_ADC1 FALSE
63#define STM32_ADC_ADC1_DMA_PRIORITY 2
64#define STM32_ADC_ADC1_IRQ_PRIORITY 6
65
66/*
67 * CAN driver system settings.
68 */
69#define STM32_CAN_USE_CAN1 FALSE
70#define STM32_CAN_CAN1_IRQ_PRIORITY 11
71
72/*
73 * EXT driver system settings.
74 */
75#define STM32_EXT_EXTI0_IRQ_PRIORITY 6
76#define STM32_EXT_EXTI1_IRQ_PRIORITY 6
77#define STM32_EXT_EXTI2_IRQ_PRIORITY 6
78#define STM32_EXT_EXTI3_IRQ_PRIORITY 6
79#define STM32_EXT_EXTI4_IRQ_PRIORITY 6
80#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6
81#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6
82#define STM32_EXT_EXTI16_IRQ_PRIORITY 6
83#define STM32_EXT_EXTI17_IRQ_PRIORITY 6
84#define STM32_EXT_EXTI18_IRQ_PRIORITY 6
85#define STM32_EXT_EXTI19_IRQ_PRIORITY 6
86
87/*
88 * GPT driver system settings.
89 */
90#define STM32_GPT_USE_TIM1 FALSE
91#define STM32_GPT_USE_TIM2 FALSE
92#define STM32_GPT_USE_TIM3 FALSE
93#define STM32_GPT_USE_TIM4 FALSE
94#define STM32_GPT_USE_TIM5 FALSE
95#define STM32_GPT_USE_TIM8 FALSE
96#define STM32_GPT_TIM1_IRQ_PRIORITY 7
97#define STM32_GPT_TIM2_IRQ_PRIORITY 7
98#define STM32_GPT_TIM3_IRQ_PRIORITY 7
99#define STM32_GPT_TIM4_IRQ_PRIORITY 7
100#define STM32_GPT_TIM5_IRQ_PRIORITY 7
101#define STM32_GPT_TIM8_IRQ_PRIORITY 7
102
103/*
104 * I2C driver system settings.
105 */
106#define STM32_I2C_USE_I2C1 FALSE
107#define STM32_I2C_USE_I2C2 FALSE
108#define STM32_I2C_BUSY_TIMEOUT 50
109#define STM32_I2C_I2C1_IRQ_PRIORITY 5
110#define STM32_I2C_I2C2_IRQ_PRIORITY 5
111#define STM32_I2C_I2C1_DMA_PRIORITY 3
112#define STM32_I2C_I2C2_DMA_PRIORITY 3
113#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
114
115/*
116 * ICU driver system settings.
117 */
118#define STM32_ICU_USE_TIM1 FALSE
119#define STM32_ICU_USE_TIM2 FALSE
120#define STM32_ICU_USE_TIM3 FALSE
121#define STM32_ICU_USE_TIM4 FALSE
122#define STM32_ICU_USE_TIM5 FALSE
123#define STM32_ICU_USE_TIM8 FALSE
124#define STM32_ICU_TIM1_IRQ_PRIORITY 7
125#define STM32_ICU_TIM2_IRQ_PRIORITY 7
126#define STM32_ICU_TIM3_IRQ_PRIORITY 7
127#define STM32_ICU_TIM4_IRQ_PRIORITY 7
128#define STM32_ICU_TIM5_IRQ_PRIORITY 7
129#define STM32_ICU_TIM8_IRQ_PRIORITY 7
130
131/*
132 * PWM driver system settings.
133 */
134#define STM32_PWM_USE_ADVANCED FALSE
135#define STM32_PWM_USE_TIM1 FALSE
136#define STM32_PWM_USE_TIM2 FALSE
137#define STM32_PWM_USE_TIM3 FALSE
138#define STM32_PWM_USE_TIM4 FALSE
139#define STM32_PWM_USE_TIM5 FALSE
140#define STM32_PWM_USE_TIM8 FALSE
141#define STM32_PWM_TIM1_IRQ_PRIORITY 7
142#define STM32_PWM_TIM2_IRQ_PRIORITY 7
143#define STM32_PWM_TIM3_IRQ_PRIORITY 7
144#define STM32_PWM_TIM4_IRQ_PRIORITY 7
145#define STM32_PWM_TIM5_IRQ_PRIORITY 7
146#define STM32_PWM_TIM8_IRQ_PRIORITY 7
147
148/*
149 * RTC driver system settings.
150 */
151#define STM32_RTC_IRQ_PRIORITY 15
152
153/*
154 * SERIAL driver system settings.
155 */
156#define STM32_SERIAL_USE_USART1 FALSE
157#define STM32_SERIAL_USE_USART2 FALSE
158#define STM32_SERIAL_USE_USART3 FALSE
159#define STM32_SERIAL_USE_UART4 FALSE
160#define STM32_SERIAL_USE_UART5 FALSE
161#define STM32_SERIAL_USART1_PRIORITY 12
162#define STM32_SERIAL_USART2_PRIORITY 12
163#define STM32_SERIAL_USART3_PRIORITY 12
164#define STM32_SERIAL_UART4_PRIORITY 12
165#define STM32_SERIAL_UART5_PRIORITY 12
166
167/*
168 * SPI driver system settings.
169 */
170#define STM32_SPI_USE_SPI1 FALSE
171#define STM32_SPI_USE_SPI2 TRUE
172#define STM32_SPI_USE_SPI3 FALSE
173#define STM32_SPI_SPI1_DMA_PRIORITY 1
174#define STM32_SPI_SPI2_DMA_PRIORITY 1
175#define STM32_SPI_SPI3_DMA_PRIORITY 1
176#define STM32_SPI_SPI1_IRQ_PRIORITY 10
177#define STM32_SPI_SPI2_IRQ_PRIORITY 10
178#define STM32_SPI_SPI3_IRQ_PRIORITY 10
179#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
180
181/*
182 * ST driver system settings.
183 */
184#define STM32_ST_IRQ_PRIORITY 8
185#define STM32_ST_USE_TIMER 2
186
187/*
188 * UART driver system settings.
189 */
190#define STM32_UART_USE_USART1 FALSE
191#define STM32_UART_USE_USART2 FALSE
192#define STM32_UART_USE_USART3 FALSE
193#define STM32_UART_USART1_IRQ_PRIORITY 12
194#define STM32_UART_USART2_IRQ_PRIORITY 12
195#define STM32_UART_USART3_IRQ_PRIORITY 12
196#define STM32_UART_USART1_DMA_PRIORITY 0
197#define STM32_UART_USART2_DMA_PRIORITY 0
198#define STM32_UART_USART3_DMA_PRIORITY 0
199#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
200
201/*
202 * USB driver system settings.
203 */
204#define STM32_USB_USE_USB1 TRUE
205#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
206#define STM32_USB_USB1_HP_IRQ_PRIORITY 13
207#define STM32_USB_USB1_LP_IRQ_PRIORITY 14
208
209#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 @@
3#include "backlight_driver_common.h" 3#include "backlight_driver_common.h"
4#include "debug.h" 4#include "debug.h"
5 5
6// Maximum duty cycle limit
7#ifndef BACKLIGHT_LIMIT_VAL
8# define BACKLIGHT_LIMIT_VAL 255
9#endif
10
6// This logic is a bit complex, we support 3 setups: 11// This logic is a bit complex, we support 3 setups:
7// 12//
8// 1. Hardware PWM when backlight is wired to a PWM pin. 13// 1. Hardware PWM when backlight is wired to a PWM pin.
@@ -240,6 +245,9 @@ static uint16_t cie_lightness(uint16_t v) {
240 } 245 }
241} 246}
242 247
248// rescale the supplied backlight value to be in terms of the value limit
249static uint32_t rescale_limit_val(uint32_t val) { return (val * (BACKLIGHT_LIMIT_VAL + 1)) / 256; }
250
243// range for val is [0..TIMER_TOP]. PWM pin is high while the timer count is below val. 251// range for val is [0..TIMER_TOP]. PWM pin is high while the timer count is below val.
244static inline void set_pwm(uint16_t val) { OCRxx = val; } 252static inline void set_pwm(uint16_t val) { OCRxx = val; }
245 253
@@ -269,7 +277,7 @@ void backlight_set(uint8_t level) {
269#endif 277#endif
270 } 278 }
271 // Set the brightness 279 // Set the brightness
272 set_pwm(cie_lightness(TIMER_TOP * (uint32_t)level / BACKLIGHT_LEVELS)); 280 set_pwm(cie_lightness(rescale_limit_val(TIMER_TOP * (uint32_t)level / BACKLIGHT_LEVELS)));
273} 281}
274 282
275void backlight_task(void) {} 283void backlight_task(void) {}
@@ -375,7 +383,7 @@ ISR(TIMERx_OVF_vect)
375 breathing_interrupt_disable(); 383 breathing_interrupt_disable();
376 } 384 }
377 385
378 set_pwm(cie_lightness(scale_backlight((uint16_t)pgm_read_byte(&breathing_table[index]) * 0x0101U))); 386 set_pwm(cie_lightness(rescale_limit_val(scale_backlight((uint16_t)pgm_read_byte(&breathing_table[index]) * 0x0101U))));
379} 387}
380 388
381#endif // BACKLIGHT_BREATHING 389#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 @@
3#include <hal.h> 3#include <hal.h>
4#include "debug.h" 4#include "debug.h"
5 5
6// Maximum duty cycle limit
7#ifndef BACKLIGHT_LIMIT_VAL
8# define BACKLIGHT_LIMIT_VAL 255
9#endif
10
6// GPIOV2 && GPIOV3 11// GPIOV2 && GPIOV3
7#ifndef BACKLIGHT_PAL_MODE 12#ifndef BACKLIGHT_PAL_MODE
8# define BACKLIGHT_PAL_MODE 2 13# define BACKLIGHT_PAL_MODE 2
@@ -58,6 +63,11 @@ static uint16_t cie_lightness(uint16_t v) {
58 } 63 }
59} 64}
60 65
66static uint32_t rescale_limit_val(uint32_t val) {
67 // rescale the supplied backlight value to be in terms of the value limit
68 return (val * (BACKLIGHT_LIMIT_VAL + 1)) / 256;
69}
70
61void backlight_init_ports(void) { 71void backlight_init_ports(void) {
62#ifdef USE_GPIOV1 72#ifdef USE_GPIOV1
63 palSetPadMode(PAL_PORT(BACKLIGHT_PIN), PAL_PAD(BACKLIGHT_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL); 73 palSetPadMode(PAL_PORT(BACKLIGHT_PIN), PAL_PAD(BACKLIGHT_PIN), PAL_MODE_STM32_ALTERNATE_PUSHPULL);
@@ -85,7 +95,7 @@ void backlight_set(uint8_t level) {
85 pwmDisableChannel(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1); 95 pwmDisableChannel(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1);
86 } else { 96 } else {
87 // Turn backlight on 97 // Turn backlight on
88 uint32_t duty = (uint32_t)(cie_lightness(0xFFFF * (uint32_t)level / BACKLIGHT_LEVELS)); 98 uint32_t duty = (uint32_t)(cie_lightness(rescale_limit_val(0xFFFF * (uint32_t)level / BACKLIGHT_LEVELS)));
89 pwmEnableChannel(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&BACKLIGHT_PWM_DRIVER, 0xFFFF, duty)); 99 pwmEnableChannel(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&BACKLIGHT_PWM_DRIVER, 0xFFFF, duty));
90 } 100 }
91} 101}
@@ -129,7 +139,7 @@ void breathing_callback(PWMDriver *pwmp) {
129 static uint16_t breathing_counter = 0; 139 static uint16_t breathing_counter = 0;
130 breathing_counter = (breathing_counter + 1) % (breathing_period * 256); 140 breathing_counter = (breathing_counter + 1) % (breathing_period * 256);
131 uint8_t index = breathing_counter / interval % BREATHING_STEPS; 141 uint8_t index = breathing_counter / interval % BREATHING_STEPS;
132 uint32_t duty = cie_lightness(scale_backlight(breathing_table[index] * 256)); 142 uint32_t duty = cie_lightness(rescale_limit_val(scale_backlight(breathing_table[index] * 256)));
133 143
134 chSysLockFromISR(); 144 chSysLockFromISR();
135 pwmEnableChannelI(pwmp, BACKLIGHT_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&BACKLIGHT_PWM_DRIVER, 0xFFFF, duty)); 145 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 @@
39# define PIND_ADDRESS 0x9 39# define PIND_ADDRESS 0x9
40# define PINE_ADDRESS 0xC 40# define PINE_ADDRESS 0xC
41# define PINF_ADDRESS 0xF 41# define PINF_ADDRESS 0xF
42# elif defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) 42# elif defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)
43# define ADDRESS_BASE 0x00 43# define ADDRESS_BASE 0x00
44# define PINB_ADDRESS 0x3 44# define PINB_ADDRESS 0x3
45# define PINC_ADDRESS 0x6 45# define PINC_ADDRESS 0x6
@@ -58,11 +58,6 @@
58# define PINC_ADDRESS 0x3 58# define PINC_ADDRESS 0x3
59# define PINB_ADDRESS 0x6 59# define PINB_ADDRESS 0x6
60# define PINA_ADDRESS 0x9 60# define PINA_ADDRESS 0x9
61# elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)
62# define ADDRESS_BASE 0x00
63# define PINB_ADDRESS 0x3
64# define PINC_ADDRESS 0x6
65# define PIND_ADDRESS 0x9
66# elif defined(__AVR_ATtiny85__) 61# elif defined(__AVR_ATtiny85__)
67# define ADDRESS_BASE 0x10 62# define ADDRESS_BASE 0x10
68# define PINB_ADDRESS 0x6 63# define PINB_ADDRESS 0x6
@@ -284,6 +279,91 @@
284# define F13 PAL_LINE(GPIOF, 13) 279# define F13 PAL_LINE(GPIOF, 13)
285# define F14 PAL_LINE(GPIOF, 14) 280# define F14 PAL_LINE(GPIOF, 14)
286# define F15 PAL_LINE(GPIOF, 15) 281# define F15 PAL_LINE(GPIOF, 15)
282# define G0 PAL_LINE(GPIOG, 0)
283# define G1 PAL_LINE(GPIOG, 1)
284# define G2 PAL_LINE(GPIOG, 2)
285# define G3 PAL_LINE(GPIOG, 3)
286# define G4 PAL_LINE(GPIOG, 4)
287# define G5 PAL_LINE(GPIOG, 5)
288# define G6 PAL_LINE(GPIOG, 6)
289# define G7 PAL_LINE(GPIOG, 7)
290# define G8 PAL_LINE(GPIOG, 8)
291# define G9 PAL_LINE(GPIOG, 9)
292# define G10 PAL_LINE(GPIOG, 10)
293# define G11 PAL_LINE(GPIOG, 11)
294# define G12 PAL_LINE(GPIOG, 12)
295# define G13 PAL_LINE(GPIOG, 13)
296# define G14 PAL_LINE(GPIOG, 14)
297# define G15 PAL_LINE(GPIOG, 15)
298# define H0 PAL_LINE(GPIOH, 0)
299# define H1 PAL_LINE(GPIOH, 1)
300# define H2 PAL_LINE(GPIOH, 2)
301# define H3 PAL_LINE(GPIOH, 3)
302# define H4 PAL_LINE(GPIOH, 4)
303# define H5 PAL_LINE(GPIOH, 5)
304# define H6 PAL_LINE(GPIOH, 6)
305# define H7 PAL_LINE(GPIOH, 7)
306# define H8 PAL_LINE(GPIOH, 8)
307# define H9 PAL_LINE(GPIOH, 9)
308# define H10 PAL_LINE(GPIOH, 10)
309# define H11 PAL_LINE(GPIOH, 11)
310# define H12 PAL_LINE(GPIOH, 12)
311# define H13 PAL_LINE(GPIOH, 13)
312# define H14 PAL_LINE(GPIOH, 14)
313# define H15 PAL_LINE(GPIOH, 15)
314# define I0 PAL_LINE(GPIOI, 0)
315# define I1 PAL_LINE(GPIOI, 1)
316# define I2 PAL_LINE(GPIOI, 2)
317# define I3 PAL_LINE(GPIOI, 3)
318# define I4 PAL_LINE(GPIOI, 4)
319# define I5 PAL_LINE(GPIOI, 5)
320# define I6 PAL_LINE(GPIOI, 6)
321# define I7 PAL_LINE(GPIOI, 7)
322# define I8 PAL_LINE(GPIOI, 8)
323# define I9 PAL_LINE(GPIOI, 9)
324# define I10 PAL_LINE(GPIOI, 10)
325# define I11 PAL_LINE(GPIOI, 11)
326# define I12 PAL_LINE(GPIOI, 12)
327# define I13 PAL_LINE(GPIOI, 13)
328# define I14 PAL_LINE(GPIOI, 14)
329# define I15 PAL_LINE(GPIOI, 15)
330# define J0 PAL_LINE(GPIOJ, 0)
331# define J1 PAL_LINE(GPIOJ, 1)
332# define J2 PAL_LINE(GPIOJ, 2)
333# define J3 PAL_LINE(GPIOJ, 3)
334# define J4 PAL_LINE(GPIOJ, 4)
335# define J5 PAL_LINE(GPIOJ, 5)
336# define J6 PAL_LINE(GPIOJ, 6)
337# define J7 PAL_LINE(GPIOJ, 7)
338# define J8 PAL_LINE(GPIOJ, 8)
339# define J9 PAL_LINE(GPIOJ, 9)
340# define J10 PAL_LINE(GPIOJ, 10)
341# define J11 PAL_LINE(GPIOJ, 11)
342# define J12 PAL_LINE(GPIOJ, 12)
343# define J13 PAL_LINE(GPIOJ, 13)
344# define J14 PAL_LINE(GPIOJ, 14)
345# define J15 PAL_LINE(GPIOJ, 15)
346// Keyboards can `#define KEYBOARD_REQUIRES_GPIOK` if they need to access GPIO-K pins. These conflict with a whole
347// bunch of layout definitions, so it's intentionally left out unless absolutely required -- in that case, the
348// keyboard designer should use a different symbol when defining their layout macros.
349# ifdef KEYBOARD_REQUIRES_GPIOK
350# define K0 PAL_LINE(GPIOK, 0)
351# define K1 PAL_LINE(GPIOK, 1)
352# define K2 PAL_LINE(GPIOK, 2)
353# define K3 PAL_LINE(GPIOK, 3)
354# define K4 PAL_LINE(GPIOK, 4)
355# define K5 PAL_LINE(GPIOK, 5)
356# define K6 PAL_LINE(GPIOK, 6)
357# define K7 PAL_LINE(GPIOK, 7)
358# define K8 PAL_LINE(GPIOK, 8)
359# define K9 PAL_LINE(GPIOK, 9)
360# define K10 PAL_LINE(GPIOK, 10)
361# define K11 PAL_LINE(GPIOK, 11)
362# define K12 PAL_LINE(GPIOK, 12)
363# define K13 PAL_LINE(GPIOK, 13)
364# define K14 PAL_LINE(GPIOK, 14)
365# define K15 PAL_LINE(GPIOK, 15)
366# endif
287# endif 367# endif
288#endif 368#endif
289 369
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 @@
23// for memcpy 23// for memcpy
24#include <string.h> 24#include <string.h>
25 25
26#ifndef ENCODER_RESOLUTION 26#if !defined(ENCODER_RESOLUTIONS) && !defined(ENCODER_RESOLUTION)
27# define ENCODER_RESOLUTION 4 27# define ENCODER_RESOLUTION 4
28#endif 28#endif
29 29
@@ -34,6 +34,9 @@
34#define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a) / sizeof(pin_t)) 34#define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a) / sizeof(pin_t))
35static pin_t encoders_pad_a[] = ENCODERS_PAD_A; 35static pin_t encoders_pad_a[] = ENCODERS_PAD_A;
36static pin_t encoders_pad_b[] = ENCODERS_PAD_B; 36static pin_t encoders_pad_b[] = ENCODERS_PAD_B;
37#ifdef ENCODER_RESOLUTIONS
38static uint8_t encoder_resolutions[] = ENCODER_RESOLUTIONS;
39#endif
37 40
38#ifndef ENCODER_DIRECTION_FLIP 41#ifndef ENCODER_DIRECTION_FLIP
39# define ENCODER_CLOCKWISE true 42# define ENCODER_CLOCKWISE true
@@ -65,9 +68,15 @@ void encoder_init(void) {
65 if (!isLeftHand) { 68 if (!isLeftHand) {
66 const pin_t encoders_pad_a_right[] = ENCODERS_PAD_A_RIGHT; 69 const pin_t encoders_pad_a_right[] = ENCODERS_PAD_A_RIGHT;
67 const pin_t encoders_pad_b_right[] = ENCODERS_PAD_B_RIGHT; 70 const pin_t encoders_pad_b_right[] = ENCODERS_PAD_B_RIGHT;
71# if defined(ENCODER_RESOLUTIONS_RIGHT)
72 const uint8_t encoder_resolutions_right[] = ENCODER_RESOLUTIONS_RIGHT;
73# endif
68 for (uint8_t i = 0; i < NUMBER_OF_ENCODERS; i++) { 74 for (uint8_t i = 0; i < NUMBER_OF_ENCODERS; i++) {
69 encoders_pad_a[i] = encoders_pad_a_right[i]; 75 encoders_pad_a[i] = encoders_pad_a_right[i];
70 encoders_pad_b[i] = encoders_pad_b_right[i]; 76 encoders_pad_b[i] = encoders_pad_b_right[i];
77# if defined(ENCODER_RESOLUTIONS_RIGHT)
78 encoder_resolutions[i] = encoder_resolutions_right[i];
79# endif
71 } 80 }
72 } 81 }
73#endif 82#endif
@@ -87,19 +96,26 @@ void encoder_init(void) {
87 96
88static void encoder_update(int8_t index, uint8_t state) { 97static void encoder_update(int8_t index, uint8_t state) {
89 uint8_t i = index; 98 uint8_t i = index;
99
100#ifdef ENCODER_RESOLUTIONS
101 int8_t resolution = encoder_resolutions[i];
102#else
103 int8_t resolution = ENCODER_RESOLUTION;
104#endif
105
90#ifdef SPLIT_KEYBOARD 106#ifdef SPLIT_KEYBOARD
91 index += thisHand; 107 index += thisHand;
92#endif 108#endif
93 encoder_pulses[i] += encoder_LUT[state & 0xF]; 109 encoder_pulses[i] += encoder_LUT[state & 0xF];
94 if (encoder_pulses[i] >= ENCODER_RESOLUTION) { 110 if (encoder_pulses[i] >= resolution) {
95 encoder_value[index]++; 111 encoder_value[index]++;
96 encoder_update_kb(index, ENCODER_COUNTER_CLOCKWISE); 112 encoder_update_kb(index, ENCODER_COUNTER_CLOCKWISE);
97 } 113 }
98 if (encoder_pulses[i] <= -ENCODER_RESOLUTION) { // direction is arbitrary here, but this clockwise 114 if (encoder_pulses[i] <= -resolution) { // direction is arbitrary here, but this clockwise
99 encoder_value[index]--; 115 encoder_value[index]--;
100 encoder_update_kb(index, ENCODER_CLOCKWISE); 116 encoder_update_kb(index, ENCODER_CLOCKWISE);
101 } 117 }
102 encoder_pulses[i] %= ENCODER_RESOLUTION; 118 encoder_pulses[i] %= resolution;
103} 119}
104 120
105void encoder_read(void) { 121void 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 @@
1#pragma once 1#pragma once
2 2
3#include "quantum.h"
4
5#include <stdint.h>
6
3#ifndef JOYSTICK_BUTTON_COUNT 7#ifndef JOYSTICK_BUTTON_COUNT
4# define JOYSTICK_BUTTON_COUNT 8 8# define JOYSTICK_BUTTON_COUNT 8
5#endif 9#endif
@@ -8,9 +12,13 @@
8# define JOYSTICK_AXES_COUNT 4 12# define JOYSTICK_AXES_COUNT 4
9#endif 13#endif
10 14
11#include "quantum.h" 15#ifndef JOYSTICK_AXES_RESOLUTION
16# define JOYSTICK_AXES_RESOLUTION 8
17#elif JOYSTICK_AXES_RESOLUTION < 8 || JOYSTICK_AXES_RESOLUTION > 16
18# error JOYSTICK_AXES_RESOLUTION must be between 8 and 16
19#endif
12 20
13#include <stdint.h> 21#define JOYSTICK_RESOLUTION ((1L << (JOYSTICK_AXES_RESOLUTION - 1)) - 1)
14 22
15// configure on input_pin of the joystick_axes array entry to JS_VIRTUAL_AXIS 23// configure on input_pin of the joystick_axes array entry to JS_VIRTUAL_AXIS
16// to prevent it from being read from the ADC. This allows outputing forged axis value. 24// 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 @@
20#include <stdint.h> 20#include <stdint.h>
21#include <stdbool.h> 21#include <stdbool.h>
22#include "quantum.h" 22#include "quantum.h"
23#include "ledmatrix.h" 23#include "led_matrix.h"
24#include "progmem.h" 24#include "progmem.h"
25#include "config.h" 25#include "config.h"
26#include "eeprom.h" 26#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 @@
18#include <stdint.h> 18#include <stdint.h>
19#include <stdbool.h> 19#include <stdbool.h>
20#include "quantum.h" 20#include "quantum.h"
21#include "ledmatrix.h" 21#include "led_matrix.h"
22 22
23/* Each driver needs to define a struct: 23/* Each driver needs to define a struct:
24 * 24 *
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;
32extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values 32extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values
33extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values 33extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values
34 34
35static inline void setPinOutput_writeLow(pin_t pin) {
36 ATOMIC_BLOCK_FORCEON {
37 setPinOutput(pin);
38 writePinLow(pin);
39 }
40}
41
42static inline void setPinInputHigh_atomic(pin_t pin) {
43 ATOMIC_BLOCK_FORCEON {
44 setPinInputHigh(pin);
45 }
46}
47
35// matrix code 48// matrix code
36 49
37#ifdef DIRECT_PINS 50#ifdef DIRECT_PINS
@@ -70,22 +83,23 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
70# if (DIODE_DIRECTION == COL2ROW) 83# if (DIODE_DIRECTION == COL2ROW)
71 84
72static void select_row(uint8_t row) { 85static void select_row(uint8_t row) {
73 setPinOutput(row_pins[row]); 86 setPinOutput_writeLow(row_pins[row]);
74 writePinLow(row_pins[row]);
75} 87}
76 88
77static void unselect_row(uint8_t row) { setPinInputHigh(row_pins[row]); } 89static void unselect_row(uint8_t row) {
90 setPinInputHigh_atomic(row_pins[row]);
91}
78 92
79static void unselect_rows(void) { 93static void unselect_rows(void) {
80 for (uint8_t x = 0; x < MATRIX_ROWS; x++) { 94 for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
81 setPinInputHigh(row_pins[x]); 95 setPinInputHigh_atomic(row_pins[x]);
82 } 96 }
83} 97}
84 98
85static void init_pins(void) { 99static void init_pins(void) {
86 unselect_rows(); 100 unselect_rows();
87 for (uint8_t x = 0; x < MATRIX_COLS; x++) { 101 for (uint8_t x = 0; x < MATRIX_COLS; x++) {
88 setPinInputHigh(col_pins[x]); 102 setPinInputHigh_atomic(col_pins[x]);
89 } 103 }
90} 104}
91 105
@@ -120,22 +134,23 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
120# elif (DIODE_DIRECTION == ROW2COL) 134# elif (DIODE_DIRECTION == ROW2COL)
121 135
122static void select_col(uint8_t col) { 136static void select_col(uint8_t col) {
123 setPinOutput(col_pins[col]); 137 setPinOutput_writeLow(col_pins[col]);
124 writePinLow(col_pins[col]);
125} 138}
126 139
127static void unselect_col(uint8_t col) { setPinInputHigh(col_pins[col]); } 140static void unselect_col(uint8_t col) {
141 setPinInputHigh_atomic(col_pins[col]);
142}
128 143
129static void unselect_cols(void) { 144static void unselect_cols(void) {
130 for (uint8_t x = 0; x < MATRIX_COLS; x++) { 145 for (uint8_t x = 0; x < MATRIX_COLS; x++) {
131 setPinInputHigh(col_pins[x]); 146 setPinInputHigh_atomic(col_pins[x]);
132 } 147 }
133} 148}
134 149
135static void init_pins(void) { 150static void init_pins(void) {
136 unselect_cols(); 151 unselect_cols();
137 for (uint8_t x = 0; x < MATRIX_ROWS; x++) { 152 for (uint8_t x = 0; x < MATRIX_ROWS; x++) {
138 setPinInputHigh(row_pins[x]); 153 setPinInputHigh_atomic(row_pins[x]);
139 } 154 }
140} 155}
141 156
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
318 ifeq (,$(filter $(NO_INTERRUPT_CONTROL_ENDPOINT),yes)) 318 ifeq (,$(filter $(NO_INTERRUPT_CONTROL_ENDPOINT),yes))
319 OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT 319 OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
320 endif 320 endif
321 ifneq (,$(filter $(MCU),atmega16u2 atmega32u2))
322 NO_I2C = yes
323 endif
321endif 324endif
322 325
323ifneq (,$(filter $(MCU),atmega32a)) 326ifneq (,$(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 @@
16 16
17#ifdef AUTO_SHIFT_ENABLE 17#ifdef AUTO_SHIFT_ENABLE
18 18
19# include <stdbool.h>
19# include <stdio.h> 20# include <stdio.h>
20 21
21# include "process_auto_shift.h" 22# include "process_auto_shift.h"
22 23
23static bool autoshift_enabled = true;
24static uint16_t autoshift_time = 0; 24static uint16_t autoshift_time = 0;
25static uint16_t autoshift_timeout = AUTO_SHIFT_TIMEOUT; 25static uint16_t autoshift_timeout = AUTO_SHIFT_TIMEOUT;
26static uint16_t autoshift_lastkey = KC_NO; 26static uint16_t autoshift_lastkey = KC_NO;
27static struct {
28 // Whether autoshift is enabled.
29 bool enabled : 1;
30 // Whether the last auto-shifted key was released after the timeout. This
31 // is used to replicate the last key for a tap-then-hold.
32 bool lastshifted : 1;
33 // Whether an auto-shiftable key has been pressed but not processed.
34 bool in_progress : 1;
35 // Whether the auto-shifted keypress has been registered.
36 bool holding_shift : 1;
37} autoshift_flags = {true, false, false, false};
38
39/** \brief Record the press of an autoshiftable key
40 *
41 * \return Whether the record should be further processed.
42 */
43static bool autoshift_press(uint16_t keycode, uint16_t now, keyrecord_t *record) {
44 if (!autoshift_flags.enabled) {
45 return true;
46 }
47
48# ifndef AUTO_SHIFT_MODIFIERS
49 if (get_mods() & (~MOD_BIT(KC_LSFT))) {
50 return true;
51 }
52# endif
53# ifdef AUTO_SHIFT_REPEAT
54 const uint16_t elapsed = TIMER_DIFF_16(now, autoshift_time);
55# ifndef AUTO_SHIFT_NO_AUTO_REPEAT
56 if (!autoshift_flags.lastshifted) {
57# endif
58 if (elapsed < TAPPING_TERM && keycode == autoshift_lastkey) {
59 // Allow a tap-then-hold for keyrepeat.
60 if (!autoshift_flags.lastshifted) {
61 register_code(autoshift_lastkey);
62 } else {
63 // Simulate pressing the shift key.
64 add_weak_mods(MOD_BIT(KC_LSFT));
65 register_code(autoshift_lastkey);
66 }
67 return false;
68 }
69# ifndef AUTO_SHIFT_NO_AUTO_REPEAT
70 }
71# endif
72# endif
27 73
28void autoshift_flush(void) { 74 // Record the keycode so we can simulate it later.
29 if (autoshift_lastkey != KC_NO) { 75 autoshift_lastkey = keycode;
30 uint16_t elapsed = timer_elapsed(autoshift_time); 76 autoshift_time = now;
77 autoshift_flags.in_progress = true;
31 78
32 if (elapsed > autoshift_timeout) { 79# if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING)
33 tap_code16(LSFT(autoshift_lastkey)); 80 clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
81# endif
82 return false;
83}
84
85/** \brief Registers an autoshiftable key under the right conditions
86 *
87 * If the autoshift delay has elapsed, register a shift and the key.
88 *
89 * If the autoshift key is released before the delay has elapsed, register the
90 * key without a shift.
91 */
92static void autoshift_end(uint16_t keycode, uint16_t now, bool matrix_trigger) {
93 // Called on key down with KC_NO, auto-shifted key up, and timeout.
94 if (autoshift_flags.in_progress) {
95 // Process the auto-shiftable key.
96 autoshift_flags.in_progress = false;
97
98 // Time since the initial press was recorded.
99 const uint16_t elapsed = TIMER_DIFF_16(now, autoshift_time);
100 if (elapsed < autoshift_timeout) {
101 register_code(autoshift_lastkey);
102 autoshift_flags.lastshifted = false;
34 } else { 103 } else {
35 tap_code(autoshift_lastkey); 104 // Simulate pressing the shift key.
105 add_weak_mods(MOD_BIT(KC_LSFT));
106 register_code(autoshift_lastkey);
107 autoshift_flags.lastshifted = true;
108# if defined(AUTO_SHIFT_REPEAT) && !defined(AUTO_SHIFT_NO_AUTO_REPEAT)
109 if (matrix_trigger) {
110 // Prevents release.
111 return;
112 }
113# endif
36 } 114 }
37 115
38 autoshift_time = 0; 116# if TAP_CODE_DELAY > 0
39 autoshift_lastkey = KC_NO; 117 wait_ms(TAP_CODE_DELAY);
118# endif
119 unregister_code(autoshift_lastkey);
120 del_weak_mods(MOD_BIT(KC_LSFT));
121 } else {
122 // Release after keyrepeat.
123 unregister_code(keycode);
124 if (keycode == autoshift_lastkey) {
125 // This will only fire when the key was the last auto-shiftable
126 // pressed. That prevents aaaaBBBB then releasing a from unshifting
127 // later Bs (if B wasn't auto-shiftable).
128 del_weak_mods(MOD_BIT(KC_LSFT));
129 }
40 } 130 }
131 send_keyboard_report(); // del_weak_mods doesn't send one.
132 // Roll the autoshift_time forward for detecting tap-and-hold.
133 autoshift_time = now;
41} 134}
42 135
43void autoshift_on(uint16_t keycode) { 136/** \brief Simulates auto-shifted key releases when timeout is hit
44 autoshift_time = timer_read(); 137 *
45 autoshift_lastkey = keycode; 138 * Can be called from \c matrix_scan_user so that auto-shifted keys are sent
139 * immediately after the timeout has expired, rather than waiting for the key
140 * to be released.
141 */
142void autoshift_matrix_scan(void) {
143 if (autoshift_flags.in_progress) {
144 const uint16_t now = timer_read();
145 const uint16_t elapsed = TIMER_DIFF_16(now, autoshift_time);
146 if (elapsed >= autoshift_timeout) {
147 autoshift_end(autoshift_lastkey, now, true);
148 }
149 }
46} 150}
47 151
48void autoshift_toggle(void) { 152void autoshift_toggle(void) {
49 if (autoshift_enabled) { 153 autoshift_flags.enabled = !autoshift_flags.enabled;
50 autoshift_enabled = false; 154 del_weak_mods(MOD_BIT(KC_LSFT));
51 autoshift_flush();
52 } else {
53 autoshift_enabled = true;
54 }
55} 155}
56 156
57void autoshift_enable(void) { autoshift_enabled = true; } 157void autoshift_enable(void) { autoshift_flags.enabled = true; }
158
58void autoshift_disable(void) { 159void autoshift_disable(void) {
59 autoshift_enabled = false; 160 autoshift_flags.enabled = false;
60 autoshift_flush(); 161 del_weak_mods(MOD_BIT(KC_LSFT));
61} 162}
62 163
63# ifndef AUTO_SHIFT_NO_SETUP 164# ifndef AUTO_SHIFT_NO_SETUP
@@ -70,19 +171,30 @@ void autoshift_timer_report(void) {
70} 171}
71# endif 172# endif
72 173
73bool get_autoshift_state(void) { return autoshift_enabled; } 174bool get_autoshift_state(void) { return autoshift_flags.enabled; }
74 175
75uint16_t get_autoshift_timeout(void) { return autoshift_timeout; } 176uint16_t get_autoshift_timeout(void) { return autoshift_timeout; }
76 177
77void set_autoshift_timeout(uint16_t timeout) { autoshift_timeout = timeout; } 178void set_autoshift_timeout(uint16_t timeout) { autoshift_timeout = timeout; }
78 179
79bool process_auto_shift(uint16_t keycode, keyrecord_t *record) { 180bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
181 // Note that record->event.time isn't reliable, see:
182 // https://github.com/qmk/qmk_firmware/pull/9826#issuecomment-733559550
183 const uint16_t now = timer_read();
184
80 if (record->event.pressed) { 185 if (record->event.pressed) {
186 if (autoshift_flags.in_progress) {
187 // Evaluate previous key if there is one. Doing this elsewhere is
188 // more complicated and easier to break.
189 autoshift_end(KC_NO, now, false);
190 }
191 // For pressing another key while keyrepeating shifted autoshift.
192 del_weak_mods(MOD_BIT(KC_LSFT));
193
81 switch (keycode) { 194 switch (keycode) {
82 case KC_ASTG: 195 case KC_ASTG:
83 autoshift_toggle(); 196 autoshift_toggle();
84 return true; 197 return true;
85
86 case KC_ASON: 198 case KC_ASON:
87 autoshift_enable(); 199 autoshift_enable();
88 return true; 200 return true;
@@ -102,41 +214,28 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
102 autoshift_timer_report(); 214 autoshift_timer_report();
103 return true; 215 return true;
104# endif 216# endif
217 }
218 }
219
220 switch (keycode) {
105# ifndef NO_AUTO_SHIFT_ALPHA 221# ifndef NO_AUTO_SHIFT_ALPHA
106 case KC_A ... KC_Z: 222 case KC_A ... KC_Z:
107# endif 223# endif
108# ifndef NO_AUTO_SHIFT_NUMERIC 224# ifndef NO_AUTO_SHIFT_NUMERIC
109 case KC_1 ... KC_0: 225 case KC_1 ... KC_0:
110# endif 226# endif
111# ifndef NO_AUTO_SHIFT_SPECIAL 227# ifndef NO_AUTO_SHIFT_SPECIAL
112 case KC_TAB: 228 case KC_TAB:
113 case KC_MINUS ... KC_SLASH: 229 case KC_MINUS ... KC_SLASH:
114 case KC_NONUS_BSLASH: 230 case KC_NONUS_BSLASH:
115# endif
116 autoshift_flush();
117 if (!autoshift_enabled) return true;
118
119# ifndef AUTO_SHIFT_MODIFIERS
120 if (get_mods()) {
121 return true;
122 }
123# endif
124 autoshift_on(keycode);
125
126 // We need some extra handling here for OSL edge cases
127# if !defined(NO_ACTION_ONESHOT) && !defined(NO_ACTION_TAPPING)
128 clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
129# endif 231# endif
232 if (record->event.pressed) {
233 return autoshift_press(keycode, now, record);
234 } else {
235 autoshift_end(keycode, now, false);
130 return false; 236 return false;
131 237 }
132 default:
133 autoshift_flush();
134 return true;
135 }
136 } else {
137 autoshift_flush();
138 } 238 }
139
140 return true; 239 return true;
141} 240}
142 241
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);
30bool get_autoshift_state(void); 30bool get_autoshift_state(void);
31uint16_t get_autoshift_timeout(void); 31uint16_t get_autoshift_timeout(void);
32void set_autoshift_timeout(uint16_t timeout); 32void set_autoshift_timeout(uint16_t timeout);
33void 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() {
129 // test the converted value against the lower range 129 // test the converted value against the lower range
130 int32_t ref = joystick_axes[axis_index].mid_digit; 130 int32_t ref = joystick_axes[axis_index].mid_digit;
131 int32_t range = joystick_axes[axis_index].min_digit; 131 int32_t range = joystick_axes[axis_index].min_digit;
132 int32_t ranged_val = ((axis_val - ref) * -127) / (range - ref); 132 int32_t ranged_val = ((axis_val - ref) * -JOYSTICK_RESOLUTION) / (range - ref);
133 133
134 if (ranged_val > 0) { 134 if (ranged_val > 0) {
135 // the value is in the higher range 135 // the value is in the higher range
136 range = joystick_axes[axis_index].max_digit; 136 range = joystick_axes[axis_index].max_digit;
137 ranged_val = ((axis_val - ref) * 127) / (range - ref); 137 ranged_val = ((axis_val - ref) * JOYSTICK_RESOLUTION) / (range - ref);
138 } 138 }
139 139
140 // clamp the result in the valid range 140 // clamp the result in the valid range
141 ranged_val = ranged_val < -127 ? -127 : ranged_val; 141 ranged_val = ranged_val < -JOYSTICK_RESOLUTION ? -JOYSTICK_RESOLUTION : ranged_val;
142 ranged_val = ranged_val > 127 ? 127 : ranged_val; 142 ranged_val = ranged_val > JOYSTICK_RESOLUTION ? JOYSTICK_RESOLUTION : ranged_val;
143 143
144 if (ranged_val != joystick_status.axes[axis_index]) { 144 if (ranged_val != joystick_status.axes[axis_index]) {
145 joystick_status.axes[axis_index] = ranged_val; 145 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;
41static uint16_t midi_modulation_timer; 41static uint16_t midi_modulation_timer;
42midi_config_t midi_config; 42midi_config_t midi_config;
43 43
44inline uint8_t compute_velocity(uint8_t setting) { return (setting + 1) * (128 / (MIDI_VELOCITY_MAX - MIDI_VELOCITY_MIN + 1)); } 44inline uint8_t compute_velocity(uint8_t setting) { return setting * (128 / (MIDI_VELOCITY_MAX - MIDI_VELOCITY_MIN)); }
45 45
46void midi_init(void) { 46void midi_init(void) {
47 midi_config.octave = MI_OCT_2 - MIDI_OCTAVE_MIN; 47 midi_config.octave = MI_OCT_2 - MIDI_OCTAVE_MIN;
48 midi_config.transpose = 0; 48 midi_config.transpose = 0;
49 midi_config.velocity = (MIDI_VELOCITY_MAX - MIDI_VELOCITY_MIN); 49 midi_config.velocity = 127;
50 midi_config.channel = 0; 50 midi_config.channel = 0;
51 midi_config.modulation_interval = 8; 51 midi_config.modulation_interval = 8;
52 52
@@ -66,7 +66,7 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
66 case MIDI_TONE_MIN ... MIDI_TONE_MAX: { 66 case MIDI_TONE_MIN ... MIDI_TONE_MAX: {
67 uint8_t channel = midi_config.channel; 67 uint8_t channel = midi_config.channel;
68 uint8_t tone = keycode - MIDI_TONE_MIN; 68 uint8_t tone = keycode - MIDI_TONE_MIN;
69 uint8_t velocity = compute_velocity(midi_config.velocity); 69 uint8_t velocity = midi_config.velocity;
70 if (record->event.pressed) { 70 if (record->event.pressed) {
71 if (tone_status[tone] == MIDI_INVALID_NOTE) { 71 if (tone_status[tone] == MIDI_INVALID_NOTE) {
72 uint8_t note = midi_compute_note(keycode); 72 uint8_t note = midi_compute_note(keycode);
@@ -124,19 +124,30 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) {
124 return false; 124 return false;
125 case MIDI_VELOCITY_MIN ... MIDI_VELOCITY_MAX: 125 case MIDI_VELOCITY_MIN ... MIDI_VELOCITY_MAX:
126 if (record->event.pressed) { 126 if (record->event.pressed) {
127 midi_config.velocity = keycode - MIDI_VELOCITY_MIN; 127 midi_config.velocity = compute_velocity(keycode - MIDI_VELOCITY_MIN);
128 dprintf("midi velocity %d\n", midi_config.velocity); 128 dprintf("midi velocity %d\n", midi_config.velocity);
129 } 129 }
130 return false; 130 return false;
131 case MI_VELD: 131 case MI_VELD:
132 if (record->event.pressed && midi_config.velocity > 0) { 132 if (record->event.pressed && midi_config.velocity > 0) {
133 midi_config.velocity--; 133 if (midi_config.velocity == 127) {
134 midi_config.velocity -= 10;
135 } else if (midi_config.velocity > 12) {
136 midi_config.velocity -= 13;
137 } else {
138 midi_config.velocity = 0;
139 }
140
134 dprintf("midi velocity %d\n", midi_config.velocity); 141 dprintf("midi velocity %d\n", midi_config.velocity);
135 } 142 }
136 return false; 143 return false;
137 case MI_VELU: 144 case MI_VELU:
138 if (record->event.pressed) { 145 if (record->event.pressed && midi_config.velocity < 127) {
139 midi_config.velocity++; 146 if (midi_config.velocity < 115) {
147 midi_config.velocity += 13;
148 } else {
149 midi_config.velocity = 127;
150 }
140 dprintf("midi velocity %d\n", midi_config.velocity); 151 dprintf("midi velocity %d\n", midi_config.velocity);
141 } 152 }
142 return false; 153 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 {
35 struct { 35 struct {
36 uint8_t octave : 4; 36 uint8_t octave : 4;
37 int8_t transpose : 4; 37 int8_t transpose : 4;
38 uint8_t velocity : 4; 38 uint8_t velocity : 7;
39 uint8_t channel : 4; 39 uint8_t channel : 4;
40 uint8_t modulation_interval : 4; 40 uint8_t modulation_interval : 4;
41 }; 41 };
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 @@
1/* Copyright 2020 Rodolphe Belouin
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "process_sequencer.h"
18
19bool process_sequencer(uint16_t keycode, keyrecord_t *record) {
20 if (record->event.pressed) {
21 switch (keycode) {
22 case SQ_ON:
23 sequencer_on();
24 return false;
25 case SQ_OFF:
26 sequencer_off();
27 return false;
28 case SQ_TOG:
29 sequencer_toggle();
30 return false;
31 case SQ_TMPD:
32 sequencer_decrease_tempo();
33 return false;
34 case SQ_TMPU:
35 sequencer_increase_tempo();
36 return false;
37 case SEQUENCER_RESOLUTION_MIN ... SEQUENCER_RESOLUTION_MAX:
38 sequencer_set_resolution(keycode - SEQUENCER_RESOLUTION_MIN);
39 return false;
40 case SQ_RESD:
41 sequencer_decrease_resolution();
42 return false;
43 case SQ_RESU:
44 sequencer_increase_resolution();
45 return false;
46 case SQ_SALL:
47 sequencer_set_all_steps_on();
48 return false;
49 case SQ_SCLR:
50 sequencer_set_all_steps_off();
51 return false;
52 case SEQUENCER_STEP_MIN ... SEQUENCER_STEP_MAX:
53 sequencer_toggle_step(keycode - SEQUENCER_STEP_MIN);
54 return false;
55 case SEQUENCER_TRACK_MIN ... SEQUENCER_TRACK_MAX:
56 sequencer_toggle_single_active_track(keycode - SEQUENCER_TRACK_MIN);
57 return false;
58 }
59 }
60
61 return true;
62}
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 @@
1/* Copyright 2020 Rodolphe Belouin
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21bool 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);
58# endif 58# endif
59#endif 59#endif
60 60
61#ifdef AUTO_SHIFT_ENABLE
62# include "process_auto_shift.h"
63#endif
64
61static void do_code16(uint16_t code, void (*f)(uint8_t)) { 65static void do_code16(uint16_t code, void (*f)(uint8_t)) {
62 switch (code) { 66 switch (code) {
63 case QK_MODS ... QK_MODS_MAX: 67 case QK_MODS ... QK_MODS_MAX:
@@ -228,6 +232,9 @@ bool process_record_quantum(keyrecord_t *record) {
228 process_record_via(keycode, record) && 232 process_record_via(keycode, record) &&
229#endif 233#endif
230 process_record_kb(keycode, record) && 234 process_record_kb(keycode, record) &&
235#if defined(SEQUENCER_ENABLE)
236 process_sequencer(keycode, record) &&
237#endif
231#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED) 238#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
232 process_midi(keycode, record) && 239 process_midi(keycode, record) &&
233#endif 240#endif
@@ -636,6 +643,10 @@ void matrix_scan_quantum() {
636 matrix_scan_music(); 643 matrix_scan_music();
637#endif 644#endif
638 645
646#ifdef SEQUENCER_ENABLE
647 matrix_scan_sequencer();
648#endif
649
639#ifdef TAP_DANCE_ENABLE 650#ifdef TAP_DANCE_ENABLE
640 matrix_scan_tap_dance(); 651 matrix_scan_tap_dance();
641#endif 652#endif
@@ -664,6 +675,10 @@ void matrix_scan_quantum() {
664 dip_switch_read(false); 675 dip_switch_read(false);
665#endif 676#endif
666 677
678#ifdef AUTO_SHIFT_ENABLE
679 autoshift_matrix_scan();
680#endif
681
667 matrix_scan_kb(); 682 matrix_scan_kb();
668} 683}
669 684
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 @@
31 31
32#ifdef BACKLIGHT_ENABLE 32#ifdef BACKLIGHT_ENABLE
33# ifdef LED_MATRIX_ENABLE 33# ifdef LED_MATRIX_ENABLE
34# include "ledmatrix.h" 34# include "led_matrix.h"
35# else 35# else
36# include "backlight.h" 36# include "backlight.h"
37# endif 37# endif
@@ -68,6 +68,11 @@ extern layer_state_t default_layer_state;
68extern layer_state_t layer_state; 68extern layer_state_t layer_state;
69#endif 69#endif
70 70
71#if defined(SEQUENCER_ENABLE)
72# include "sequencer.h"
73# include "process_sequencer.h"
74#endif
75
71#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED) 76#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
72# include "process_midi.h" 77# include "process_midi.h"
73#endif 78#endif
@@ -220,6 +225,61 @@ typedef ioline_t pin_t;
220# define togglePin(pin) palToggleLine(pin) 225# define togglePin(pin) palToggleLine(pin)
221#endif 226#endif
222 227
228// Atomic macro to help make GPIO and other controls atomic.
229#ifdef IGNORE_ATOMIC_BLOCK
230/* do nothing atomic macro */
231# define ATOMIC_BLOCK for (uint8_t __ToDo = 1; __ToDo; __ToDo = 0)
232# define ATOMIC_BLOCK_RESTORESTATE ATOMIC_BLOCK
233# define ATOMIC_BLOCK_FORCEON ATOMIC_BLOCK
234
235#elif defined(__AVR__)
236/* atomic macro for AVR */
237# include <util/atomic.h>
238
239# define ATOMIC_BLOCK_RESTORESTATE ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
240# define ATOMIC_BLOCK_FORCEON ATOMIC_BLOCK(ATOMIC_FORCEON)
241
242#elif defined(PROTOCOL_CHIBIOS) || defined(PROTOCOL_ARM_ATSAM)
243/* atomic macro for ChibiOS / ARM ATSAM */
244# if defined(PROTOCOL_ARM_ATSAM)
245# include "arm_atsam_protocol.h"
246# endif
247
248static __inline__ uint8_t __interrupt_disable__(void) {
249# if defined(PROTOCOL_CHIBIOS)
250 chSysLock();
251# endif
252# if defined(PROTOCOL_ARM_ATSAM)
253 __disable_irq();
254# endif
255 return 1;
256}
257
258static __inline__ void __interrupt_enable__(const uint8_t *__s) {
259# if defined(PROTOCOL_CHIBIOS)
260 chSysUnlock();
261# endif
262# if defined(PROTOCOL_ARM_ATSAM)
263 __enable_irq();
264# endif
265 __asm__ volatile("" ::: "memory");
266 (void)__s;
267}
268
269# define ATOMIC_BLOCK(type) for (type, __ToDo = __interrupt_disable__(); __ToDo; __ToDo = 0)
270# define ATOMIC_FORCEON uint8_t sreg_save __attribute__((__cleanup__(__interrupt_enable__))) = 0
271
272# define ATOMIC_BLOCK_RESTORESTATE _Static_assert(0, "ATOMIC_BLOCK_RESTORESTATE dose not implement")
273# define ATOMIC_BLOCK_FORCEON ATOMIC_BLOCK(ATOMIC_FORCEON)
274
275/* Other platform */
276#else
277
278# define ATOMIC_BLOCK_RESTORESTATE _Static_assert(0, "ATOMIC_BLOCK_RESTORESTATE dose not implement")
279# define ATOMIC_BLOCK_FORCEON _Static_assert(0, "ATOMIC_BLOCK_FORCEON dose not implement")
280
281#endif
282
223#define SEND_STRING(string) send_string_P(PSTR(string)) 283#define SEND_STRING(string) send_string_P(PSTR(string))
224#define SEND_STRING_DELAY(string, interval) send_string_with_delay_P(PSTR(string), interval) 284#define SEND_STRING_DELAY(string, interval) send_string_with_delay_P(PSTR(string), interval)
225 285
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 @@
16#ifndef QUANTUM_KEYCODES_H 16#ifndef QUANTUM_KEYCODES_H
17#define QUANTUM_KEYCODES_H 17#define QUANTUM_KEYCODES_H
18 18
19#if defined(SEQUENCER_ENABLE)
20# include "sequencer.h"
21#endif
22
19#ifndef MIDI_ENABLE_STRICT 23#ifndef MIDI_ENABLE_STRICT
20# define MIDI_ENABLE_STRICT 0 24# define MIDI_ENABLE_STRICT 0
21#endif 25#endif
@@ -343,7 +347,8 @@ enum quantum_keycodes {
343 MI_TRNSU, // transpose up 347 MI_TRNSU, // transpose up
344 348
345 MIDI_VELOCITY_MIN, 349 MIDI_VELOCITY_MIN,
346 MI_VEL_1 = MIDI_VELOCITY_MIN, 350 MI_VEL_0 = MIDI_VELOCITY_MIN,
351 MI_VEL_1,
347 MI_VEL_2, 352 MI_VEL_2,
348 MI_VEL_3, 353 MI_VEL_3,
349 MI_VEL_4, 354 MI_VEL_4,
@@ -549,6 +554,37 @@ enum quantum_keycodes {
549 JS_BUTTON31, 554 JS_BUTTON31,
550 JS_BUTTON_MAX = JS_BUTTON31, 555 JS_BUTTON_MAX = JS_BUTTON31,
551 556
557#if defined(SEQUENCER_ENABLE)
558 SQ_ON,
559 SQ_OFF,
560 SQ_TOG,
561
562 SQ_TMPD, // Decrease tempo
563 SQ_TMPU, // Increase tempo
564
565 SEQUENCER_RESOLUTION_MIN,
566 SEQUENCER_RESOLUTION_MAX = SEQUENCER_RESOLUTION_MIN + SEQUENCER_RESOLUTIONS,
567 SQ_RESD, // Decrease resolution
568 SQ_RESU, // Increase resolution
569
570 SQ_SALL, // All steps on
571 SQ_SCLR, // All steps off
572 SEQUENCER_STEP_MIN,
573 SEQUENCER_STEP_MAX = SEQUENCER_STEP_MIN + SEQUENCER_STEPS,
574
575 SEQUENCER_TRACK_MIN,
576 SEQUENCER_TRACK_MAX = SEQUENCER_TRACK_MIN + SEQUENCER_TRACKS,
577
578/**
579 * Helpers to assign a keycode to a step, a resolution, or a track.
580 * Falls back to NOOP if n is out of range.
581 */
582# define SQ_S(n) (n < SEQUENCER_STEPS ? SEQUENCER_STEP_MIN + n : XXXXXXX)
583# define SQ_R(n) (n < SEQUENCER_RESOLUTIONS ? SEQUENCER_RESOLUTION_MIN + n : XXXXXXX)
584# define SQ_T(n) (n < SEQUENCER_TRACKS ? SEQUENCER_TRACK_MIN + n : XXXXXXX)
585
586#endif
587
552 // always leave at the end 588 // always leave at the end
553 SAFE_RANGE 589 SAFE_RANGE
554}; 590};
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};
31const point_t k_rgb_matrix_center = RGB_MATRIX_CENTER; 31const point_t k_rgb_matrix_center = RGB_MATRIX_CENTER;
32#endif 32#endif
33 33
34__attribute__((weak)) RGB rgb_matrix_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); }
35
34// Generic effect runners 36// Generic effect runners
35#include "rgb_matrix_runners/effect_runner_dx_dy_dist.h" 37#include "rgb_matrix_runners/effect_runner_dx_dy_dist.h"
36#include "rgb_matrix_runners/effect_runner_dx_dy.h" 38#include "rgb_matrix_runners/effect_runner_dx_dy.h"
@@ -401,6 +403,10 @@ void rgb_matrix_task(void) {
401 break; 403 break;
402 case RENDERING: 404 case RENDERING:
403 rgb_task_render(effect); 405 rgb_task_render(effect);
406 if (!suspend_backlight) {
407 rgb_matrix_indicators();
408 rgb_matrix_indicators_advanced(&rgb_effect_params);
409 }
404 break; 410 break;
405 case FLUSHING: 411 case FLUSHING:
406 rgb_task_flush(effect); 412 rgb_task_flush(effect);
@@ -409,10 +415,6 @@ void rgb_matrix_task(void) {
409 rgb_task_sync(); 415 rgb_task_sync();
410 break; 416 break;
411 } 417 }
412
413 if (!suspend_backlight) {
414 rgb_matrix_indicators();
415 }
416} 418}
417 419
418void rgb_matrix_indicators(void) { 420void rgb_matrix_indicators(void) {
@@ -424,6 +426,28 @@ __attribute__((weak)) void rgb_matrix_indicators_kb(void) {}
424 426
425__attribute__((weak)) void rgb_matrix_indicators_user(void) {} 427__attribute__((weak)) void rgb_matrix_indicators_user(void) {}
426 428
429void rgb_matrix_indicators_advanced(effect_params_t *params) {
430 /* special handling is needed for "params->iter", since it's already been incremented.
431 * Could move the invocations to rgb_task_render, but then it's missing a few checks
432 * and not sure which would be better. Otherwise, this should be called from
433 * rgb_task_render, right before the iter++ line.
434 */
435#if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < DRIVER_LED_TOTAL
436 uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * (params->iter - 1);
437 uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT;
438 if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL;
439#else
440 uint8_t min = 0;
441 uint8_t max = DRIVER_LED_TOTAL;
442#endif
443 rgb_matrix_indicators_advanced_kb(min, max);
444 rgb_matrix_indicators_advanced_user(min, max);
445}
446
447__attribute__((weak)) void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {}
448
449__attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {}
450
427void rgb_matrix_init(void) { 451void rgb_matrix_init(void) {
428 rgb_matrix_driver.init(); 452 rgb_matrix_driver.init();
429 453
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 @@
57 uint8_t max = DRIVER_LED_TOTAL; 57 uint8_t max = DRIVER_LED_TOTAL;
58#endif 58#endif
59 59
60#define RGB_MATRIX_INDICATOR_SET_COLOR(i, r, g, b) \
61 if (i >= led_min && i <= led_max) { \
62 rgb_matrix_set_color(i, r, g, b); \
63 }
64
60#define RGB_MATRIX_TEST_LED_FLAGS() \ 65#define RGB_MATRIX_TEST_LED_FLAGS() \
61 if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) continue 66 if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) continue
62 67
@@ -103,6 +108,10 @@ void rgb_matrix_indicators(void);
103void rgb_matrix_indicators_kb(void); 108void rgb_matrix_indicators_kb(void);
104void rgb_matrix_indicators_user(void); 109void rgb_matrix_indicators_user(void);
105 110
111void rgb_matrix_indicators_advanced(effect_params_t *params);
112void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max);
113void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max);
114
106void rgb_matrix_init(void); 115void rgb_matrix_init(void);
107 116
108void rgb_matrix_set_suspend_state(bool state); 117void 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) {
7 RGB_MATRIX_USE_LIMITS(led_min, led_max); 7 RGB_MATRIX_USE_LIMITS(led_min, led_max);
8 8
9 HSV hsv = rgb_matrix_config.hsv; 9 HSV hsv = rgb_matrix_config.hsv;
10 RGB rgb1 = hsv_to_rgb(hsv); 10 RGB rgb1 = rgb_matrix_hsv_to_rgb(hsv);
11 hsv.h += rgb_matrix_config.speed; 11 hsv.h += rgb_matrix_config.speed;
12 RGB rgb2 = hsv_to_rgb(hsv); 12 RGB rgb2 = rgb_matrix_hsv_to_rgb(hsv);
13 13
14 for (uint8_t i = led_min; i < led_max; i++) { 14 for (uint8_t i = led_min; i < led_max; i++) {
15 RGB_MATRIX_TEST_LED_FLAGS(); 15 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) {
8 HSV hsv = rgb_matrix_config.hsv; 8 HSV hsv = rgb_matrix_config.hsv;
9 uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8); 9 uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
10 hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); 10 hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
11 RGB rgb = hsv_to_rgb(hsv); 11 RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
12 for (uint8_t i = led_min; i < led_max; i++) { 12 for (uint8_t i = led_min; i < led_max; i++) {
13 RGB_MATRIX_TEST_LED_FLAGS(); 13 RGB_MATRIX_TEST_LED_FLAGS();
14 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 14 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) {
12 // The x range will be 0..224, map this to 0..7 12 // The x range will be 0..224, map this to 0..7
13 // Relies on hue being 8-bit and wrapping 13 // Relies on hue being 8-bit and wrapping
14 hsv.h = rgb_matrix_config.hsv.h + (scale * g_led_config.point[i].x >> 5); 14 hsv.h = rgb_matrix_config.hsv.h + (scale * g_led_config.point[i].x >> 5);
15 RGB rgb = hsv_to_rgb(hsv); 15 RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
16 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 16 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
17 } 17 }
18 return led_max < DRIVER_LED_TOTAL; 18 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) {
12 // The y range will be 0..64, map this to 0..4 12 // The y range will be 0..64, map this to 0..4
13 // Relies on hue being 8-bit and wrapping 13 // Relies on hue being 8-bit and wrapping
14 hsv.h = rgb_matrix_config.hsv.h + scale * (g_led_config.point[i].y >> 4); 14 hsv.h = rgb_matrix_config.hsv.h + scale * (g_led_config.point[i].y >> 4);
15 RGB rgb = hsv_to_rgb(hsv); 15 RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
16 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 16 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
17 } 17 }
18 return led_max < DRIVER_LED_TOTAL; 18 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)
5static void jellybean_raindrops_set_color(int i, effect_params_t* params) { 5static void jellybean_raindrops_set_color(int i, effect_params_t* params) {
6 if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; 6 if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
7 HSV hsv = {rand() & 0xFF, rand() & 0xFF, rgb_matrix_config.hsv.v}; 7 HSV hsv = {rand() & 0xFF, rand() & 0xFF, rgb_matrix_config.hsv.v};
8 RGB rgb = hsv_to_rgb(hsv); 8 RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
9 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 9 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
10} 10}
11 11
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) {
15 } 15 }
16 16
17 hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03)); 17 hsv.h = rgb_matrix_config.hsv.h + (deltaH * (rand() & 0x03));
18 RGB rgb = hsv_to_rgb(hsv); 18 RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
19 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 19 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
20} 20}
21 21
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)
4bool SOLID_COLOR(effect_params_t* params) { 4bool SOLID_COLOR(effect_params_t* params) {
5 RGB_MATRIX_USE_LIMITS(led_min, led_max); 5 RGB_MATRIX_USE_LIMITS(led_min, led_max);
6 6
7 RGB rgb = hsv_to_rgb(rgb_matrix_config.hsv); 7 RGB rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv);
8 for (uint8_t i = led_min; i < led_max; i++) { 8 for (uint8_t i = led_min; i < led_max; i++) {
9 RGB_MATRIX_TEST_LED_FLAGS(); 9 RGB_MATRIX_TEST_LED_FLAGS();
10 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 10 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) {
51 if (!HAS_ANY_FLAGS(g_led_config.flags[led[j]], params->flags)) continue; 51 if (!HAS_ANY_FLAGS(g_led_config.flags[led[j]], params->flags)) continue;
52 52
53 HSV hsv = {170 - qsub8(val, 85), rgb_matrix_config.hsv.s, scale8((qadd8(170, val) - 170) * 3, rgb_matrix_config.hsv.v)}; 53 HSV hsv = {170 - qsub8(val, 85), rgb_matrix_config.hsv.s, scale8((qadd8(170, val) - 170) * 3, rgb_matrix_config.hsv.v)};
54 RGB rgb = hsv_to_rgb(hsv); 54 RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
55 rgb_matrix_set_color(led[j], rgb.r, rgb.g, rgb.b); 55 rgb_matrix_set_color(led[j], rgb.r, rgb.g, rgb.b);
56 } 56 }
57 57
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) {
10 RGB_MATRIX_TEST_LED_FLAGS(); 10 RGB_MATRIX_TEST_LED_FLAGS();
11 int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x; 11 int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
12 int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y; 12 int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
13 RGB rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); 13 RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time));
14 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 14 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
15 } 15 }
16 return led_max < DRIVER_LED_TOTAL; 16 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)
11 int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x; 11 int16_t dx = g_led_config.point[i].x - k_rgb_matrix_center.x;
12 int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y; 12 int16_t dy = g_led_config.point[i].y - k_rgb_matrix_center.y;
13 uint8_t dist = sqrt16(dx * dx + dy * dy); 13 uint8_t dist = sqrt16(dx * dx + dy * dy);
14 RGB rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, dist, time)); 14 RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, dist, time));
15 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 15 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
16 } 16 }
17 return led_max < DRIVER_LED_TOTAL; 17 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) {
8 uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4); 8 uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
9 for (uint8_t i = led_min; i < led_max; i++) { 9 for (uint8_t i = led_min; i < led_max; i++) {
10 RGB_MATRIX_TEST_LED_FLAGS(); 10 RGB_MATRIX_TEST_LED_FLAGS();
11 RGB rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); 11 RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
12 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 12 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
13 } 13 }
14 return led_max < DRIVER_LED_TOTAL; 14 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) {
20 } 20 }
21 21
22 uint16_t offset = scale16by8(tick, rgb_matrix_config.speed); 22 uint16_t offset = scale16by8(tick, rgb_matrix_config.speed);
23 RGB rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, offset)); 23 RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, offset));
24 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 24 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
25 } 25 }
26 return led_max < DRIVER_LED_TOTAL; 26 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
20 hsv = effect_func(hsv, dx, dy, dist, tick); 20 hsv = effect_func(hsv, dx, dy, dist, tick);
21 } 21 }
22 hsv.v = scale8(hsv.v, rgb_matrix_config.hsv.v); 22 hsv.v = scale8(hsv.v, rgb_matrix_config.hsv.v);
23 RGB rgb = hsv_to_rgb(hsv); 23 RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
24 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 24 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
25 } 25 }
26 return led_max < DRIVER_LED_TOTAL; 26 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) {
10 int8_t sin_value = sin8(time) - 128; 10 int8_t sin_value = sin8(time) - 128;
11 for (uint8_t i = led_min; i < led_max; i++) { 11 for (uint8_t i = led_min; i < led_max; i++) {
12 RGB_MATRIX_TEST_LED_FLAGS(); 12 RGB_MATRIX_TEST_LED_FLAGS();
13 RGB rgb = hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); 13 RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time));
14 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); 14 rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
15 } 15 }
16 return led_max < DRIVER_LED_TOTAL; 16 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) {
123 rgblight_ranges.effect_num_leds = num_leds; 123 rgblight_ranges.effect_num_leds = num_leds;
124} 124}
125 125
126__attribute__((weak)) RGB rgblight_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); }
127
126void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { 128void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) {
127 HSV hsv = {hue, sat, val}; 129 HSV hsv = {hue, sat, val};
128 RGB rgb = hsv_to_rgb(hsv); 130 RGB rgb = rgblight_hsv_to_rgb(hsv);
129 setrgb(rgb.r, rgb.g, rgb.b, led1); 131 setrgb(rgb.r, rgb.g, rgb.b, led1);
130} 132}
131 133
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 @@
1/* Copyright 2020 Rodolphe Belouin
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "sequencer.h"
18
19#ifdef MIDI_ENABLE
20# include "process_midi.h"
21#endif
22
23#ifdef MIDI_MOCKED
24# include "tests/midi_mock.h"
25#endif
26
27sequencer_config_t sequencer_config = {
28 false, // enabled
29 {false}, // steps
30 {0}, // track notes
31 60, // tempo
32 SQ_RES_4, // resolution
33};
34
35sequencer_state_t sequencer_internal_state = {0, 0, 0, 0, SEQUENCER_PHASE_ATTACK};
36
37bool is_sequencer_on(void) { return sequencer_config.enabled; }
38
39void sequencer_on(void) {
40 dprintln("sequencer on");
41 sequencer_config.enabled = true;
42 sequencer_internal_state.current_track = 0;
43 sequencer_internal_state.current_step = 0;
44 sequencer_internal_state.timer = timer_read();
45 sequencer_internal_state.phase = SEQUENCER_PHASE_ATTACK;
46}
47
48void sequencer_off(void) {
49 dprintln("sequencer off");
50 sequencer_config.enabled = false;
51 sequencer_internal_state.current_step = 0;
52}
53
54void sequencer_toggle(void) {
55 if (is_sequencer_on()) {
56 sequencer_off();
57 } else {
58 sequencer_on();
59 }
60}
61
62void sequencer_set_track_notes(const uint16_t track_notes[SEQUENCER_TRACKS]) {
63 for (uint8_t i = 0; i < SEQUENCER_TRACKS; i++) {
64 sequencer_config.track_notes[i] = track_notes[i];
65 }
66}
67
68bool is_sequencer_track_active(uint8_t track) { return (sequencer_internal_state.active_tracks >> track) & true; }
69
70void sequencer_set_track_activation(uint8_t track, bool value) {
71 if (value) {
72 sequencer_internal_state.active_tracks |= (1 << track);
73 } else {
74 sequencer_internal_state.active_tracks &= ~(1 << track);
75 }
76 dprintf("sequencer: track %d is %s\n", track, value ? "active" : "inactive");
77}
78
79void sequencer_toggle_track_activation(uint8_t track) { sequencer_set_track_activation(track, !is_sequencer_track_active(track)); }
80
81void sequencer_toggle_single_active_track(uint8_t track) {
82 if (is_sequencer_track_active(track)) {
83 sequencer_internal_state.active_tracks = 0;
84 } else {
85 sequencer_internal_state.active_tracks = 1 << track;
86 }
87}
88
89bool is_sequencer_step_on(uint8_t step) { return step < SEQUENCER_STEPS && (sequencer_config.steps[step] & sequencer_internal_state.active_tracks) > 0; }
90
91bool is_sequencer_step_on_for_track(uint8_t step, uint8_t track) { return step < SEQUENCER_STEPS && (sequencer_config.steps[step] >> track) & true; }
92
93void sequencer_set_step(uint8_t step, bool value) {
94 if (step < SEQUENCER_STEPS) {
95 if (value) {
96 sequencer_config.steps[step] |= sequencer_internal_state.active_tracks;
97 } else {
98 sequencer_config.steps[step] &= ~sequencer_internal_state.active_tracks;
99 }
100 dprintf("sequencer: step %d is %s\n", step, value ? "on" : "off");
101 } else {
102 dprintf("sequencer: step %d is out of range\n", step);
103 }
104}
105
106void sequencer_toggle_step(uint8_t step) {
107 if (is_sequencer_step_on(step)) {
108 sequencer_set_step_off(step);
109 } else {
110 sequencer_set_step_on(step);
111 }
112}
113
114void sequencer_set_all_steps(bool value) {
115 for (uint8_t step = 0; step < SEQUENCER_STEPS; step++) {
116 if (value) {
117 sequencer_config.steps[step] |= sequencer_internal_state.active_tracks;
118 } else {
119 sequencer_config.steps[step] &= ~sequencer_internal_state.active_tracks;
120 }
121 }
122 dprintf("sequencer: all steps are %s\n", value ? "on" : "off");
123}
124
125uint8_t sequencer_get_tempo(void) { return sequencer_config.tempo; }
126
127void sequencer_set_tempo(uint8_t tempo) {
128 if (tempo > 0) {
129 sequencer_config.tempo = tempo;
130 dprintf("sequencer: tempo set to %d bpm\n", tempo);
131 } else {
132 dprintln("sequencer: cannot set tempo to 0");
133 }
134}
135
136void sequencer_increase_tempo(void) {
137 // Handling potential uint8_t overflow
138 if (sequencer_config.tempo < UINT8_MAX) {
139 sequencer_set_tempo(sequencer_config.tempo + 1);
140 } else {
141 dprintf("sequencer: cannot set tempo above %d\n", UINT8_MAX);
142 }
143}
144
145void sequencer_decrease_tempo(void) { sequencer_set_tempo(sequencer_config.tempo - 1); }
146
147sequencer_resolution_t sequencer_get_resolution(void) { return sequencer_config.resolution; }
148
149void sequencer_set_resolution(sequencer_resolution_t resolution) {
150 if (resolution >= 0 && resolution < SEQUENCER_RESOLUTIONS) {
151 sequencer_config.resolution = resolution;
152 dprintf("sequencer: resolution set to %d\n", resolution);
153 } else {
154 dprintf("sequencer: resolution %d is out of range\n", resolution);
155 }
156}
157
158void sequencer_increase_resolution(void) { sequencer_set_resolution(sequencer_config.resolution + 1); }
159
160void sequencer_decrease_resolution(void) { sequencer_set_resolution(sequencer_config.resolution - 1); }
161
162uint8_t sequencer_get_current_step(void) { return sequencer_internal_state.current_step; }
163
164void sequencer_phase_attack(void) {
165 dprintf("sequencer: step %d\n", sequencer_internal_state.current_step);
166 dprintf("sequencer: time %d\n", timer_read());
167
168 if (sequencer_internal_state.current_track == 0) {
169 sequencer_internal_state.timer = timer_read();
170 }
171
172 if (timer_elapsed(sequencer_internal_state.timer) < sequencer_internal_state.current_track * SEQUENCER_TRACK_THROTTLE) {
173 return;
174 }
175
176#if defined(MIDI_ENABLE) || defined(MIDI_MOCKED)
177 if (is_sequencer_step_on_for_track(sequencer_internal_state.current_step, sequencer_internal_state.current_track)) {
178 process_midi_basic_noteon(midi_compute_note(sequencer_config.track_notes[sequencer_internal_state.current_track]));
179 }
180#endif
181
182 if (sequencer_internal_state.current_track < SEQUENCER_TRACKS - 1) {
183 sequencer_internal_state.current_track++;
184 } else {
185 sequencer_internal_state.phase = SEQUENCER_PHASE_RELEASE;
186 }
187}
188
189void sequencer_phase_release(void) {
190 if (timer_elapsed(sequencer_internal_state.timer) < SEQUENCER_PHASE_RELEASE_TIMEOUT + sequencer_internal_state.current_track * SEQUENCER_TRACK_THROTTLE) {
191 return;
192 }
193#if defined(MIDI_ENABLE) || defined(MIDI_MOCKED)
194 if (is_sequencer_step_on_for_track(sequencer_internal_state.current_step, sequencer_internal_state.current_track)) {
195 process_midi_basic_noteoff(midi_compute_note(sequencer_config.track_notes[sequencer_internal_state.current_track]));
196 }
197#endif
198 if (sequencer_internal_state.current_track > 0) {
199 sequencer_internal_state.current_track--;
200 } else {
201 sequencer_internal_state.phase = SEQUENCER_PHASE_PAUSE;
202 }
203}
204
205void sequencer_phase_pause(void) {
206 if (timer_elapsed(sequencer_internal_state.timer) < sequencer_get_step_duration()) {
207 return;
208 }
209
210 sequencer_internal_state.current_step = (sequencer_internal_state.current_step + 1) % SEQUENCER_STEPS;
211 sequencer_internal_state.phase = SEQUENCER_PHASE_ATTACK;
212}
213
214void matrix_scan_sequencer(void) {
215 if (!sequencer_config.enabled) {
216 return;
217 }
218
219 if (sequencer_internal_state.phase == SEQUENCER_PHASE_PAUSE) {
220 sequencer_phase_pause();
221 }
222
223 if (sequencer_internal_state.phase == SEQUENCER_PHASE_RELEASE) {
224 sequencer_phase_release();
225 }
226
227 if (sequencer_internal_state.phase == SEQUENCER_PHASE_ATTACK) {
228 sequencer_phase_attack();
229 }
230}
231
232uint16_t sequencer_get_beat_duration(void) { return get_beat_duration(sequencer_config.tempo); }
233
234uint16_t sequencer_get_step_duration(void) { return get_step_duration(sequencer_config.tempo, sequencer_config.resolution); }
235
236uint16_t get_beat_duration(uint8_t tempo) {
237 // Don’t crash in the unlikely case where the given tempo is 0
238 if (tempo == 0) {
239 return get_beat_duration(60);
240 }
241
242 /**
243 * Given
244 * t = tempo and d = duration, both strictly greater than 0
245 * When
246 * t beats / minute = 1 beat / d ms
247 * Then
248 * t beats / 60000ms = 1 beat / d ms
249 * d ms = 60000ms / t
250 */
251 return 60000 / tempo;
252}
253
254uint16_t get_step_duration(uint8_t tempo, sequencer_resolution_t resolution) {
255 /**
256 * Resolution cheatsheet:
257 * 1/2 => 2 steps per 4 beats
258 * 1/2T => 3 steps per 4 beats
259 * 1/4 => 4 steps per 4 beats
260 * 1/4T => 6 steps per 4 beats
261 * 1/8 => 8 steps per 4 beats
262 * 1/8T => 12 steps per 4 beats
263 * 1/16 => 16 steps per 4 beats
264 * 1/16T => 24 steps per 4 beats
265 * 1/32 => 32 steps per 4 beats
266 *
267 * The number of steps for binary resolutions follows the powers of 2.
268 * The ternary variants are simply 1.5x faster.
269 */
270 bool is_binary = resolution % 2 == 0;
271 uint8_t binary_steps = 2 << (resolution / 2);
272 uint16_t binary_step_duration = get_beat_duration(tempo) * 4 / binary_steps;
273
274 return is_binary ? binary_step_duration : 2 * binary_step_duration / 3;
275}
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 @@
1/* Copyright 2020 Rodolphe Belouin
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include <stdbool.h>
20#include "debug.h"
21#include "timer.h"
22
23// Maximum number of steps: 256
24#ifndef SEQUENCER_STEPS
25# define SEQUENCER_STEPS 16
26#endif
27
28// Maximum number of tracks: 8
29#ifndef SEQUENCER_TRACKS
30# define SEQUENCER_TRACKS 8
31#endif
32
33#ifndef SEQUENCER_TRACK_THROTTLE
34# define SEQUENCER_TRACK_THROTTLE 3
35#endif
36
37#ifndef SEQUENCER_PHASE_RELEASE_TIMEOUT
38# define SEQUENCER_PHASE_RELEASE_TIMEOUT 30
39#endif
40
41/**
42 * Make sure that the items of this enumeration follow the powers of 2, separated by a ternary variant.
43 * Check the implementation of `get_step_duration` for further explanation.
44 */
45typedef 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;
46
47typedef struct {
48 bool enabled;
49 uint8_t steps[SEQUENCER_STEPS];
50 uint16_t track_notes[SEQUENCER_TRACKS];
51 uint8_t tempo; // Is a maximum tempo of 255 reasonable?
52 sequencer_resolution_t resolution;
53} sequencer_config_t;
54
55/**
56 * Because Digital Audio Workstations get overwhelmed when too many MIDI signals are sent concurrently,
57 * We use a "phase" state machine to delay some of the events.
58 */
59typedef enum sequencer_phase_t {
60 SEQUENCER_PHASE_ATTACK, // t=0ms, send the MIDI note on signal
61 SEQUENCER_PHASE_RELEASE, // t=SEQUENCER_PHASE_RELEASE_TIMEOUT ms, send the MIDI note off signal
62 SEQUENCER_PHASE_PAUSE // t=step duration ms, loop
63} sequencer_phase_t;
64
65typedef struct {
66 uint8_t active_tracks;
67 uint8_t current_track;
68 uint8_t current_step;
69 uint16_t timer;
70 sequencer_phase_t phase;
71} sequencer_state_t;
72
73extern sequencer_config_t sequencer_config;
74
75// We expose the internal state to make the feature more "unit-testable"
76extern sequencer_state_t sequencer_internal_state;
77
78bool is_sequencer_on(void);
79void sequencer_toggle(void);
80void sequencer_on(void);
81void sequencer_off(void);
82
83void sequencer_set_track_notes(const uint16_t track_notes[SEQUENCER_TRACKS]);
84
85bool is_sequencer_track_active(uint8_t track);
86void sequencer_set_track_activation(uint8_t track, bool value);
87void sequencer_toggle_track_activation(uint8_t track);
88void sequencer_toggle_single_active_track(uint8_t track);
89
90#define sequencer_activate_track(track) sequencer_set_track_activation(track, true)
91#define sequencer_deactivate_track(track) sequencer_set_track_activation(track, false)
92
93bool is_sequencer_step_on(uint8_t step);
94bool is_sequencer_step_on_for_track(uint8_t step, uint8_t track);
95void sequencer_set_step(uint8_t step, bool value);
96void sequencer_toggle_step(uint8_t step);
97void sequencer_set_all_steps(bool value);
98
99#define sequencer_set_step_on(step) sequencer_set_step(step, true)
100#define sequencer_set_step_off(step) sequencer_set_step(step, false)
101#define sequencer_set_all_steps_on() sequencer_set_all_steps(true)
102#define sequencer_set_all_steps_off() sequencer_set_all_steps(false)
103
104uint8_t sequencer_get_tempo(void);
105void sequencer_set_tempo(uint8_t tempo);
106void sequencer_increase_tempo(void);
107void sequencer_decrease_tempo(void);
108
109sequencer_resolution_t sequencer_get_resolution(void);
110void sequencer_set_resolution(sequencer_resolution_t resolution);
111void sequencer_increase_resolution(void);
112void sequencer_decrease_resolution(void);
113
114uint8_t sequencer_get_current_step(void);
115
116uint16_t sequencer_get_beat_duration(void);
117uint16_t sequencer_get_step_duration(void);
118
119uint16_t get_beat_duration(uint8_t tempo);
120uint16_t get_step_duration(uint8_t tempo, sequencer_resolution_t resolution);
121
122void 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 @@
1/* Copyright 2020 Rodolphe Belouin
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "midi_mock.h"
18
19uint16_t last_noteon = 0;
20uint16_t last_noteoff = 0;
21
22uint16_t midi_compute_note(uint16_t keycode) { return keycode; }
23
24void process_midi_basic_noteon(uint16_t note) { last_noteon = note; }
25
26void 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 @@
1/* Copyright 2020 Rodolphe Belouin
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include <stdint.h>
20
21extern uint16_t last_noteon;
22extern uint16_t last_noteoff;
23
24uint16_t midi_compute_note(uint16_t keycode);
25void process_midi_basic_noteon(uint16_t note);
26void 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 @@
1# The letter case of these variables might seem odd. However:
2# - 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)
3# - Neither `make test:sequencer` or `make test:SEQUENCER` work when using SCREAMING_SNAKE_CASE
4
5sequencer_DEFS := -DNO_DEBUG -DMIDI_MOCKED
6
7sequencer_SRC := \
8 $(QUANTUM_PATH)/sequencer/tests/midi_mock.c \
9 $(QUANTUM_PATH)/sequencer/tests/sequencer_tests.cpp \
10 $(QUANTUM_PATH)/sequencer/sequencer.c \
11 $(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 @@
1/* Copyright 2020 Rodolphe Belouin
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "gtest/gtest.h"
18
19extern "C" {
20#include "sequencer.h"
21#include "midi_mock.h"
22#include "quantum/quantum_keycodes.h"
23}
24
25extern "C" {
26void set_time(uint32_t t);
27void advance_time(uint32_t ms);
28}
29
30class SequencerTest : public ::testing::Test {
31 protected:
32 void SetUp() override {
33 config_copy.enabled = sequencer_config.enabled;
34
35 for (int i = 0; i < SEQUENCER_STEPS; i++) {
36 config_copy.steps[i] = sequencer_config.steps[i];
37 }
38
39 for (int i = 0; i < SEQUENCER_TRACKS; i++) {
40 config_copy.track_notes[i] = sequencer_config.track_notes[i];
41 }
42
43 config_copy.tempo = sequencer_config.tempo;
44 config_copy.resolution = sequencer_config.resolution;
45
46 state_copy.active_tracks = sequencer_internal_state.active_tracks;
47 state_copy.current_track = sequencer_internal_state.current_track;
48 state_copy.current_step = sequencer_internal_state.current_step;
49 state_copy.timer = sequencer_internal_state.timer;
50
51 last_noteon = 0;
52 last_noteoff = 0;
53
54 set_time(0);
55 }
56
57 void TearDown() override {
58 sequencer_config.enabled = config_copy.enabled;
59
60 for (int i = 0; i < SEQUENCER_STEPS; i++) {
61 sequencer_config.steps[i] = config_copy.steps[i];
62 }
63
64 for (int i = 0; i < SEQUENCER_TRACKS; i++) {
65 sequencer_config.track_notes[i] = config_copy.track_notes[i];
66 }
67
68 sequencer_config.tempo = config_copy.tempo;
69 sequencer_config.resolution = config_copy.resolution;
70
71 sequencer_internal_state.active_tracks = state_copy.active_tracks;
72 sequencer_internal_state.current_track = state_copy.current_track;
73 sequencer_internal_state.current_step = state_copy.current_step;
74 sequencer_internal_state.timer = state_copy.timer;
75 }
76
77 sequencer_config_t config_copy;
78 sequencer_state_t state_copy;
79};
80
81TEST_F(SequencerTest, TestOffByDefault) { EXPECT_EQ(is_sequencer_on(), false); }
82
83TEST_F(SequencerTest, TestOn) {
84 sequencer_config.enabled = false;
85
86 sequencer_on();
87 EXPECT_EQ(is_sequencer_on(), true);
88
89 // sequencer_on is idempotent
90 sequencer_on();
91 EXPECT_EQ(is_sequencer_on(), true);
92}
93
94TEST_F(SequencerTest, TestOff) {
95 sequencer_config.enabled = true;
96
97 sequencer_off();
98 EXPECT_EQ(is_sequencer_on(), false);
99
100 // sequencer_off is idempotent
101 sequencer_off();
102 EXPECT_EQ(is_sequencer_on(), false);
103}
104
105TEST_F(SequencerTest, TestToggle) {
106 sequencer_config.enabled = false;
107
108 sequencer_toggle();
109 EXPECT_EQ(is_sequencer_on(), true);
110
111 sequencer_toggle();
112 EXPECT_EQ(is_sequencer_on(), false);
113}
114
115TEST_F(SequencerTest, TestNoActiveTrackByDefault) {
116 for (int i = 0; i < SEQUENCER_TRACKS; i++) {
117 EXPECT_EQ(is_sequencer_track_active(i), false);
118 }
119}
120
121TEST_F(SequencerTest, TestGetActiveTracks) {
122 sequencer_internal_state.active_tracks = (1 << 7) + (1 << 6) + (1 << 3) + (1 << 1) + (1 << 0);
123
124 EXPECT_EQ(is_sequencer_track_active(0), true);
125 EXPECT_EQ(is_sequencer_track_active(1), true);
126 EXPECT_EQ(is_sequencer_track_active(2), false);
127 EXPECT_EQ(is_sequencer_track_active(3), true);
128 EXPECT_EQ(is_sequencer_track_active(4), false);
129 EXPECT_EQ(is_sequencer_track_active(5), false);
130 EXPECT_EQ(is_sequencer_track_active(6), true);
131 EXPECT_EQ(is_sequencer_track_active(7), true);
132}
133
134TEST_F(SequencerTest, TestGetActiveTracksOutOfBound) {
135 sequencer_set_track_activation(-1, true);
136 sequencer_set_track_activation(8, true);
137
138 EXPECT_EQ(is_sequencer_track_active(-1), false);
139 EXPECT_EQ(is_sequencer_track_active(8), false);
140}
141
142TEST_F(SequencerTest, TestToggleTrackActivation) {
143 sequencer_internal_state.active_tracks = (1 << 7) + (1 << 6) + (1 << 3) + (1 << 1) + (1 << 0);
144
145 sequencer_toggle_track_activation(6);
146
147 EXPECT_EQ(is_sequencer_track_active(0), true);
148 EXPECT_EQ(is_sequencer_track_active(1), true);
149 EXPECT_EQ(is_sequencer_track_active(2), false);
150 EXPECT_EQ(is_sequencer_track_active(3), true);
151 EXPECT_EQ(is_sequencer_track_active(4), false);
152 EXPECT_EQ(is_sequencer_track_active(5), false);
153 EXPECT_EQ(is_sequencer_track_active(6), false);
154 EXPECT_EQ(is_sequencer_track_active(7), true);
155}
156
157TEST_F(SequencerTest, TestToggleSingleTrackActivation) {
158 sequencer_internal_state.active_tracks = (1 << 7) + (1 << 6) + (1 << 3) + (1 << 1) + (1 << 0);
159
160 sequencer_toggle_single_active_track(2);
161
162 EXPECT_EQ(is_sequencer_track_active(0), false);
163 EXPECT_EQ(is_sequencer_track_active(1), false);
164 EXPECT_EQ(is_sequencer_track_active(2), true);
165 EXPECT_EQ(is_sequencer_track_active(3), false);
166 EXPECT_EQ(is_sequencer_track_active(4), false);
167 EXPECT_EQ(is_sequencer_track_active(5), false);
168 EXPECT_EQ(is_sequencer_track_active(6), false);
169 EXPECT_EQ(is_sequencer_track_active(7), false);
170}
171
172TEST_F(SequencerTest, TestStepOffByDefault) {
173 for (int i = 0; i < SEQUENCER_STEPS; i++) {
174 EXPECT_EQ(is_sequencer_step_on(i), false);
175 }
176}
177
178TEST_F(SequencerTest, TestIsStepOffWithNoActiveTracks) {
179 sequencer_config.steps[3] = 0xFF;
180 EXPECT_EQ(is_sequencer_step_on(3), false);
181}
182
183TEST_F(SequencerTest, TestIsStepOffWithGivenActiveTracks) {
184 sequencer_set_track_activation(2, true);
185 sequencer_set_track_activation(3, true);
186
187 sequencer_config.steps[3] = (1 << 0) + (1 << 1);
188
189 // No active tracks have the step enabled, so it is off
190 EXPECT_EQ(is_sequencer_step_on(3), false);
191}
192
193TEST_F(SequencerTest, TestIsStepOnWithGivenActiveTracks) {
194 sequencer_set_track_activation(2, true);
195 sequencer_set_track_activation(3, true);
196
197 sequencer_config.steps[3] = (1 << 2);
198
199 // Track 2 has the step enabled, so it is on
200 EXPECT_EQ(is_sequencer_step_on(3), true);
201}
202
203TEST_F(SequencerTest, TestIsStepOffForGivenTrack) {
204 sequencer_config.steps[3] = 0x00;
205 EXPECT_EQ(is_sequencer_step_on_for_track(3, 5), false);
206}
207
208TEST_F(SequencerTest, TestIsStepOnForGivenTrack) {
209 sequencer_config.steps[3] = (1 << 5);
210 EXPECT_EQ(is_sequencer_step_on_for_track(3, 5), true);
211}
212
213TEST_F(SequencerTest, TestSetStepOn) {
214 sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
215 sequencer_config.steps[2] = (1 << 5) + (1 << 2);
216
217 sequencer_set_step(2, true);
218
219 EXPECT_EQ(sequencer_config.steps[2], (1 << 6) + (1 << 5) + (1 << 3) + (1 << 2));
220}
221
222TEST_F(SequencerTest, TestSetStepOff) {
223 sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
224 sequencer_config.steps[2] = (1 << 5) + (1 << 2);
225
226 sequencer_set_step(2, false);
227
228 EXPECT_EQ(sequencer_config.steps[2], (1 << 5));
229}
230
231TEST_F(SequencerTest, TestToggleStepOff) {
232 sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
233 sequencer_config.steps[2] = (1 << 5) + (1 << 2);
234
235 sequencer_toggle_step(2);
236
237 EXPECT_EQ(sequencer_config.steps[2], (1 << 5));
238}
239
240TEST_F(SequencerTest, TestToggleStepOn) {
241 sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
242 sequencer_config.steps[2] = 0;
243
244 sequencer_toggle_step(2);
245
246 EXPECT_EQ(sequencer_config.steps[2], (1 << 6) + (1 << 3) + (1 << 2));
247}
248
249TEST_F(SequencerTest, TestSetAllStepsOn) {
250 sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
251 sequencer_config.steps[2] = (1 << 7) + (1 << 6);
252 sequencer_config.steps[4] = (1 << 3) + (1 << 1);
253
254 sequencer_set_all_steps(true);
255
256 EXPECT_EQ(sequencer_config.steps[2], (1 << 7) + (1 << 6) + (1 << 3) + (1 << 2));
257 EXPECT_EQ(sequencer_config.steps[4], (1 << 6) + (1 << 3) + (1 << 2) + (1 << 1));
258}
259
260TEST_F(SequencerTest, TestSetAllStepsOff) {
261 sequencer_internal_state.active_tracks = (1 << 6) + (1 << 3) + (1 << 2);
262 sequencer_config.steps[2] = (1 << 7) + (1 << 6);
263 sequencer_config.steps[4] = (1 << 3) + (1 << 1);
264
265 sequencer_set_all_steps(false);
266
267 EXPECT_EQ(sequencer_config.steps[2], (1 << 7));
268 EXPECT_EQ(sequencer_config.steps[4], (1 << 1));
269}
270
271TEST_F(SequencerTest, TestSetTempoZero) {
272 sequencer_config.tempo = 123;
273
274 sequencer_set_tempo(0);
275
276 EXPECT_EQ(sequencer_config.tempo, 123);
277}
278
279TEST_F(SequencerTest, TestIncreaseTempoMax) {
280 sequencer_config.tempo = UINT8_MAX;
281
282 sequencer_increase_tempo();
283
284 EXPECT_EQ(sequencer_config.tempo, UINT8_MAX);
285}
286
287TEST_F(SequencerTest, TestSetResolutionLowerBound) {
288 sequencer_config.resolution = SQ_RES_4;
289
290 sequencer_set_resolution((sequencer_resolution_t)-1);
291
292 EXPECT_EQ(sequencer_config.resolution, SQ_RES_4);
293}
294
295TEST_F(SequencerTest, TestSetResolutionUpperBound) {
296 sequencer_config.resolution = SQ_RES_4;
297
298 sequencer_set_resolution(SEQUENCER_RESOLUTIONS);
299
300 EXPECT_EQ(sequencer_config.resolution, SQ_RES_4);
301}
302
303TEST_F(SequencerTest, TestGetBeatDuration) {
304 EXPECT_EQ(get_beat_duration(60), 1000);
305 EXPECT_EQ(get_beat_duration(120), 500);
306 EXPECT_EQ(get_beat_duration(240), 250);
307 EXPECT_EQ(get_beat_duration(0), 1000);
308}
309
310TEST_F(SequencerTest, TestGetStepDuration60) {
311 /**
312 * Resolution cheatsheet:
313 * 1/2 => 2 steps per 4 beats
314 * 1/2T => 3 steps per 4 beats
315 * 1/4 => 4 steps per 4 beats
316 * 1/4T => 6 steps per 4 beats
317 * 1/8 => 8 steps per 4 beats
318 * 1/8T => 12 steps per 4 beats
319 * 1/16 => 16 steps per 4 beats
320 * 1/16T => 24 steps per 4 beats
321 * 1/32 => 32 steps per 4 beats
322 *
323 * The number of steps for binary resolutions follows the powers of 2.
324 * The ternary variants are simply 1.5x faster.
325 */
326 EXPECT_EQ(get_step_duration(60, SQ_RES_2), 2000);
327 EXPECT_EQ(get_step_duration(60, SQ_RES_4), 1000);
328 EXPECT_EQ(get_step_duration(60, SQ_RES_8), 500);
329 EXPECT_EQ(get_step_duration(60, SQ_RES_16), 250);
330 EXPECT_EQ(get_step_duration(60, SQ_RES_32), 125);
331
332 EXPECT_EQ(get_step_duration(60, SQ_RES_2T), 1333);
333 EXPECT_EQ(get_step_duration(60, SQ_RES_4T), 666);
334 EXPECT_EQ(get_step_duration(60, SQ_RES_8T), 333);
335 EXPECT_EQ(get_step_duration(60, SQ_RES_16T), 166);
336}
337
338TEST_F(SequencerTest, TestGetStepDuration120) {
339 /**
340 * Resolution cheatsheet:
341 * 1/2 => 2 steps per 4 beats
342 * 1/2T => 3 steps per 4 beats
343 * 1/4 => 4 steps per 4 beats
344 * 1/4T => 6 steps per 4 beats
345 * 1/8 => 8 steps per 4 beats
346 * 1/8T => 12 steps per 4 beats
347 * 1/16 => 16 steps per 4 beats
348 * 1/16T => 24 steps per 4 beats
349 * 1/32 => 32 steps per 4 beats
350 *
351 * The number of steps for binary resolutions follows the powers of 2.
352 * The ternary variants are simply 1.5x faster.
353 */
354 EXPECT_EQ(get_step_duration(30, SQ_RES_2), 4000);
355 EXPECT_EQ(get_step_duration(30, SQ_RES_4), 2000);
356 EXPECT_EQ(get_step_duration(30, SQ_RES_8), 1000);
357 EXPECT_EQ(get_step_duration(30, SQ_RES_16), 500);
358 EXPECT_EQ(get_step_duration(30, SQ_RES_32), 250);
359
360 EXPECT_EQ(get_step_duration(30, SQ_RES_2T), 2666);
361 EXPECT_EQ(get_step_duration(30, SQ_RES_4T), 1333);
362 EXPECT_EQ(get_step_duration(30, SQ_RES_8T), 666);
363 EXPECT_EQ(get_step_duration(30, SQ_RES_16T), 333);
364}
365
366void setUpMatrixScanSequencerTest(void) {
367 sequencer_config.enabled = true;
368 sequencer_config.tempo = 120;
369 sequencer_config.resolution = SQ_RES_16;
370
371 // Configure the notes for each track
372 sequencer_config.track_notes[0] = MI_C;
373 sequencer_config.track_notes[1] = MI_D;
374 sequencer_config.track_notes[2] = MI_E;
375 sequencer_config.track_notes[3] = MI_F;
376 sequencer_config.track_notes[4] = MI_G;
377 sequencer_config.track_notes[5] = MI_A;
378 sequencer_config.track_notes[6] = MI_B;
379 sequencer_config.track_notes[7] = MI_C;
380
381 // Turn on some steps
382 sequencer_config.steps[0] = (1 << 0);
383 sequencer_config.steps[2] = (1 << 1) + (1 << 0);
384}
385
386TEST_F(SequencerTest, TestMatrixScanSequencerShouldAttackFirstTrackOfFirstStep) {
387 setUpMatrixScanSequencerTest();
388
389 matrix_scan_sequencer();
390 EXPECT_EQ(last_noteon, MI_C);
391 EXPECT_EQ(last_noteoff, 0);
392}
393
394TEST_F(SequencerTest, TestMatrixScanSequencerShouldAttackSecondTrackAfterFirstTrackOfFirstStep) {
395 setUpMatrixScanSequencerTest();
396
397 matrix_scan_sequencer();
398 EXPECT_EQ(sequencer_internal_state.current_step, 0);
399 EXPECT_EQ(sequencer_internal_state.current_track, 1);
400 EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_ATTACK);
401}
402
403TEST_F(SequencerTest, TestMatrixScanSequencerShouldNotAttackInactiveTrackFirstStep) {
404 setUpMatrixScanSequencerTest();
405
406 sequencer_internal_state.current_step = 0;
407 sequencer_internal_state.current_track = 1;
408
409 // Wait some time after the first track has been attacked
410 advance_time(SEQUENCER_TRACK_THROTTLE);
411
412 matrix_scan_sequencer();
413 EXPECT_EQ(last_noteon, 0);
414 EXPECT_EQ(last_noteoff, 0);
415}
416
417TEST_F(SequencerTest, TestMatrixScanSequencerShouldAttackThirdTrackAfterSecondTrackOfFirstStep) {
418 setUpMatrixScanSequencerTest();
419
420 sequencer_internal_state.current_step = 0;
421 sequencer_internal_state.current_track = 1;
422
423 // Wait some time after the second track has been attacked
424 advance_time(2 * SEQUENCER_TRACK_THROTTLE);
425
426 matrix_scan_sequencer();
427 EXPECT_EQ(sequencer_internal_state.current_step, 0);
428 EXPECT_EQ(sequencer_internal_state.current_track, 2);
429 EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_ATTACK);
430}
431
432TEST_F(SequencerTest, TestMatrixScanSequencerShouldEnterReleasePhaseAfterLastTrackHasBeenProcessedFirstStep) {
433 setUpMatrixScanSequencerTest();
434
435 sequencer_internal_state.current_step = 0;
436 sequencer_internal_state.current_track = SEQUENCER_TRACKS - 1;
437
438 // Wait until all notes have been attacked
439 advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
440
441 matrix_scan_sequencer();
442 EXPECT_EQ(last_noteon, 0);
443 EXPECT_EQ(last_noteoff, 0);
444 EXPECT_EQ(sequencer_internal_state.current_step, 0);
445 EXPECT_EQ(sequencer_internal_state.current_track, SEQUENCER_TRACKS - 1);
446 EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_RELEASE);
447}
448
449TEST_F(SequencerTest, TestMatrixScanSequencerShouldReleaseBackwards) {
450 setUpMatrixScanSequencerTest();
451
452 sequencer_internal_state.current_step = 0;
453 sequencer_internal_state.current_track = SEQUENCER_TRACKS - 1;
454 sequencer_internal_state.phase = SEQUENCER_PHASE_RELEASE;
455
456 // Wait until all notes have been attacked
457 advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
458 // + the release timeout
459 advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
460
461 matrix_scan_sequencer();
462 EXPECT_EQ(sequencer_internal_state.current_step, 0);
463 EXPECT_EQ(sequencer_internal_state.current_track, SEQUENCER_TRACKS - 2);
464 EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_RELEASE);
465}
466
467TEST_F(SequencerTest, TestMatrixScanSequencerShouldNotReleaseInactiveTrackFirstStep) {
468 setUpMatrixScanSequencerTest();
469
470 sequencer_internal_state.current_step = 0;
471 sequencer_internal_state.current_track = SEQUENCER_TRACKS - 1;
472 sequencer_internal_state.phase = SEQUENCER_PHASE_RELEASE;
473
474 // Wait until all notes have been attacked
475 advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
476 // + the release timeout
477 advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
478
479 matrix_scan_sequencer();
480 EXPECT_EQ(last_noteon, 0);
481 EXPECT_EQ(last_noteoff, 0);
482}
483
484TEST_F(SequencerTest, TestMatrixScanSequencerShouldReleaseFirstTrackFirstStep) {
485 setUpMatrixScanSequencerTest();
486
487 sequencer_internal_state.current_step = 0;
488 sequencer_internal_state.current_track = 0;
489 sequencer_internal_state.phase = SEQUENCER_PHASE_RELEASE;
490
491 // Wait until all notes have been attacked
492 advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
493 // + the release timeout
494 advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
495 // + all the other notes have been released
496 advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
497
498 matrix_scan_sequencer();
499 EXPECT_EQ(last_noteon, 0);
500 EXPECT_EQ(last_noteoff, MI_C);
501}
502
503TEST_F(SequencerTest, TestMatrixScanSequencerShouldEnterPausePhaseAfterRelease) {
504 setUpMatrixScanSequencerTest();
505
506 sequencer_internal_state.current_step = 0;
507 sequencer_internal_state.current_track = 0;
508 sequencer_internal_state.phase = SEQUENCER_PHASE_RELEASE;
509
510 // Wait until all notes have been attacked
511 advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
512 // + the release timeout
513 advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
514 // + all the other notes have been released
515 advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
516
517 matrix_scan_sequencer();
518 EXPECT_EQ(sequencer_internal_state.current_step, 0);
519 EXPECT_EQ(sequencer_internal_state.current_track, 0);
520 EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_PAUSE);
521}
522
523TEST_F(SequencerTest, TestMatrixScanSequencerShouldProcessFirstTrackOfSecondStepAfterPause) {
524 setUpMatrixScanSequencerTest();
525
526 sequencer_internal_state.current_step = 0;
527 sequencer_internal_state.current_track = 0;
528 sequencer_internal_state.phase = SEQUENCER_PHASE_PAUSE;
529
530 // Wait until all notes have been attacked
531 advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
532 // + the release timeout
533 advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
534 // + all the other notes have been released
535 advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
536 // + the step duration (one 16th at tempo=120 lasts 125ms)
537 advance_time(125);
538
539 matrix_scan_sequencer();
540 EXPECT_EQ(sequencer_internal_state.current_step, 1);
541 EXPECT_EQ(sequencer_internal_state.current_track, 1);
542 EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_ATTACK);
543}
544
545TEST_F(SequencerTest, TestMatrixScanSequencerShouldProcessSecondTrackTooEarly) {
546 setUpMatrixScanSequencerTest();
547
548 sequencer_internal_state.current_step = 2;
549 sequencer_internal_state.current_track = 1;
550
551 matrix_scan_sequencer();
552 EXPECT_EQ(last_noteon, 0);
553 EXPECT_EQ(last_noteoff, 0);
554}
555
556TEST_F(SequencerTest, TestMatrixScanSequencerShouldProcessSecondTrackOnTime) {
557 setUpMatrixScanSequencerTest();
558
559 sequencer_internal_state.current_step = 2;
560 sequencer_internal_state.current_track = 1;
561
562 // Wait until first track has been attacked
563 advance_time(SEQUENCER_TRACK_THROTTLE);
564
565 matrix_scan_sequencer();
566 EXPECT_EQ(last_noteon, MI_D);
567 EXPECT_EQ(last_noteoff, 0);
568}
569
570TEST_F(SequencerTest, TestMatrixScanSequencerShouldLoopOnceSequenceIsOver) {
571 setUpMatrixScanSequencerTest();
572
573 sequencer_internal_state.current_step = SEQUENCER_STEPS - 1;
574 sequencer_internal_state.current_track = 0;
575 sequencer_internal_state.phase = SEQUENCER_PHASE_PAUSE;
576
577 // Wait until all notes have been attacked
578 advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
579 // + the release timeout
580 advance_time(SEQUENCER_PHASE_RELEASE_TIMEOUT);
581 // + all the other notes have been released
582 advance_time((SEQUENCER_TRACKS - 1) * SEQUENCER_TRACK_THROTTLE);
583 // + the step duration (one 16th at tempo=120 lasts 125ms)
584 advance_time(125);
585
586 matrix_scan_sequencer();
587 EXPECT_EQ(sequencer_internal_state.current_step, 0);
588 EXPECT_EQ(sequencer_internal_state.current_track, 1);
589 EXPECT_EQ(sequencer_internal_state.phase, SEQUENCER_PHASE_ATTACK);
590}
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;
45// user-defined overridable functions 45// user-defined overridable functions
46__attribute__((weak)) void matrix_slave_scan_user(void) {} 46__attribute__((weak)) void matrix_slave_scan_user(void) {}
47 47
48static inline void setPinOutput_writeLow(pin_t pin) {
49 ATOMIC_BLOCK_FORCEON {
50 setPinOutput(pin);
51 writePinLow(pin);
52 }
53}
54
55static inline void setPinInputHigh_atomic(pin_t pin) {
56 ATOMIC_BLOCK_FORCEON {
57 setPinInputHigh(pin);
58 }
59}
60
48// matrix code 61// matrix code
49 62
50#ifdef DIRECT_PINS 63#ifdef DIRECT_PINS
@@ -83,22 +96,23 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
83# if (DIODE_DIRECTION == COL2ROW) 96# if (DIODE_DIRECTION == COL2ROW)
84 97
85static void select_row(uint8_t row) { 98static void select_row(uint8_t row) {
86 setPinOutput(row_pins[row]); 99 setPinOutput_writeLow(row_pins[row]);
87 writePinLow(row_pins[row]);
88} 100}
89 101
90static void unselect_row(uint8_t row) { setPinInputHigh(row_pins[row]); } 102static void unselect_row(uint8_t row) {
103 setPinInputHigh_atomic(row_pins[row]);
104}
91 105
92static void unselect_rows(void) { 106static void unselect_rows(void) {
93 for (uint8_t x = 0; x < ROWS_PER_HAND; x++) { 107 for (uint8_t x = 0; x < ROWS_PER_HAND; x++) {
94 setPinInputHigh(row_pins[x]); 108 setPinInputHigh_atomic(row_pins[x]);
95 } 109 }
96} 110}
97 111
98static void init_pins(void) { 112static void init_pins(void) {
99 unselect_rows(); 113 unselect_rows();
100 for (uint8_t x = 0; x < MATRIX_COLS; x++) { 114 for (uint8_t x = 0; x < MATRIX_COLS; x++) {
101 setPinInputHigh(col_pins[x]); 115 setPinInputHigh_atomic(col_pins[x]);
102 } 116 }
103} 117}
104 118
@@ -133,22 +147,23 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
133# elif (DIODE_DIRECTION == ROW2COL) 147# elif (DIODE_DIRECTION == ROW2COL)
134 148
135static void select_col(uint8_t col) { 149static void select_col(uint8_t col) {
136 setPinOutput(col_pins[col]); 150 setPinOutput_writeLow(col_pins[col]);
137 writePinLow(col_pins[col]);
138} 151}
139 152
140static void unselect_col(uint8_t col) { setPinInputHigh(col_pins[col]); } 153static void unselect_col(uint8_t col) {
154 setPinInputHigh_atomic(col_pins[col]);
155}
141 156
142static void unselect_cols(void) { 157static void unselect_cols(void) {
143 for (uint8_t x = 0; x < MATRIX_COLS; x++) { 158 for (uint8_t x = 0; x < MATRIX_COLS; x++) {
144 setPinInputHigh(col_pins[x]); 159 setPinInputHigh_atomic(col_pins[x]);
145 } 160 }
146} 161}
147 162
148static void init_pins(void) { 163static void init_pins(void) {
149 unselect_cols(); 164 unselect_cols();
150 for (uint8_t x = 0; x < ROWS_PER_HAND; x++) { 165 for (uint8_t x = 0; x < ROWS_PER_HAND; x++) {
151 setPinInputHigh(row_pins[x]); 166 setPinInputHigh_atomic(row_pins[x]);
152 } 167 }
153} 168}
154 169
diff --git a/requirements.txt b/requirements.txt
index d20803577e..6e907cf8e8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,7 +1,7 @@
1# Python requirements 1# Python requirements
2# milc FIXME(skullydazed): Included in the repo for now.
3appdirs 2appdirs
4argcomplete 3argcomplete
5colorama 4colorama
6hjson 5hjson
6milc
7pygments 7pygments
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 = \
20 RGBLIGHT_ENABLE \ 20 RGBLIGHT_ENABLE \
21 RGBLIGHT_CUSTOM_DRIVER \ 21 RGBLIGHT_CUSTOM_DRIVER \
22 RGB_MATRIX_ENABLE \ 22 RGB_MATRIX_ENABLE \
23 RGB_MATRIX_DRIVER \
23 SERIAL_LINK_ENABLE \ 24 SERIAL_LINK_ENABLE \
24 CIE1931_CURVE \ 25 CIE1931_CURVE \
25 MIDI_ENABLE \ 26 MIDI_ENABLE \
diff --git a/testlist.mk b/testlist.mk
index d949fb3eae..ca1408806c 100644
--- a/testlist.mk
+++ b/testlist.mk
@@ -1,6 +1,7 @@
1TEST_LIST = $(notdir $(patsubst %/rules.mk,%,$(wildcard $(ROOT_DIR)/tests/*/rules.mk))) 1TEST_LIST = $(notdir $(patsubst %/rules.mk,%,$(wildcard $(ROOT_DIR)/tests/*/rules.mk)))
2FULL_TESTS := $(TEST_LIST) 2FULL_TESTS := $(TEST_LIST)
3 3
4include $(ROOT_DIR)/quantum/sequencer/tests/testlist.mk
4include $(ROOT_DIR)/quantum/serial_link/tests/testlist.mk 5include $(ROOT_DIR)/quantum/serial_link/tests/testlist.mk
5 6
6define VALIDATE_TEST_LIST 7define 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)","")
123 CHCONFDIR = $(KEYBOARD_PATH_1) 123 CHCONFDIR = $(KEYBOARD_PATH_1)
124else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/configs/chconf.h)","") 124else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/configs/chconf.h)","")
125 CHCONFDIR = $(TOP_DIR)/platforms/chibios/$(BOARD)/configs 125 CHCONFDIR = $(TOP_DIR)/platforms/chibios/$(BOARD)/configs
126else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/common/configs/chconf.h)","")
127 CHCONFDIR = $(TOP_DIR)/platforms/chibios/common/configs
126endif 128endif
127 129
128ifneq ("$(wildcard $(KEYBOARD_PATH_5)/halconf.h)","") 130ifneq ("$(wildcard $(KEYBOARD_PATH_5)/halconf.h)","")
@@ -137,6 +139,8 @@ else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/halconf.h)","")
137 HALCONFDIR = $(KEYBOARD_PATH_1) 139 HALCONFDIR = $(KEYBOARD_PATH_1)
138else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/configs/halconf.h)","") 140else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/$(BOARD)/configs/halconf.h)","")
139 HALCONFDIR = $(TOP_DIR)/platforms/chibios/$(BOARD)/configs 141 HALCONFDIR = $(TOP_DIR)/platforms/chibios/$(BOARD)/configs
142else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/common/configs/halconf.h)","")
143 HALCONFDIR = $(TOP_DIR)/platforms/chibios/common/configs
140endif 144endif
141 145
142# HAL-OSAL files (optional). 146# HAL-OSAL files (optional).
@@ -183,8 +187,8 @@ else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld)","")
183 LDSCRIPT = $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld 187 LDSCRIPT = $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld
184else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld)","") 188else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld)","")
185 LDSCRIPT = $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld 189 LDSCRIPT = $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld
186else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/ld/$(MCU_LDSCRIPT).ld)","") 190else ifneq ("$(wildcard $(TOP_DIR)/platforms/chibios/common/ld/$(MCU_LDSCRIPT).ld)","")
187 LDSCRIPT = $(TOP_DIR)/platforms/chibios/ld/$(MCU_LDSCRIPT).ld 191 LDSCRIPT = $(TOP_DIR)/platforms/chibios/common/ld/$(MCU_LDSCRIPT).ld
188else ifneq ("$(wildcard $(STARTUPLD_CONTRIB)/$(MCU_LDSCRIPT).ld)","") 192else ifneq ("$(wildcard $(STARTUPLD_CONTRIB)/$(MCU_LDSCRIPT).ld)","")
189 LDSCRIPT = $(STARTUPLD_CONTRIB)/$(MCU_LDSCRIPT).ld 193 LDSCRIPT = $(STARTUPLD_CONTRIB)/$(MCU_LDSCRIPT).ld
190 USE_CHIBIOS_CONTRIB = yes 194 USE_CHIBIOS_CONTRIB = yes
@@ -209,6 +213,8 @@ CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC))
209 213
210EXTRAINCDIRS += $(CHIBIOS)/os/license $(CHIBIOS)/os/oslib/include \ 214EXTRAINCDIRS += $(CHIBIOS)/os/license $(CHIBIOS)/os/oslib/include \
211 $(TOP_DIR)/platforms/chibios/$(BOARD)/configs \ 215 $(TOP_DIR)/platforms/chibios/$(BOARD)/configs \
216 $(TOP_DIR)/platforms/chibios/common/configs \
217 $(HALCONFDIR) $(CHCONFDIR) \
212 $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ 218 $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
213 $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ 219 $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
214 $(STREAMSINC) $(CHIBIOS)/os/various $(COMMON_VPATH) 220 $(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/>.
37# include "nodebug.h" 37# include "nodebug.h"
38#endif 38#endif
39 39
40#ifdef POINTING_DEVICE_ENABLE
41# include "pointing_device.h"
42#endif
43
40int tp_buttons; 44int tp_buttons;
41 45
42#ifdef RETRO_TAPPING 46#if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY)
43int retro_tapping_counter = 0; 47int retro_tapping_counter = 0;
44#endif 48#endif
45 49
@@ -51,6 +55,10 @@ int retro_tapping_counter = 0;
51__attribute__((weak)) bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { return false; } 55__attribute__((weak)) bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) { return false; }
52#endif 56#endif
53 57
58#ifdef RETRO_TAPPING_PER_KEY
59__attribute__((weak)) bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) { return false; }
60#endif
61
54#ifndef TAP_CODE_DELAY 62#ifndef TAP_CODE_DELAY
55# define TAP_CODE_DELAY 0 63# define TAP_CODE_DELAY 0
56#endif 64#endif
@@ -67,7 +75,7 @@ void action_exec(keyevent_t event) {
67 dprint("EVENT: "); 75 dprint("EVENT: ");
68 debug_event(event); 76 debug_event(event);
69 dprintln(); 77 dprintln();
70#ifdef RETRO_TAPPING 78#if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY)
71 retro_tapping_counter++; 79 retro_tapping_counter++;
72#endif 80#endif
73 } 81 }
@@ -220,6 +228,19 @@ void process_record_handler(keyrecord_t *record) {
220 process_action(record, action); 228 process_action(record, action);
221} 229}
222 230
231#if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE)
232void register_button(bool pressed, enum mouse_buttons button) {
233# ifdef PS2_MOUSE_ENABLE
234 tp_buttons = pressed ? tp_buttons | button : tp_buttons & ~button;
235# endif
236# ifdef POINTING_DEVICE_ENABLE
237 report_mouse_t currentReport = pointing_device_get_report();
238 currentReport.buttons = pressed ? currentReport.buttons | button : currentReport.buttons & ~button;
239 pointing_device_set_report(currentReport);
240# endif
241}
242#endif
243
223/** \brief Take an action and processes it. 244/** \brief Take an action and processes it.
224 * 245 *
225 * FIXME: Needs documentation. 246 * FIXME: Needs documentation.
@@ -404,15 +425,23 @@ void process_action(keyrecord_t *record, action_t action) {
404 if (event.pressed) { 425 if (event.pressed) {
405 mousekey_on(action.key.code); 426 mousekey_on(action.key.code);
406 switch (action.key.code) { 427 switch (action.key.code) {
407# ifdef PS2_MOUSE_ENABLE 428# if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE)
408 case KC_MS_BTN1: 429 case KC_MS_BTN1:
409 tp_buttons |= (1 << 0); 430 register_button(true, MOUSE_BTN1);
410 break; 431 break;
411 case KC_MS_BTN2: 432 case KC_MS_BTN2:
412 tp_buttons |= (1 << 1); 433 register_button(true, MOUSE_BTN2);
413 break; 434 break;
414 case KC_MS_BTN3: 435 case KC_MS_BTN3:
415 tp_buttons |= (1 << 2); 436 register_button(true, MOUSE_BTN3);
437 break;
438# endif
439# ifdef POINTING_DEVICE_ENABLE
440 case KC_MS_BTN4:
441 register_button(true, MOUSE_BTN4);
442 break;
443 case KC_MS_BTN5:
444 register_button(true, MOUSE_BTN5);
416 break; 445 break;
417# endif 446# endif
418 default: 447 default:
@@ -422,15 +451,23 @@ void process_action(keyrecord_t *record, action_t action) {
422 } else { 451 } else {
423 mousekey_off(action.key.code); 452 mousekey_off(action.key.code);
424 switch (action.key.code) { 453 switch (action.key.code) {
425# ifdef PS2_MOUSE_ENABLE 454# if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE)
426 case KC_MS_BTN1: 455 case KC_MS_BTN1:
427 tp_buttons &= ~(1 << 0); 456 register_button(false, MOUSE_BTN1);
428 break; 457 break;
429 case KC_MS_BTN2: 458 case KC_MS_BTN2:
430 tp_buttons &= ~(1 << 1); 459 register_button(false, MOUSE_BTN2);
431 break; 460 break;
432 case KC_MS_BTN3: 461 case KC_MS_BTN3:
433 tp_buttons &= ~(1 << 2); 462 register_button(false, MOUSE_BTN3);
463 break;
464# endif
465# ifdef POINTING_DEVICE_ENABLE
466 case KC_MS_BTN4:
467 register_button(false, MOUSE_BTN4);
468 break;
469 case KC_MS_BTN5:
470 register_button(false, MOUSE_BTN5);
434 break; 471 break;
435# endif 472# endif
436 default: 473 default:
@@ -692,20 +729,23 @@ void process_action(keyrecord_t *record, action_t action) {
692#endif 729#endif
693 730
694#ifndef NO_ACTION_TAPPING 731#ifndef NO_ACTION_TAPPING
695# ifdef RETRO_TAPPING 732# if defined(RETRO_TAPPING) || defined(RETRO_TAPPING_PER_KEY)
696 if (!is_tap_action(action)) { 733 if (!is_tap_action(action)) {
697 retro_tapping_counter = 0; 734 retro_tapping_counter = 0;
698 } else { 735 } else {
699 if (event.pressed) { 736 if (event.pressed) {
700 if (tap_count > 0) { 737 if (tap_count > 0) {
701 retro_tapping_counter = 0; 738 retro_tapping_counter = 0;
702 } else {
703 } 739 }
704 } else { 740 } else {
705 if (tap_count > 0) { 741 if (tap_count > 0) {
706 retro_tapping_counter = 0; 742 retro_tapping_counter = 0;
707 } else { 743 } else {
708 if (retro_tapping_counter == 2) { 744 if (
745# ifdef RETRO_TAPPING_PER_KEY
746 get_retro_tapping(get_event_keycode(record->event, false), record) &&
747# endif
748 retro_tapping_counter == 2) {
709 tap_code(action.layer_tap.code); 749 tap_code(action.layer_tap.code);
710 } 750 }
711 retro_tapping_counter = 0; 751 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; }
290void clear_macro_mods(void) { macro_mods = 0; } 290void clear_macro_mods(void) { macro_mods = 0; }
291 291
292#ifndef NO_ACTION_ONESHOT 292#ifndef NO_ACTION_ONESHOT
293/** \brief get oneshot mods
294 *
295 * FIXME: needs doc
296 */
297uint8_t get_oneshot_mods(void) { return oneshot_mods; }
298
299void add_oneshot_mods(uint8_t mods) {
300 if ((oneshot_mods & mods) != mods) {
301# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
302 oneshot_time = timer_read();
303# endif
304 oneshot_mods |= mods;
305 oneshot_mods_changed_kb(mods);
306 }
307}
308
309void del_oneshot_mods(uint8_t mods) {
310 if (oneshot_mods & mods) {
311 oneshot_mods &= ~mods;
312# if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
313 oneshot_time = oneshot_mods ? timer_read() : 0;
314# endif
315 oneshot_mods_changed_kb(oneshot_mods);
316 }
317}
318
293/** \brief set oneshot mods 319/** \brief set oneshot mods
294 * 320 *
295 * FIXME: needs doc 321 * FIXME: needs doc
@@ -316,11 +342,6 @@ void clear_oneshot_mods(void) {
316 oneshot_mods_changed_kb(oneshot_mods); 342 oneshot_mods_changed_kb(oneshot_mods);
317 } 343 }
318} 344}
319/** \brief get oneshot mods
320 *
321 * FIXME: needs doc
322 */
323uint8_t get_oneshot_mods(void) { return oneshot_mods; }
324#endif 345#endif
325 346
326/** \brief Called when the one shot modifiers have been changed. 347/** \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);
57void clear_macro_mods(void); 57void clear_macro_mods(void);
58 58
59/* oneshot modifier */ 59/* oneshot modifier */
60void set_oneshot_mods(uint8_t mods);
61uint8_t get_oneshot_mods(void); 60uint8_t get_oneshot_mods(void);
61void add_oneshot_mods(uint8_t mods);
62void del_oneshot_mods(uint8_t mods);
63void set_oneshot_mods(uint8_t mods);
62void clear_oneshot_mods(void); 64void clear_oneshot_mods(void);
63void oneshot_toggle(void);
64void oneshot_enable(void);
65void oneshot_disable(void);
66bool has_oneshot_mods_timed_out(void); 65bool has_oneshot_mods_timed_out(void);
67 66
68uint8_t get_oneshot_locked_mods(void); 67uint8_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 @@
1#include "matrix.h" 1#include "matrix.h"
2#include "i2c_master.h" 2#include "i2c_master.h"
3#include "led_matrix.h" 3#include "md_rgb_matrix.h"
4#include "suspend.h" 4#include "suspend.h"
5 5
6/** \brief Suspend idle 6/** \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 @@
32 32
33extern uint32_t __ram0_end__; 33extern uint32_t __ram0_end__;
34 34
35void bootloader_jump(void) { 35__attribute__((weak)) void bootloader_jump(void) {
36 // For STM32 MCUs with dual-bank flash, and we're incapable of jumping to the bootloader. The first valid flash 36 // For STM32 MCUs with dual-bank flash, and we're incapable of jumping to the bootloader. The first valid flash
37 // bank is executed unconditionally after a reset, so it doesn't enter DFU unless BOOT0 is high. Instead, we do 37 // bank is executed unconditionally after a reset, so it doesn't enter DFU unless BOOT0 is high. Instead, we do
38 // it with hardware...in this case, we pull a GPIO high/low depending on the configuration, connects 3.3V to 38 // 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
58 58
59extern uint32_t __ram0_end__; 59extern uint32_t __ram0_end__;
60 60
61void bootloader_jump(void) { 61__attribute__((weak)) void bootloader_jump(void) {
62 *MAGIC_ADDR = BOOTLOADER_MAGIC; // set magic flag => reset handler will jump into boot loader 62 *MAGIC_ADDR = BOOTLOADER_MAGIC; // set magic flag => reset handler will jump into boot loader
63 NVIC_SystemReset(); 63 NVIC_SystemReset();
64} 64}
@@ -85,8 +85,8 @@ void enter_bootloader_mode_if_requested(void) {
85# if defined(BOOTLOADER_KIIBOHD) 85# if defined(BOOTLOADER_KIIBOHD)
86/* Kiibohd Bootloader (MCHCK and Infinity KB) */ 86/* Kiibohd Bootloader (MCHCK and Infinity KB) */
87# define SCB_AIRCR_VECTKEY_WRITEMAGIC 0x05FA0000 87# define SCB_AIRCR_VECTKEY_WRITEMAGIC 0x05FA0000
88const uint8_t sys_reset_to_loader_magic[] = "\xff\x00\x7fRESET TO LOADER\x7f\x00\xff"; 88const uint8_t sys_reset_to_loader_magic[] = "\xff\x00\x7fRESET TO LOADER\x7f\x00\xff";
89void bootloader_jump(void) { 89__attribute__((weak)) void bootloader_jump(void) {
90 __builtin_memcpy((void *)VBAT, (const void *)sys_reset_to_loader_magic, sizeof(sys_reset_to_loader_magic)); 90 __builtin_memcpy((void *)VBAT, (const void *)sys_reset_to_loader_magic, sizeof(sys_reset_to_loader_magic));
91 // request reset 91 // request reset
92 SCB->AIRCR = SCB_AIRCR_VECTKEY_WRITEMAGIC | SCB_AIRCR_SYSRESETREQ_Msk; 92 SCB->AIRCR = SCB_AIRCR_VECTKEY_WRITEMAGIC | SCB_AIRCR_SYSRESETREQ_Msk;
@@ -95,7 +95,7 @@ void bootloader_jump(void) {
95# else /* defined(BOOTLOADER_KIIBOHD) */ 95# else /* defined(BOOTLOADER_KIIBOHD) */
96/* Default for Kinetis - expecting an ARM Teensy */ 96/* Default for Kinetis - expecting an ARM Teensy */
97# include "wait.h" 97# include "wait.h"
98void bootloader_jump(void) { 98__attribute__((weak)) void bootloader_jump(void) {
99 wait_ms(100); 99 wait_ms(100);
100 __BKPT(0); 100 __BKPT(0);
101} 101}
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 @@
13# include "eeprom_driver.h" 13# include "eeprom_driver.h"
14#endif 14#endif
15 15
16#if defined(HAPTIC_ENABLE)
17# include "haptic.h"
18#endif
19
16/** \brief eeconfig enable 20/** \brief eeconfig enable
17 * 21 *
18 * FIXME: needs doc 22 * FIXME: needs doc
@@ -65,6 +69,15 @@ void eeconfig_init_quantum(void) {
65 eeprom_update_byte(EECONFIG_HANDEDNESS, 0); 69 eeprom_update_byte(EECONFIG_HANDEDNESS, 0);
66#endif 70#endif
67 71
72#if defined(HAPTIC_ENABLE)
73 haptic_reset();
74#else
75 // this is used in case haptic is disabled, but we still want sane defaults
76 // in the haptic configuration eeprom. All zero will trigger a haptic_reset
77 // when a haptic-enabled firmware is loaded onto the keyboard.
78 eeprom_update_dword(EECONFIG_HAPTIC, 0);
79#endif
80
68 eeconfig_init_kb(); 81 eeconfig_init_kb();
69} 82}
70 83
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; }
235 */ 235 */
236__attribute__((weak)) bool should_process_keypress(void) { return is_keyboard_master(); } 236__attribute__((weak)) bool should_process_keypress(void) { return is_keyboard_master(); }
237 237
238/** \brief housekeeping_task_kb
239 *
240 * Override this function if you have a need to execute code for every keyboard main loop iteration.
241 * This is specific to keyboard-level functionality.
242 */
243__attribute__((weak)) void housekeeping_task_kb(void) {}
244
245/** \brief housekeeping_task_user
246 *
247 * Override this function if you have a need to execute code for every keyboard main loop iteration.
248 * This is specific to user/keymap-level functionality.
249 */
250__attribute__((weak)) void housekeeping_task_user(void) {}
251
238/** \brief keyboard_init 252/** \brief keyboard_init
239 * 253 *
240 * FIXME: needs doc 254 * FIXME: needs doc
@@ -291,6 +305,10 @@ void keyboard_init(void) {
291 dip_switch_init(); 305 dip_switch_init();
292#endif 306#endif
293 307
308#if defined(DEBUG_MATRIX_SCAN_RATE) && defined(CONSOLE_ENABLE)
309 debug_enable = true;
310#endif
311
294 keyboard_post_init_kb(); /* Always keep this last */ 312 keyboard_post_init_kb(); /* Always keep this last */
295} 313}
296 314
@@ -315,6 +333,9 @@ void keyboard_task(void) {
315 uint8_t keys_processed = 0; 333 uint8_t keys_processed = 0;
316#endif 334#endif
317 335
336 housekeeping_task_kb();
337 housekeeping_task_user();
338
318#if defined(OLED_DRIVER_ENABLE) && !defined(OLED_DISABLE_TIMEOUT) 339#if defined(OLED_DRIVER_ENABLE) && !defined(OLED_DISABLE_TIMEOUT)
319 uint8_t ret = matrix_scan(); 340 uint8_t ret = matrix_scan();
320#else 341#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);
71void keyboard_post_init_kb(void); 71void keyboard_post_init_kb(void);
72void keyboard_post_init_user(void); 72void keyboard_post_init_user(void);
73 73
74void housekeeping_task_kb(void);
75void housekeeping_task_user(void);
76
74#ifdef __cplusplus 77#ifdef __cplusplus
75} 78}
76#endif 79#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;
30# error "MATRIX_COLS: invalid value" 30# error "MATRIX_COLS: invalid value"
31#endif 31#endif
32 32
33#if (MATRIX_ROWS <= 8)
34typedef uint8_t matrix_col_t;
35#elif (MATRIX_ROWS <= 16)
36typedef uint16_t matrix_col_t;
37#elif (MATRIX_ROWS <= 32)
38typedef uint32_t matrix_col_t;
39#else
40# error "MATRIX_ROWS: invalid value"
41#endif
42
43#define MATRIX_ROW_SHIFTER ((matrix_row_t)1) 33#define MATRIX_ROW_SHIFTER ((matrix_row_t)1)
44 34
45#define MATRIX_IS_ON(row, col) (matrix_get_row(row) && (1 << col)) 35#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 {
192 192
193typedef struct { 193typedef struct {
194#if JOYSTICK_AXES_COUNT > 0 194#if JOYSTICK_AXES_COUNT > 0
195# if JOYSTICK_AXES_RESOLUTION > 8
196 int16_t axes[JOYSTICK_AXES_COUNT];
197# else
195 int8_t axes[JOYSTICK_AXES_COUNT]; 198 int8_t axes[JOYSTICK_AXES_COUNT];
199# endif
196#endif 200#endif
197 201
198#if JOYSTICK_BUTTON_COUNT > 0 202#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
4SRC += $(ARM_ATSAM_DIR)/clks.c 4SRC += $(ARM_ATSAM_DIR)/clks.c
5SRC += $(ARM_ATSAM_DIR)/d51_util.c 5SRC += $(ARM_ATSAM_DIR)/d51_util.c
6SRC += $(ARM_ATSAM_DIR)/i2c_master.c 6SRC += $(ARM_ATSAM_DIR)/i2c_master.c
7ifeq ($(RGB_MATRIX_ENABLE),custom) 7ifeq ($(RGB_MATRIX_DRIVER),custom)
8 SRC += $(ARM_ATSAM_DIR)/led_matrix_programs.c 8 SRC += $(ARM_ATSAM_DIR)/md_rgb_matrix_programs.c
9 SRC += $(ARM_ATSAM_DIR)/led_matrix.c 9 SRC += $(ARM_ATSAM_DIR)/md_rgb_matrix.c
10endif 10endif
11SRC += $(ARM_ATSAM_DIR)/main_arm_atsam.c 11SRC += $(ARM_ATSAM_DIR)/main_arm_atsam.c
12SRC += $(ARM_ATSAM_DIR)/spi.c 12SRC += $(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/>.
35 35
36# include "main_arm_atsam.h" 36# include "main_arm_atsam.h"
37# ifdef RGB_MATRIX_ENABLE 37# ifdef RGB_MATRIX_ENABLE
38# include "led_matrix.h" 38# include "md_rgb_matrix.h"
39# include "rgb_matrix.h" 39# include "rgb_matrix.h"
40# endif 40# endif
41# include "issi3733_driver.h" 41# 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) {
305 // 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); 305 // 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);
306 } 306 }
307#endif // CONSOLE_ENABLE 307#endif // CONSOLE_ENABLE
308
309 // Run housekeeping
310 housekeeping_task_kb();
311 housekeeping_task_user();
308 } 312 }
309 313
310 return 1; 314 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/>.
23 23
24#ifdef USE_MASSDROP_CONFIGURATOR 24#ifdef USE_MASSDROP_CONFIGURATOR
25__attribute__((weak)) led_instruction_t led_instructions[] = {{.end = 1}}; 25__attribute__((weak)) led_instruction_t led_instructions[] = {{.end = 1}};
26static void led_matrix_massdrop_config_override(int i); 26static void md_rgb_matrix_config_override(int i);
27#endif // USE_MASSDROP_CONFIGURATOR 27#endif // USE_MASSDROP_CONFIGURATOR
28 28
29void SERCOM1_0_Handler(void) { 29void SERCOM1_0_Handler(void) {
@@ -188,7 +188,7 @@ void issi3733_prepare_arrays(void) {
188 } 188 }
189} 189}
190 190
191void led_matrix_prepare(void) { 191void md_rgb_matrix_prepare(void) {
192 for (uint8_t i = 0; i < ISSI3733_LED_COUNT; i++) { 192 for (uint8_t i = 0; i < ISSI3733_LED_COUNT; i++) {
193 *led_map[i].rgb.r = 0; 193 *led_map[i].rgb.r = 0;
194 *led_map[i].rgb.g = 0; 194 *led_map[i].rgb.g = 0;
@@ -199,7 +199,7 @@ void led_matrix_prepare(void) {
199void led_set_one(int i, uint8_t r, uint8_t g, uint8_t b) { 199void led_set_one(int i, uint8_t r, uint8_t g, uint8_t b) {
200 if (i < ISSI3733_LED_COUNT) { 200 if (i < ISSI3733_LED_COUNT) {
201#ifdef USE_MASSDROP_CONFIGURATOR 201#ifdef USE_MASSDROP_CONFIGURATOR
202 led_matrix_massdrop_config_override(i); 202 md_rgb_matrix_config_override(i);
203#else 203#else
204 led_buffer[i].r = r; 204 led_buffer[i].r = r;
205 led_buffer[i].g = g; 205 led_buffer[i].g = g;
@@ -219,7 +219,7 @@ void init(void) {
219 219
220 issi3733_prepare_arrays(); 220 issi3733_prepare_arrays();
221 221
222 led_matrix_prepare(); 222 md_rgb_matrix_prepare();
223 223
224 gcr_min_counter = 0; 224 gcr_min_counter = 0;
225 v_5v_cat_hit = 0; 225 v_5v_cat_hit = 0;
@@ -290,7 +290,7 @@ void flush(void) {
290 i2c_led_q_run(); 290 i2c_led_q_run();
291} 291}
292 292
293void led_matrix_indicators(void) { 293void md_rgb_matrix_indicators(void) {
294 uint8_t kbled = keyboard_leds(); 294 uint8_t kbled = keyboard_leds();
295 if (kbled && rgb_matrix_config.enable) { 295 if (kbled && rgb_matrix_config.enable) {
296 for (uint8_t i = 0; i < ISSI3733_LED_COUNT; i++) { 296 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
397 } 397 }
398} 398}
399 399
400static void led_matrix_massdrop_config_override(int i) { 400static void md_rgb_matrix_config_override(int i) {
401 float ro = 0; 401 float ro = 0;
402 float go = 0; 402 float go = 0;
403 float bo = 0; 403 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;
86 86
87void gcr_compute(void); 87void gcr_compute(void);
88 88
89void led_matrix_indicators(void); 89void md_rgb_matrix_indicators(void);
90 90
91/*------------------------- Legacy Lighting Support ------------------------*/ 91/*------------------------- Legacy Lighting Support ------------------------*/
92 92
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/>.
17 17
18#ifdef USE_MASSDROP_CONFIGURATOR 18#ifdef USE_MASSDROP_CONFIGURATOR
19 19
20# include "led_matrix.h" 20# include "md_rgb_matrix.h"
21 21
22// Teal <-> Salmon 22// Teal <-> Salmon
23led_setup_t leds_teal_salmon[] = { 23led_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 @@
54#ifdef STM32_EEPROM_ENABLE 54#ifdef STM32_EEPROM_ENABLE
55# include "eeprom_stm32.h" 55# include "eeprom_stm32.h"
56#endif 56#endif
57#ifdef EEPROM_DRIVER
58# include "eeprom_driver.h"
59#endif
57#include "suspend.h" 60#include "suspend.h"
58#include "wait.h" 61#include "wait.h"
59 62
@@ -150,6 +153,9 @@ int main(void) {
150#ifdef STM32_EEPROM_ENABLE 153#ifdef STM32_EEPROM_ENABLE
151 EEPROM_Init(); 154 EEPROM_Init();
152#endif 155#endif
156#ifdef EEPROM_DRIVER
157 eeprom_driver_init();
158#endif
153 159
154 // TESTING 160 // TESTING
155 // chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); 161 // chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
@@ -230,6 +236,7 @@ int main(void) {
230 /* Remote wakeup */ 236 /* Remote wakeup */
231 if (suspend_wakeup_condition()) { 237 if (suspend_wakeup_condition()) {
232 usbWakeupHost(&USB_DRIVER); 238 usbWakeupHost(&USB_DRIVER);
239 restart_usb_driver(&USB_DRIVER);
233 } 240 }
234 } 241 }
235 /* Woken up */ 242 /* Woken up */
@@ -258,5 +265,9 @@ int main(void) {
258#ifdef RAW_ENABLE 265#ifdef RAW_ENABLE
259 raw_hid_task(); 266 raw_hid_task();
260#endif 267#endif
268
269 // Run housekeeping
270 housekeeping_task_kb();
271 housekeeping_task_user();
261 } 272 }
262} 273}
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 = {
165}; 165};
166#endif 166#endif
167 167
168#if STM32_USB_USE_OTG1
169typedef struct {
170 size_t queue_capacity_in;
171 size_t queue_capacity_out;
172 USBInEndpointState in_ep_state;
173 USBOutEndpointState out_ep_state;
174 USBInEndpointState int_ep_state;
175 USBEndpointConfig inout_ep_config;
176 USBEndpointConfig int_ep_config;
177 const QMKUSBConfig config;
178 QMKUSBDriver driver;
179} usb_driver_config_t;
180#else
168typedef struct { 181typedef struct {
169 size_t queue_capacity_in; 182 size_t queue_capacity_in;
170 size_t queue_capacity_out; 183 size_t queue_capacity_out;
@@ -177,7 +190,54 @@ typedef struct {
177 const QMKUSBConfig config; 190 const QMKUSBConfig config;
178 QMKUSBDriver driver; 191 QMKUSBDriver driver;
179} usb_driver_config_t; 192} usb_driver_config_t;
193#endif
180 194
195#if STM32_USB_USE_OTG1
196/* Reusable initialization structure - see USBEndpointConfig comment at top of file */
197#define QMK_USB_DRIVER_CONFIG(stream, notification, fixedsize) \
198 { \
199 .queue_capacity_in = stream##_IN_CAPACITY, .queue_capacity_out = stream##_OUT_CAPACITY, \
200 .inout_ep_config = \
201 { \
202 stream##_IN_MODE, /* Interrupt EP */ \
203 NULL, /* SETUP packet notification callback */ \
204 qmkusbDataTransmitted, /* IN notification callback */ \
205 qmkusbDataReceived, /* OUT notification callback */ \
206 stream##_EPSIZE, /* IN maximum packet size */ \
207 stream##_EPSIZE, /* OUT maximum packet size */ \
208 NULL, /* IN Endpoint state */ \
209 NULL, /* OUT endpoint state */ \
210 2, /* IN multiplier */ \
211 NULL /* SETUP buffer (not a SETUP endpoint) */ \
212 }, \
213 .int_ep_config = \
214 { \
215 USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ \
216 NULL, /* SETUP packet notification callback */ \
217 qmkusbInterruptTransmitted, /* IN notification callback */ \
218 NULL, /* OUT notification callback */ \
219 CDC_NOTIFICATION_EPSIZE, /* IN maximum packet size */ \
220 0, /* OUT maximum packet size */ \
221 NULL, /* IN Endpoint state */ \
222 NULL, /* OUT endpoint state */ \
223 2, /* IN multiplier */ \
224 NULL, /* SETUP buffer (not a SETUP endpoint) */ \
225 }, \
226 .config = { \
227 .usbp = &USB_DRIVER, \
228 .bulk_in = stream##_IN_EPNUM, \
229 .bulk_out = stream##_OUT_EPNUM, \
230 .int_in = notification, \
231 .in_buffers = stream##_IN_CAPACITY, \
232 .out_buffers = stream##_OUT_CAPACITY, \
233 .in_size = stream##_EPSIZE, \
234 .out_size = stream##_EPSIZE, \
235 .fixed_size = fixedsize, \
236 .ib = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]){}, \
237 .ob = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY, stream##_EPSIZE)]){}, \
238 } \
239 }
240#else
181/* Reusable initialization structure - see USBEndpointConfig comment at top of file */ 241/* Reusable initialization structure - see USBEndpointConfig comment at top of file */
182#define QMK_USB_DRIVER_CONFIG(stream, notification, fixedsize) \ 242#define QMK_USB_DRIVER_CONFIG(stream, notification, fixedsize) \
183 { \ 243 { \
@@ -235,6 +295,7 @@ typedef struct {
235 .ob = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY, stream##_EPSIZE)]){}, \ 295 .ob = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY, stream##_EPSIZE)]){}, \
236 } \ 296 } \
237 } 297 }
298#endif
238 299
239typedef struct { 300typedef struct {
240 union { 301 union {
@@ -327,8 +388,12 @@ static void usb_event_cb(USBDriver *usbp, usbevent_t event) {
327 usbInitEndpointI(usbp, SHARED_IN_EPNUM, &shared_ep_config); 388 usbInitEndpointI(usbp, SHARED_IN_EPNUM, &shared_ep_config);
328#endif 389#endif
329 for (int i = 0; i < NUM_USB_DRIVERS; i++) { 390 for (int i = 0; i < NUM_USB_DRIVERS; i++) {
391 #if STM32_USB_USE_OTG1
392 usbInitEndpointI(usbp, drivers.array[i].config.bulk_in, &drivers.array[i].inout_ep_config);
393 #else
330 usbInitEndpointI(usbp, drivers.array[i].config.bulk_in, &drivers.array[i].in_ep_config); 394 usbInitEndpointI(usbp, drivers.array[i].config.bulk_in, &drivers.array[i].in_ep_config);
331 usbInitEndpointI(usbp, drivers.array[i].config.bulk_out, &drivers.array[i].out_ep_config); 395 usbInitEndpointI(usbp, drivers.array[i].config.bulk_out, &drivers.array[i].out_ep_config);
396 #endif
332 if (drivers.array[i].config.int_in) { 397 if (drivers.array[i].config.int_in) {
333 usbInitEndpointI(usbp, drivers.array[i].config.int_in, &drivers.array[i].int_ep_config); 398 usbInitEndpointI(usbp, drivers.array[i].config.int_in, &drivers.array[i].int_ep_config);
334 } 399 }
@@ -553,12 +618,21 @@ static const USBConfig usbcfg = {
553 */ 618 */
554void init_usb_driver(USBDriver *usbp) { 619void init_usb_driver(USBDriver *usbp) {
555 for (int i = 0; i < NUM_USB_DRIVERS; i++) { 620 for (int i = 0; i < NUM_USB_DRIVERS; i++) {
621 #if STM32_USB_USE_OTG1
622 QMKUSBDriver *driver = &drivers.array[i].driver;
623 drivers.array[i].inout_ep_config.in_state = &drivers.array[i].in_ep_state;
624 drivers.array[i].inout_ep_config.out_state = &drivers.array[i].out_ep_state;
625 drivers.array[i].int_ep_config.in_state = &drivers.array[i].int_ep_state;
626 qmkusbObjectInit(driver, &drivers.array[i].config);
627 qmkusbStart(driver, &drivers.array[i].config);
628 #else
556 QMKUSBDriver *driver = &drivers.array[i].driver; 629 QMKUSBDriver *driver = &drivers.array[i].driver;
557 drivers.array[i].in_ep_config.in_state = &drivers.array[i].in_ep_state; 630 drivers.array[i].in_ep_config.in_state = &drivers.array[i].in_ep_state;
558 drivers.array[i].out_ep_config.out_state = &drivers.array[i].out_ep_state; 631 drivers.array[i].out_ep_config.out_state = &drivers.array[i].out_ep_state;
559 drivers.array[i].int_ep_config.in_state = &drivers.array[i].int_ep_state; 632 drivers.array[i].int_ep_config.in_state = &drivers.array[i].int_ep_state;
560 qmkusbObjectInit(driver, &drivers.array[i].config); 633 qmkusbObjectInit(driver, &drivers.array[i].config);
561 qmkusbStart(driver, &drivers.array[i].config); 634 qmkusbStart(driver, &drivers.array[i].config);
635 #endif
562 } 636 }
563 637
564 /* 638 /*
@@ -574,6 +648,13 @@ void init_usb_driver(USBDriver *usbp) {
574 chVTObjectInit(&keyboard_idle_timer); 648 chVTObjectInit(&keyboard_idle_timer);
575} 649}
576 650
651void restart_usb_driver(USBDriver *usbp) {
652 usbStop(usbp);
653 usbDisconnectBus(usbp);
654 usbStart(usbp, &usbcfg);
655 usbConnectBus(usbp);
656}
657
577/* --------------------------------------------------------- 658/* ---------------------------------------------------------
578 * Keyboard functions 659 * Keyboard functions
579 * --------------------------------------------------------- 660 * ---------------------------------------------------------
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 @@
35/* Initialize the USB driver and bus */ 35/* Initialize the USB driver and bus */
36void init_usb_driver(USBDriver *usbp); 36void init_usb_driver(USBDriver *usbp);
37 37
38/* Restart the USB driver and bus */
39void restart_usb_driver(USBDriver *usbp);
40
38/* --------------- 41/* ---------------
39 * Keyboard header 42 * Keyboard header
40 * --------------- 43 * ---------------
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) {
1104#if !defined(INTERRUPT_CONTROL_ENDPOINT) 1104#if !defined(INTERRUPT_CONTROL_ENDPOINT)
1105 USB_USBTask(); 1105 USB_USBTask();
1106#endif 1106#endif
1107
1108 // Run housekeeping
1109 housekeeping_task_kb();
1110 housekeeping_task_user();
1107 } 1111 }
1108} 1112}
1109 1113
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 @@
41#include "usb_descriptor.h" 41#include "usb_descriptor.h"
42#include "usb_descriptor_common.h" 42#include "usb_descriptor_common.h"
43 43
44#ifdef JOYSTICK_ENABLE
45# include "joystick.h"
46#endif
47
44// clang-format off 48// clang-format off
45 49
46/* 50/*
@@ -308,10 +312,17 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] = {
308 HID_RI_USAGE(8, 0x35), // Rz 312 HID_RI_USAGE(8, 0x35), // Rz
309# endif 313# endif
310# if JOYSTICK_AXES_COUNT >= 1 314# if JOYSTICK_AXES_COUNT >= 1
311 HID_RI_LOGICAL_MINIMUM(8, -127), 315 # if JOYSTICK_AXES_RESOLUTION == 8
312 HID_RI_LOGICAL_MAXIMUM(8, 127), 316 HID_RI_LOGICAL_MINIMUM(8, -JOYSTICK_RESOLUTION),
317 HID_RI_LOGICAL_MAXIMUM(8, JOYSTICK_RESOLUTION),
313 HID_RI_REPORT_COUNT(8, JOYSTICK_AXES_COUNT), 318 HID_RI_REPORT_COUNT(8, JOYSTICK_AXES_COUNT),
314 HID_RI_REPORT_SIZE(8, 0x08), 319 HID_RI_REPORT_SIZE(8, 0x08),
320 # else
321 HID_RI_LOGICAL_MINIMUM(16, -JOYSTICK_RESOLUTION),
322 HID_RI_LOGICAL_MAXIMUM(16, JOYSTICK_RESOLUTION),
323 HID_RI_REPORT_COUNT(8, JOYSTICK_AXES_COUNT),
324 HID_RI_REPORT_SIZE(8, 0x10),
325 # endif
315 HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), 326 HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
316# endif 327# endif
317 328
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 {
205 205
206#ifdef RAW_ENABLE 206#ifdef RAW_ENABLE
207 RAW_IN_EPNUM = NEXT_EPNUM, 207 RAW_IN_EPNUM = NEXT_EPNUM,
208 #if STM32_USB_USE_OTG1
209 #define RAW_OUT_EPNUM RAW_IN_EPNUM
210 #else
208 RAW_OUT_EPNUM = NEXT_EPNUM, 211 RAW_OUT_EPNUM = NEXT_EPNUM,
212 #endif
209#endif 213#endif
210 214
211#ifdef SHARED_EP_ENABLE 215#ifdef SHARED_EP_ENABLE
@@ -219,7 +223,11 @@ enum usb_endpoints {
219 // ChibiOS has enough memory and descriptor to actually enable the endpoint 223 // ChibiOS has enough memory and descriptor to actually enable the endpoint
220 // It could use the same endpoint numbers, as that's supported by ChibiOS 224 // It could use the same endpoint numbers, as that's supported by ChibiOS
221 // But the QMK code currently assumes that the endpoint numbers are different 225 // But the QMK code currently assumes that the endpoint numbers are different
226 #if STM32_USB_USE_OTG1
227 #define CONSOLE_OUT_EPNUM CONSOLE_IN_EPNUM
228 #else
222 CONSOLE_OUT_EPNUM = NEXT_EPNUM, 229 CONSOLE_OUT_EPNUM = NEXT_EPNUM,
230 #endif
223# else 231# else
224# define CONSOLE_OUT_EPNUM CONSOLE_IN_EPNUM 232# define CONSOLE_OUT_EPNUM CONSOLE_IN_EPNUM
225# endif 233# endif
@@ -227,17 +235,29 @@ enum usb_endpoints {
227 235
228#ifdef MIDI_ENABLE 236#ifdef MIDI_ENABLE
229 MIDI_STREAM_IN_EPNUM = NEXT_EPNUM, 237 MIDI_STREAM_IN_EPNUM = NEXT_EPNUM,
238 #if STM32_USB_USE_OTG1
239 #define MIDI_STREAM_OUT_EPNUM MIDI_STREAM_IN_EPNUM
240 #else
230 MIDI_STREAM_OUT_EPNUM = NEXT_EPNUM, 241 MIDI_STREAM_OUT_EPNUM = NEXT_EPNUM,
242 #endif
231#endif 243#endif
232 244
233#ifdef VIRTSER_ENABLE 245#ifdef VIRTSER_ENABLE
234 CDC_NOTIFICATION_EPNUM = NEXT_EPNUM, 246 CDC_NOTIFICATION_EPNUM = NEXT_EPNUM,
235 CDC_IN_EPNUM = NEXT_EPNUM, 247 CDC_IN_EPNUM = NEXT_EPNUM,
248 #if STM32_USB_USE_OTG1
249 #define CDC_OUT_EPNUM CDC_IN_EPNUM
250 #else
236 CDC_OUT_EPNUM = NEXT_EPNUM, 251 CDC_OUT_EPNUM = NEXT_EPNUM,
252 #endif
237#endif 253#endif
238#ifdef JOYSTICK_ENABLE 254#ifdef JOYSTICK_ENABLE
239 JOYSTICK_IN_EPNUM = NEXT_EPNUM, 255 JOYSTICK_IN_EPNUM = NEXT_EPNUM,
256 #if STM32_USB_USE_OTG1
257 JOYSTICK_OUT_EPNUM = JOYSTICK_IN_EPNUM,
258 #else
240 JOYSTICK_OUT_EPNUM = NEXT_EPNUM, 259 JOYSTICK_OUT_EPNUM = NEXT_EPNUM,
260 #endif
241#endif 261#endif
242}; 262};
243 263
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) {
153 console_task(); 153 console_task();
154 } 154 }
155#endif 155#endif
156
157 // Run housekeeping
158 housekeeping_task_kb();
159 housekeeping_task_user();
156 } else if (suspend_wakeup_condition()) { 160 } else if (suspend_wakeup_condition()) {
157 usb_remote_wakeup(); 161 usb_remote_wakeup();
158 } 162 }
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
8BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration 8BOOTMAGIC_ENABLE = full # Virtual DIP switch configuration
9 9
10ifeq ($(strip $(KEYBOARD)), crkbd/rev1) 10ifeq ($(strip $(KEYBOARD)), crkbd/rev1)
11RGB_MATRIX_ENABLE = WS2812 11RGB_MATRIX_ENABLE = yes
12EXTRAFLAGS += -flto 12EXTRAFLAGS += -flto
13BOOTLOADER = qmk-dfu 13BOOTLOADER = qmk-dfu
14OLED_DRIVER_ENABLE = yes 14OLED_DRIVER_ENABLE = yes
@@ -19,7 +19,6 @@ MOUSEKEY_ENABLE = no # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control 19EXTRAKEY_ENABLE = yes # Audio control and System control
20BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default 20BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
21RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 21RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
22# RGB_MATRIX_ENABLE = WS2812
23endif 22endif
24 23
25 24
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 @@
1#pragma once 1#pragma once
2 2
3#ifdef KEYBOARD_maartenwut_plain60 3#ifdef KEYBOARD_evyd13_plain60
4 4
5#define B7_AUDIO 5#define B7_AUDIO
6#ifdef AUDIO_ENABLE 6#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
6AUDIO_ENABLE = no 6AUDIO_ENABLE = no
7 7
8# only enable audio on specific boards 8# only enable audio on specific boards
9ifeq ($(strip $(KEYBOARD)), maartenwut/plain60) 9ifeq ($(strip $(KEYBOARD)), evyd13/plain60)
10 AUDIO_ENABLE = yes 10 AUDIO_ENABLE = yes
11endif 11endif
12 12