diff --git a/.travis.yml b/.travis.yml
index a827700362..194c469b22 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -22,7 +22,7 @@ before_script:
script:
- git rev-parse --short HEAD
- make test:all
-- make all:default
+- make all:all
addons:
apt:
packages:
diff --git a/keyboards/ergodox_ez/keymaps/default_glow/keymap.c b/keyboards/ergodox_ez/keymaps/glow/keymap.c
similarity index 100%
rename from keyboards/ergodox_ez/keymaps/default_glow/keymap.c
rename to keyboards/ergodox_ez/keymaps/glow/keymap.c
diff --git a/keyboards/ergodox_ez/keymaps/default_glow/rules.mk b/keyboards/ergodox_ez/keymaps/glow/rules.mk
similarity index 100%
rename from keyboards/ergodox_ez/keymaps/default_glow/rules.mk
rename to keyboards/ergodox_ez/keymaps/glow/rules.mk
diff --git a/keyboards/ergodox_ez/keymaps/reactive/config.h b/keyboards/ergodox_ez/keymaps/reactive/config.h
new file mode 100644
index 0000000000..458ca9a8d4
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/reactive/config.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#define RGB_MATRIX_KEYPRESSES
+
+#define DISABLE_RGB_MATRIX_DIGITAL_RAIN
+#define DISABLE_RGB_MATRIX_ALPHAS_MODS
diff --git a/keyboards/ergodox_ez/keymaps/reactive/keymap.c b/keyboards/ergodox_ez/keymaps/reactive/keymap.c
new file mode 100644
index 0000000000..526c364029
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/reactive/keymap.c
@@ -0,0 +1 @@
+// Placeholder. See ../default/keymap.c for details
diff --git a/keyboards/ergodox_ez/keymaps/reactive/rules.mk b/keyboards/ergodox_ez/keymaps/reactive/rules.mk
new file mode 100644
index 0000000000..360c3c51b8
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/reactive/rules.mk
@@ -0,0 +1,4 @@
+RGBLIGHT_ENABLE = no
+RGB_MATRIX_ENABLE = yes # enable later
+
+SRC += ../default/keymap.c
diff --git a/keyboards/planck/light/config.h b/keyboards/planck/light/config.h
deleted file mode 100644
index 17c015ed0f..0000000000
--- a/keyboards/planck/light/config.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef LIGHT_CONFIG_H
-#define LIGHT_CONFIG_H
-
-#include "config_common.h"
-
-#undef PRODUCT
-#define PRODUCT Planck Light
-#undef PRODUCT_ID
-#define PRODUCT_ID 0x6065
-#define DEVICE_VER 0x0001
-
-#undef MATRIX_ROW_PINS
-#undef MATRIX_COL_PINS
-
-#define MATRIX_ROW_PINS { B0, E7, F0, F1 }
-#define MATRIX_COL_PINS { E6, E3, E4, D3, D4, D5, C0, A7, A6, E1, E0, D7 }
-
-#define C6_AUDIO
-#define B5_AUDIO
-
-#undef BACKLIGHT_PIN
-
-#define BACKLIGHT_PIN A5
-
-#define NO_USB_STARTUP_CHECK
-
-#define PLANCK_MIT_LAYOUT
-
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110110
-
-#define DRIVER_COUNT 2
-#define DRIVER_1_LED_TOTAL 25
-#define DRIVER_2_LED_TOTAL 24
-#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL
-
-
-#endif
diff --git a/keyboards/planck/light/info.json b/keyboards/planck/light/info.json
deleted file mode 100644
index 34566f85d3..0000000000
--- a/keyboards/planck/light/info.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "keyboard_name": "Planck Light",
- "keyboard_folder": "planck/light"
-}
diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c
deleted file mode 100644
index f463090dd0..0000000000
--- a/keyboards/planck/light/light.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/* Copyright 2017 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#include "light.h"
-
-const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C1_3, C2_3, C3_3},
- {0, C1_4, C2_4, C3_4},
- {0, C1_5, C2_5, C3_5},
- {0, C1_11, C2_11, C3_11},
- {0, C1_12, C2_12, C3_12},
- {0, C1_13, C2_13, C3_13},
- {1, C1_3, C2_3, C3_3},
- {1, C1_4, C2_4, C3_4},
- {1, C1_5, C2_5, C3_5},
- {1, C1_11, C2_11, C3_11},
- {1, C1_12, C2_12, C3_12},
- {1, C1_13, C2_13, C3_13},
-
- {0, C1_6, C2_6, C3_6},
- {0, C1_7, C2_7, C3_7},
- {0, C1_8, C2_8, C3_8},
- {0, C1_14, C2_14, C3_14},
- {0, C1_15, C2_15, C3_15},
- {0, C1_16, C2_16, C3_16},
- {1, C1_6, C2_6, C3_6},
- {1, C1_7, C2_7, C3_7},
- {1, C1_8, C2_8, C3_8},
- {1, C1_14, C2_14, C3_14},
- {1, C1_15, C2_15, C3_15},
- {1, C1_16, C2_16, C3_16},
-
- {0, C9_1, C8_1, C7_1},
- {0, C9_2, C8_2, C7_2},
- {0, C9_3, C8_3, C7_3},
- {0, C9_9, C8_9, C7_9},
- {0, C9_10, C8_10, C7_10},
- {0, C9_11, C8_11, C7_11},
- {1, C9_1, C8_1, C7_1},
- {1, C9_2, C8_2, C7_2},
- {1, C9_3, C8_3, C7_3},
- {1, C9_9, C8_9, C7_9},
- {1, C9_10, C8_10, C7_10},
- {1, C9_11, C8_11, C7_11},
-
- {0, C9_4, C8_4, C7_4},
- {0, C9_5, C8_5, C7_5},
- {0, C9_6, C8_6, C7_6},
- {0, C9_12, C8_12, C7_12},
- {0, C9_13, C8_13, C7_13},
- {0, C9_14, C8_14, C7_14},
- {0, C9_15, C8_15, C6_14}, // middle 2u switch
- {1, C9_4, C8_4, C7_4},
- {1, C9_5, C8_5, C7_5},
- {1, C9_6, C8_6, C7_6},
- {1, C9_12, C8_12, C7_12},
- {1, C9_13, C8_13, C7_13},
- {1, C9_14, C8_14, C7_14}
-};
-
-const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
-
- /*{row | col << 4}
- | {x=0..224, y=0..64}
- | | modifier
- | | | */
- {{0|(0<<4)}, {20.36*0, 21.33*0}, 1},
- {{0|(1<<4)}, {20.36*1, 21.33*0}, 0},
- {{0|(2<<4)}, {20.36*2, 21.33*0}, 0},
- {{0|(3<<4)}, {20.36*3, 21.33*0}, 0},
- {{0|(4<<4)}, {20.36*4, 21.33*0}, 0},
- {{0|(5<<4)}, {20.36*5, 21.33*0}, 0},
- {{0|(6<<4)}, {20.36*6, 21.33*0}, 0},
- {{0|(7<<4)}, {20.36*7, 21.33*0}, 0},
- {{0|(8<<4)}, {20.36*8, 21.33*0}, 0},
- {{0|(9<<4)}, {20.36*9, 21.33*0}, 0},
- {{0|(10<<4)}, {20.36*10,21.33*0}, 0},
- {{0|(11<<4)}, {20.36*11,21.33*0}, 1},
-
- {{1|(0<<4)}, {20.36*0, 21.33*1}, 1},
- {{1|(1<<4)}, {20.36*1, 21.33*1}, 0},
- {{1|(2<<4)}, {20.36*2, 21.33*1}, 0},
- {{1|(3<<4)}, {20.36*3, 21.33*1}, 0},
- {{1|(4<<4)}, {20.36*4, 21.33*1}, 0},
- {{1|(5<<4)}, {20.36*5, 21.33*1}, 0},
- {{1|(6<<4)}, {20.36*6, 21.33*1}, 0},
- {{1|(7<<4)}, {20.36*7, 21.33*1}, 0},
- {{1|(8<<4)}, {20.36*8, 21.33*1}, 0},
- {{1|(9<<4)}, {20.36*9, 21.33*1}, 0},
- {{1|(10<<4)}, {20.36*10,21.33*1}, 0},
- {{1|(11<<4)}, {20.36*11,21.33*1}, 1},
-
- {{2|(0<<4)}, {20.36*0, 21.33*2}, 1},
- {{2|(1<<4)}, {20.36*1, 21.33*2}, 0},
- {{2|(2<<4)}, {20.36*2, 21.33*2}, 0},
- {{2|(3<<4)}, {20.36*3, 21.33*2}, 0},
- {{2|(4<<4)}, {20.36*4, 21.33*2}, 0},
- {{2|(5<<4)}, {20.36*5, 21.33*2}, 0},
- {{2|(6<<4)}, {20.36*6, 21.33*2}, 0},
- {{2|(7<<4)}, {20.36*7, 21.33*2}, 0},
- {{2|(8<<4)}, {20.36*8, 21.33*2}, 0},
- {{2|(9<<4)}, {20.36*9, 21.33*2}, 0},
- {{2|(10<<4)}, {20.36*10,21.33*2}, 0},
- {{2|(11<<4)}, {20.36*11,21.33*2}, 1},
-
- {{3|(0<<4)}, {20.36*0, 21.33*3}, 1},
- {{3|(1<<4)}, {20.36*1, 21.33*3}, 1},
- {{3|(2<<4)}, {20.36*2, 21.33*3}, 1},
- {{3|(3<<4)}, {20.36*3, 21.33*3}, 1},
- {{3|(4<<4)}, {20.36*4, 21.33*3}, 1},
- {{3|(5<<4)}, {20.36*5, 21.33*3}, 0},
- {{3|(5<<4)}, {20.36*5.5,21.33*3}, 0},
- {{3|(6<<4)}, {20.36*6, 21.33*3}, 0},
- {{3|(7<<4)}, {20.36*7, 21.33*3}, 1},
- {{3|(8<<4)}, {20.36*8, 21.33*3}, 1},
- {{3|(9<<4)}, {20.36*9, 21.33*3}, 1},
- {{3|(10<<4)}, {20.36*10,21.33*3}, 1},
- {{3|(11<<4)}, {20.36*11,21.33*3}, 1}
-};
-
-void matrix_init_kb(void) {
-
- // Turn status LED on
- DDRD |= (1<<6);
- PORTD |= (1<<6);
-
- matrix_init_user();
-}
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record)
-{
- return process_record_user(keycode, record);
-}
-
-void matrix_scan_kb(void)
-{
- matrix_scan_user();
-}
-
-void suspend_power_down_kb(void)
-{
- rgb_matrix_set_suspend_state(true);
- suspend_power_down_user();
-}
-
-void suspend_wakeup_init_kb(void)
-{
- rgb_matrix_set_suspend_state(false);
- suspend_wakeup_init_user();
-}
-
diff --git a/keyboards/planck/light/light.h b/keyboards/planck/light/light.h
deleted file mode 100644
index a395f30e88..0000000000
--- a/keyboards/planck/light/light.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2017 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef LIGHT_H
-#define LIGHT_H
-
-#include "planck.h"
-#include "rgb_matrix.h"
-
-#endif
\ No newline at end of file
diff --git a/keyboards/planck/light/rules.mk b/keyboards/planck/light/rules.mk
deleted file mode 100644
index c10b8fd1da..0000000000
--- a/keyboards/planck/light/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-MIDI_ENABLE = yes
-AUDIO_ENABLE = yes # Audio output on port C6
-RGB_MATRIX_ENABLE = yes
-
-MCU = at90usb1286
\ No newline at end of file
diff --git a/keyboards/planck/rev1/config.h b/keyboards/planck/rev1/config.h
deleted file mode 100644
index 397887a73f..0000000000
--- a/keyboards/planck/rev1/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define DEVICE_VER 0x0001
diff --git a/keyboards/planck/rev1/rules.mk b/keyboards/planck/rev1/rules.mk
deleted file mode 100644
index e51af55c66..0000000000
--- a/keyboards/planck/rev1/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/planck/rev2/config.h b/keyboards/planck/rev2/config.h
deleted file mode 100644
index bed78bca3f..0000000000
--- a/keyboards/planck/rev2/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define DEVICE_VER 0x0002
diff --git a/keyboards/planck/rev2/rules.mk b/keyboards/planck/rev2/rules.mk
deleted file mode 100644
index e51af55c66..0000000000
--- a/keyboards/planck/rev2/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/planck/rev3/config.h b/keyboards/planck/rev3/config.h
deleted file mode 100644
index fd6f0460e5..0000000000
--- a/keyboards/planck/rev3/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define DEVICE_VER 0x0003
diff --git a/keyboards/planck/rev3/rules.mk b/keyboards/planck/rev3/rules.mk
deleted file mode 100644
index e51af55c66..0000000000
--- a/keyboards/planck/rev3/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-AUDIO_ENABLE = no # Audio output on port C6
diff --git a/keyboards/planck/rev4/config.h b/keyboards/planck/rev4/config.h
deleted file mode 100644
index 572852bbf0..0000000000
--- a/keyboards/planck/rev4/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define DEVICE_VER 0x0004
diff --git a/keyboards/planck/rev4/rules.mk b/keyboards/planck/rev4/rules.mk
deleted file mode 100644
index 7e64e7edc4..0000000000
--- a/keyboards/planck/rev4/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-AUDIO_ENABLE = yes # Audio output on port C6
diff --git a/keyboards/planck/rev5/config.h b/keyboards/planck/rev5/config.h
deleted file mode 100644
index 9369220780..0000000000
--- a/keyboards/planck/rev5/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define DEVICE_VER 0x0005
diff --git a/keyboards/planck/rev5/rules.mk b/keyboards/planck/rev5/rules.mk
deleted file mode 100644
index 7e64e7edc4..0000000000
--- a/keyboards/planck/rev5/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-AUDIO_ENABLE = yes # Audio output on port C6
diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h
deleted file mode 100644
index 4713d9d233..0000000000
--- a/keyboards/planck/rev6/config.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright 2018 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef REV6_CONFIG_H
-#define REV6_CONFIG_H
-
-/* USB Device descriptor parameter */
-#define DEVICE_VER 0x0006
-
-#undef MATRIX_ROWS
-#undef MATRIX_COLS
-/* key matrix size */
-#define MATRIX_ROWS 8
-#define MATRIX_COLS 6
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-/* Note: These are not used for arm boards. They're here purely as documentation.
- * #define MATRIX_ROW_PINS { PB0, PB1, PB2, PA15, PA10 }
- * #define MATRIX_COL_PINS { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC14, PC15, PC13, PB5, PB6 }
- * #define UNUSED_PINS
- */
-
-#define NUMBER_OF_ENCODERS 1
-#define ENCODERS_PAD_A { B12 }
-#define ENCODERS_PAD_B { B13 }
-
-#define MUSIC_MAP
-#undef AUDIO_VOICES
-#undef C6_AUDIO
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 6
-
-/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
-//#define LOCKING_SUPPORT_ENABLE
-/* Locking resynchronize hack */
-//#define LOCKING_RESYNC_ENABLE
-
-/*
- * Force NKRO
- *
- * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
- * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
- * makefile for this to work.)
- *
- * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
- * until the next keyboard reset.
- *
- * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
- * fully operational during normal computer usage.
- *
- * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
- * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
- * bootmagic, NKRO mode will always be enabled until it is toggled again during a
- * power-up.
- *
- */
-//#define FORCE_NKRO
-
-/*
- * Feature disable options
- * These options are also useful to firmware size reduction.
- */
-
-/* disable debug print */
-//#define NO_DEBUG
-
-/* disable print */
-//#define NO_PRINT
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-/*
- * MIDI options
- */
-
-/* Prevent use of disabled MIDI features in the keymap */
-//#define MIDI_ENABLE_STRICT 1
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-//#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 1
-
-#define WS2812_LED_N 2
-#define RGBLED_NUM WS2812_LED_N
-#define WS2812_TIM_N 2
-#define WS2812_TIM_CH 2
-#define PORT_WS2812 GPIOA
-#define PIN_WS2812 1
-#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA stream for TIMx_UP (look up in reference manual under DMA Channel selection)
-//#define WS2812_DMA_CHANNEL 7 // DMA channel for TIMx_UP
-//#define WS2812_EXTERNAL_PULLUP
-
-#endif
diff --git a/keyboards/planck/rev6/matrix.c b/keyboards/planck/rev6/matrix.c
deleted file mode 100644
index 2df588cefc..0000000000
--- a/keyboards/planck/rev6/matrix.c
+++ /dev/null
@@ -1,176 +0,0 @@
-#include
-#include
-#include
-#include "hal.h"
-#include "timer.h"
-#include "wait.h"
-#include "printf.h"
-#include "backlight.h"
-#include "matrix.h"
-#include "action.h"
-#include "keycode.h"
-#include
-
-/*
- * col: { B11, B10, B2, B1, A7, B0 }
- * row: { A10, A9, A8, B15, C13, C14, C15, A2 }
- */
-/* matrix state(1:on, 0:off) */
-static matrix_row_t matrix[MATRIX_ROWS];
-static matrix_row_t matrix_debouncing[MATRIX_COLS];
-static bool debouncing = false;
-static uint16_t debouncing_time = 0;
-
-static bool dip_switch[4] = {0, 0, 0, 0};
-
-__attribute__ ((weak))
-void matrix_init_user(void) {}
-
-__attribute__ ((weak))
-void matrix_scan_user(void) {}
-
-__attribute__ ((weak))
-void matrix_init_kb(void) {
- matrix_init_user();
-}
-
-__attribute__ ((weak))
-void matrix_scan_kb(void) {
- matrix_scan_user();
-}
-
-void matrix_init(void) {
- printf("matrix init\n");
- //debug_matrix = true;
-
- // dip switch setup
- palSetPadMode(GPIOB, 14, PAL_MODE_INPUT_PULLUP);
- palSetPadMode(GPIOA, 15, PAL_MODE_INPUT_PULLUP);
- palSetPadMode(GPIOA, 10, PAL_MODE_INPUT_PULLUP);
- palSetPadMode(GPIOB, 9, PAL_MODE_INPUT_PULLUP);
-
- // actual matrix setup
- palSetPadMode(GPIOB, 11, PAL_MODE_OUTPUT_PUSHPULL);
- palSetPadMode(GPIOB, 10, PAL_MODE_OUTPUT_PUSHPULL);
- palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL);
- palSetPadMode(GPIOB, 1, PAL_MODE_OUTPUT_PUSHPULL);
- palSetPadMode(GPIOA, 7, PAL_MODE_OUTPUT_PUSHPULL);
- palSetPadMode(GPIOB, 0, PAL_MODE_OUTPUT_PUSHPULL);
-
- palSetPadMode(GPIOA, 10, PAL_MODE_INPUT_PULLDOWN);
- palSetPadMode(GPIOA, 9, PAL_MODE_INPUT_PULLDOWN);
- palSetPadMode(GPIOA, 8, PAL_MODE_INPUT_PULLDOWN);
- palSetPadMode(GPIOB, 15, PAL_MODE_INPUT_PULLDOWN);
- palSetPadMode(GPIOC, 13, PAL_MODE_INPUT_PULLDOWN);
- palSetPadMode(GPIOC, 14, PAL_MODE_INPUT_PULLDOWN);
- palSetPadMode(GPIOC, 15, PAL_MODE_INPUT_PULLDOWN);
- palSetPadMode(GPIOA, 2, PAL_MODE_INPUT_PULLDOWN);
-
-
- memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
- memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t));
-
-
- matrix_init_quantum();
-}
-
-__attribute__ ((weak))
-void dip_update(uint8_t index, bool active) { }
-
-bool last_dip_switch[4] = {0};
-
-uint8_t matrix_scan(void) {
- // dip switch
- dip_switch[0] = !palReadPad(GPIOB, 14);
- dip_switch[1] = !palReadPad(GPIOA, 15);
- dip_switch[2] = !palReadPad(GPIOA, 10);
- dip_switch[3] = !palReadPad(GPIOB, 9);
- for (uint8_t i = 0; i < 4; i++) {
- if (last_dip_switch[i] ^ dip_switch[i])
- dip_update(i, dip_switch[i]);
- }
- memcpy(last_dip_switch, dip_switch, sizeof(&dip_switch));
-
- // actual matrix
- for (int col = 0; col < MATRIX_COLS; col++) {
- matrix_row_t data = 0;
-
- // strobe col { B11, B10, B2, B1, A7, B0 }
- switch (col) {
- case 0: palSetPad(GPIOB, 11); break;
- case 1: palSetPad(GPIOB, 10); break;
- case 2: palSetPad(GPIOB, 2); break;
- case 3: palSetPad(GPIOB, 1); break;
- case 4: palSetPad(GPIOA, 7); break;
- case 5: palSetPad(GPIOB, 0); break;
- }
-
- // need wait to settle pin state
- wait_us(20);
-
- // read row data { A10, A9, A8, B15, C13, C14, C15, A2 }
- data = (
- (palReadPad(GPIOA, 10) << 0 ) |
- (palReadPad(GPIOA, 9) << 1 ) |
- (palReadPad(GPIOA, 8) << 2 ) |
- (palReadPad(GPIOB, 15) << 3 ) |
- (palReadPad(GPIOC, 13) << 4 ) |
- (palReadPad(GPIOC, 14) << 5 ) |
- (palReadPad(GPIOC, 15) << 6 ) |
- (palReadPad(GPIOA, 2) << 7 )
- );
-
- // unstrobe col { B11, B10, B2, B1, A7, B0 }
- switch (col) {
- case 0: palClearPad(GPIOB, 11); break;
- case 1: palClearPad(GPIOB, 10); break;
- case 2: palClearPad(GPIOB, 2); break;
- case 3: palClearPad(GPIOB, 1); break;
- case 4: palClearPad(GPIOA, 7); break;
- case 5: palClearPad(GPIOB, 0); break;
- }
-
- if (matrix_debouncing[col] != data) {
- matrix_debouncing[col] = data;
- debouncing = true;
- debouncing_time = timer_read();
- }
- }
-
- if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) {
- for (int row = 0; row < MATRIX_ROWS; row++) {
- matrix[row] = 0;
- for (int col = 0; col < MATRIX_COLS; col++) {
- matrix[row] |= ((matrix_debouncing[col] & (1 << row) ? 1 : 0) << col);
- }
- }
- debouncing = false;
- }
-
- matrix_scan_quantum();
-
- return 1;
-}
-
-bool matrix_is_on(uint8_t row, uint8_t col) {
- return (matrix[row] & (1<
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#include "rev6.h"
-
-void matrix_init_kb(void) {
- matrix_init_user();
-}
-
-void matrix_scan_kb(void) {
- matrix_scan_user();
-}
diff --git a/keyboards/planck/rev6/rev6.h b/keyboards/planck/rev6/rev6.h
deleted file mode 100644
index 75c2904c5c..0000000000
--- a/keyboards/planck/rev6/rev6.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2018 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#ifndef REV6_H
-#define REV6_H
-
-#include "planck.h"
-
-#endif
diff --git a/keyboards/planck/rev6/rules.mk b/keyboards/planck/rev6/rules.mk
deleted file mode 100644
index 1f3d1dfe58..0000000000
--- a/keyboards/planck/rev6/rules.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# project specific files
-SRC = matrix.c
-LAYOUTS += ortho_4x12
-
-# Cortex version
-MCU = STM32F303
-
-# Build Options
-# comment out to disable the options.
-#
-BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
-## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
-NKRO_ENABLE = yes # USB Nkey Rollover
-CUSTOM_MATRIX = yes # Custom matrix file
-AUDIO_ENABLE = yes
-RGBLIGHT_ENABLE = no
-# SERIAL_LINK_ENABLE = yes
-ENCODER_ENABLE = yes
diff --git a/keyboards/planck/rules.mk b/keyboards/planck/rules.mk
index 6097902384..05318a9243 100644
--- a/keyboards/planck/rules.mk
+++ b/keyboards/planck/rules.mk
@@ -1,22 +1,6 @@
# MCU name
MCU = atmega32u4
-# Bootloader
-# This definition is optional, and if your keyboard supports multiple bootloaders of
-# different sizes, comment this out, and the correct address will be loaded
-# automatically (+60). See bootloader.mk for all options.
-ifeq ($(strip $(KEYBOARD)), planck/rev3)
- BOOTLOADER = atmel-dfu
-endif
-ifeq ($(strip $(KEYBOARD)), planck/rev4)
- BOOTLOADER = atmel-dfu
-endif
-ifeq ($(strip $(KEYBOARD)), planck/rev5)
- BOOTLOADER = qmk-dfu
-endif
-ifeq ($(strip $(KEYBOARD)), planck/light)
- BOOTLOADER = atmel-dfu
-endif
# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
@@ -45,4 +29,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
LAYOUTS = ortho_4x12 planck_mit planck_grid
LAYOUTS_HAS_RGB = no
-DEFAULT_FOLDER = planck/rev5
+DEFAULT_FOLDER = planck/ez