summaryrefslogtreecommitdiff
path: root/keyboards/bpiphany/frosty_flake
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/bpiphany/frosty_flake')
-rw-r--r--keyboards/bpiphany/frosty_flake/20130602/20130602.c24
-rw-r--r--keyboards/bpiphany/frosty_flake/20130602/matrix.c86
-rw-r--r--keyboards/bpiphany/frosty_flake/20130602/rules.mk22
-rw-r--r--keyboards/bpiphany/frosty_flake/20140521/20140521.c (renamed from keyboards/bpiphany/frosty_flake/frosty_flake.c)0
-rw-r--r--keyboards/bpiphany/frosty_flake/20140521/matrix.c (renamed from keyboards/bpiphany/frosty_flake/matrix.c)1
-rw-r--r--keyboards/bpiphany/frosty_flake/20140521/rules.mk22
-rw-r--r--keyboards/bpiphany/frosty_flake/config.h1
-rw-r--r--keyboards/bpiphany/frosty_flake/keymaps/default/config.h3
-rw-r--r--keyboards/bpiphany/frosty_flake/keymaps/default/keymap.c14
-rw-r--r--keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk7
-rw-r--r--keyboards/bpiphany/frosty_flake/keymaps/tkl/config.h3
-rw-r--r--keyboards/bpiphany/frosty_flake/keymaps/tkl/keymap.c12
-rw-r--r--keyboards/bpiphany/frosty_flake/keymaps/tkl/rules.mk5
-rw-r--r--keyboards/bpiphany/frosty_flake/keymaps/via/keymap.c44
-rw-r--r--keyboards/bpiphany/frosty_flake/keymaps/via/rules.mk2
-rw-r--r--keyboards/bpiphany/frosty_flake/readme.md8
-rw-r--r--keyboards/bpiphany/frosty_flake/rules.mk26
17 files changed, 223 insertions, 57 deletions
diff --git a/keyboards/bpiphany/frosty_flake/20130602/20130602.c b/keyboards/bpiphany/frosty_flake/20130602/20130602.c
new file mode 100644
index 0000000000..2c875d1a7f
--- /dev/null
+++ b/keyboards/bpiphany/frosty_flake/20130602/20130602.c
@@ -0,0 +1,24 @@
+#include "frosty_flake.h"
+
+void keyboard_pre_init_kb() {
+ setPinOutput(B7); // caps lock
+ writePinHigh(B7);
+ setPinOutput(C5); // num lock
+ writePinHigh(C7);
+ setPinOutput(C6); // scroll lock
+ writePinHigh(C6);
+
+ keyboard_pre_init_user();
+}
+
+bool led_update_kb(led_t usb_led) {
+ // user requests no further processing
+ if (!led_update_user(usb_led))
+ return true;
+
+ writePin(C5, !usb_led.num_lock);
+ writePin(B7, !usb_led.caps_lock);
+ writePin(C6, !usb_led.scroll_lock);
+
+ return true;
+}
diff --git a/keyboards/bpiphany/frosty_flake/20130602/matrix.c b/keyboards/bpiphany/frosty_flake/20130602/matrix.c
new file mode 100644
index 0000000000..e0337f9ec2
--- /dev/null
+++ b/keyboards/bpiphany/frosty_flake/20130602/matrix.c
@@ -0,0 +1,86 @@
+/*
+ Copyright 2017 Gabriel Young <gabeplaysdrums@live.com>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <util/delay.h>
+#include "matrix.h"
+
+
+static matrix_row_t scan_col(void) {
+ // Each of the 8 columns is read off pins as below
+ // 7 6 5 4 3 2 1 0
+ // ,--,--,--,--,--,--,--,--,
+ // |B0|B3|B2|B1|B6|B4|B5|C7|
+ // `--`--`--`--`--`--`--`--`
+ return (
+ (PINC&(1<<2) ? 0 : ((matrix_row_t)1<<0)) |
+ (PIND&(1<<0) ? 0 : ((matrix_row_t)1<<1)) |
+ (PIND&(1<<1) ? 0 : ((matrix_row_t)1<<2)) |
+ (PINC&(1<<7) ? 0 : ((matrix_row_t)1<<3)) |
+ (PIND&(1<<5) ? 0 : ((matrix_row_t)1<<4)) |
+ (PIND&(1<<4) ? 0 : ((matrix_row_t)1<<5)) |
+ (PIND&(1<<2) ? 0 : ((matrix_row_t)1<<6)) |
+ (PIND&(1<<6) ? 0 : ((matrix_row_t)1<<7))
+ );
+}
+
+static void select_row(uint8_t row) {
+ switch (row) {
+ case 0: PORTB = (PORTB & ~0b01111110) | 0b00111010; break;
+ case 1: PORTB = (PORTB & ~0b01111110) | 0b01011000; break;
+ case 2: PORTB = (PORTB & ~0b01111110) | 0b01110000; break;
+ case 3: PORTB = (PORTB & ~0b01111110) | 0b01101110; break;
+ case 4: PORTB = (PORTB & ~0b01111110) | 0b01101100; break;
+ case 5: PORTB = (PORTB & ~0b01111110) | 0b01101010; break;
+ case 6: PORTB = (PORTB & ~0b01111110) | 0b01101000; break;
+ case 7: PORTB = (PORTB & ~0b01111110) | 0b01100100; break;
+ case 8: PORTB = (PORTB & ~0b01111110) | 0b01100000; break;
+ case 9: PORTB = (PORTB & ~0b01111110) | 0b01100010; break;
+ case 10: PORTB = (PORTB & ~0b01111110) | 0b00011010; break;
+ case 11: PORTB = (PORTB & ~0b01111110) | 0b00011000; break;
+ case 12: PORTB = (PORTB & ~0b01111110) | 0b00111100; break;
+ case 13: PORTB = (PORTB & ~0b01111110) | 0b01100110; break;
+ case 14: PORTB = (PORTB & ~0b01111110) | 0b00111000; break;
+ case 15: PORTB = (PORTB & ~0b01111110) | 0b01110010; break;
+ case 16: PORTB = (PORTB & ~0b01111110) | 0b00011110; break;
+ case 17: PORTB = (PORTB & ~0b01111110) | 0b00111110; break;
+ }
+}
+
+void matrix_init_custom(void) {
+ /* Column output pins */
+ DDRB |= 0b01111110;
+ /* Row input pins */
+ DDRC &= ~0b10000100;
+ DDRD &= ~0b01110111;
+ PORTC |= 0b10000100;
+ PORTD |= 0b01110111;
+}
+
+// matrix is 18 uint8_t.
+// we select the row (one of 18), then read the column
+bool matrix_scan_custom(matrix_row_t current_matrix[]) {
+ bool has_changed = false;
+ for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+ matrix_row_t orig = current_matrix[row];
+ select_row(row);
+ _delay_us(3);
+ current_matrix[row] = scan_col();
+ has_changed |= (orig != current_matrix[row]);
+ }
+
+ return has_changed;
+}
diff --git a/keyboards/bpiphany/frosty_flake/20130602/rules.mk b/keyboards/bpiphany/frosty_flake/20130602/rules.mk
new file mode 100644
index 0000000000..dc435a332f
--- /dev/null
+++ b/keyboards/bpiphany/frosty_flake/20130602/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u2
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output
+
+CUSTOM_MATRIX = lite
+SRC += 20130602/matrix.c
+
+LAYOUTS = tkl_ansi
diff --git a/keyboards/bpiphany/frosty_flake/frosty_flake.c b/keyboards/bpiphany/frosty_flake/20140521/20140521.c
index be4e1a3124..be4e1a3124 100644
--- a/keyboards/bpiphany/frosty_flake/frosty_flake.c
+++ b/keyboards/bpiphany/frosty_flake/20140521/20140521.c
diff --git a/keyboards/bpiphany/frosty_flake/matrix.c b/keyboards/bpiphany/frosty_flake/20140521/matrix.c
index 4517c7af5b..24c7617b19 100644
--- a/keyboards/bpiphany/frosty_flake/matrix.c
+++ b/keyboards/bpiphany/frosty_flake/20140521/matrix.c
@@ -18,6 +18,7 @@
#include <util/delay.h>
#include "matrix.h"
+
static matrix_row_t scan_col(void) {
// Each of the 8 columns is read off pins as below
// 7 6 5 4 3 2 1 0
diff --git a/keyboards/bpiphany/frosty_flake/20140521/rules.mk b/keyboards/bpiphany/frosty_flake/20140521/rules.mk
new file mode 100644
index 0000000000..035e59f911
--- /dev/null
+++ b/keyboards/bpiphany/frosty_flake/20140521/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u2
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+AUDIO_ENABLE = no # Audio output
+
+CUSTOM_MATRIX = lite
+SRC += 20140521/matrix.c
+
+LAYOUTS = tkl_ansi
diff --git a/keyboards/bpiphany/frosty_flake/config.h b/keyboards/bpiphany/frosty_flake/config.h
index 1a337b111f..a60d728ac6 100644
--- a/keyboards/bpiphany/frosty_flake/config.h
+++ b/keyboards/bpiphany/frosty_flake/config.h
@@ -93,3 +93,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
+#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/bpiphany/frosty_flake/keymaps/default/config.h b/keyboards/bpiphany/frosty_flake/keymaps/default/config.h
deleted file mode 100644
index 271f48d001..0000000000
--- a/keyboards/bpiphany/frosty_flake/keymaps/default/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-// place overrides here
diff --git a/keyboards/bpiphany/frosty_flake/keymaps/default/keymap.c b/keyboards/bpiphany/frosty_flake/keymaps/default/keymap.c
index 9d40d4c9cc..be1ca9adec 100644
--- a/keyboards/bpiphany/frosty_flake/keymaps/default/keymap.c
+++ b/keyboards/bpiphany/frosty_flake/keymaps/default/keymap.c
@@ -1,12 +1,12 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(\
- KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, \
- 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_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, \
- 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_P4, KC_P5, KC_P6, \
- KC_LSFT, KC_NUBS, 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_P1, KC_P2, KC_P3, KC_PENT, \
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT \
+ [0] = LAYOUT(
+ KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
+ 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_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ 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_P4, KC_P5, KC_P6,
+ KC_LSFT, KC_NUBS, 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_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
)
};
diff --git a/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk b/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk
index 5e747a8360..5d04993098 100644
--- a/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk
+++ b/keyboards/bpiphany/frosty_flake/keymaps/default/rules.mk
@@ -1,14 +1,9 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = yes
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/bpiphany/frosty_flake/keymaps/tkl/config.h b/keyboards/bpiphany/frosty_flake/keymaps/tkl/config.h
deleted file mode 100644
index 271f48d001..0000000000
--- a/keyboards/bpiphany/frosty_flake/keymaps/tkl/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-// place overrides here
diff --git a/keyboards/bpiphany/frosty_flake/keymaps/tkl/keymap.c b/keyboards/bpiphany/frosty_flake/keymaps/tkl/keymap.c
index 8e87239719..c5d232ccee 100644
--- a/keyboards/bpiphany/frosty_flake/keymaps/tkl/keymap.c
+++ b/keyboards/bpiphany/frosty_flake/keymaps/tkl/keymap.c
@@ -1,11 +1,11 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = LAYOUT_tkl(\
- KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, \
- 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_INS, KC_HOME, KC_PGUP, \
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \
- KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
- KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
+[0] = LAYOUT_tkl(
+ KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
+ 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_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,
+ KC_LSFT,KC_NUBS,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_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT )
};
diff --git a/keyboards/bpiphany/frosty_flake/keymaps/tkl/rules.mk b/keyboards/bpiphany/frosty_flake/keymaps/tkl/rules.mk
index f23faf1110..c9a6f1f1bc 100644
--- a/keyboards/bpiphany/frosty_flake/keymaps/tkl/rules.mk
+++ b/keyboards/bpiphany/frosty_flake/keymaps/tkl/rules.mk
@@ -1,7 +1,3 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
@@ -12,4 +8,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/bpiphany/frosty_flake/keymaps/via/keymap.c b/keyboards/bpiphany/frosty_flake/keymaps/via/keymap.c
new file mode 100644
index 0000000000..b3ef6ecadb
--- /dev/null
+++ b/keyboards/bpiphany/frosty_flake/keymaps/via/keymap.c
@@ -0,0 +1,44 @@
+ /* Copyright 2021 Chance Monnette <chance@trashcat.xyz>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] = LAYOUT_tkl(
+ KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
+ 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_INS, KC_HOME, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
+ KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,
+ KC_LSFT,KC_NUBS,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_LCTL,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ),
+
+[1] = LAYOUT_tkl(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______,
+ _______,_______,_______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______,
+ _______,_______,_______, _______, _______, _______ , _______, _______, _______, _______, _______
+ ),
+
+[2] = LAYOUT_tkl(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______,
+ _______,_______,_______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______,
+ _______,_______,_______, _______, _______, _______ , _______, _______, _______, _______, _______
+ ),
+};
diff --git a/keyboards/bpiphany/frosty_flake/keymaps/via/rules.mk b/keyboards/bpiphany/frosty_flake/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/bpiphany/frosty_flake/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/bpiphany/frosty_flake/readme.md b/keyboards/bpiphany/frosty_flake/readme.md
index 5917022a88..7c64085182 100644
--- a/keyboards/bpiphany/frosty_flake/readme.md
+++ b/keyboards/bpiphany/frosty_flake/readme.md
@@ -1,7 +1,7 @@
# Frosty Flake Controller
-This is the firmware for Rev. 20140521 of the Frosty Flake controller
-by [Bathroom Epiphanies](http://bathroomepiphanies.com/controllers/),
+This is the firmware for the Frosty Flake controller by
+[Bathroom Epiphanies](http://bathroomepiphanies.com/controllers/),
a replacement controller for the [Cooler Master Quick Fire
Rapid](http://www.coolermaster.com/peripheral/keyboards/quickfirerapid/).
@@ -11,6 +11,10 @@ but has been cleaned up to match the
[schematic](https://deskthority.net/wiki/File:Frosty_Flake_Schematics.pdf)
and gone through some minor refactoring for QMK.
+## Revision support
+There are two revisions of this controller. 20140521 is built by default.
+If you need to build for 20130602, it can be built with `make bpiphany/frosty_flake/20130602`
+
## 104 and 87 layout support
Support for both 104 key and 87 key layouts is provided. See the
diff --git a/keyboards/bpiphany/frosty_flake/rules.mk b/keyboards/bpiphany/frosty_flake/rules.mk
index 4bce03b089..e5402b32f7 100644
--- a/keyboards/bpiphany/frosty_flake/rules.mk
+++ b/keyboards/bpiphany/frosty_flake/rules.mk
@@ -1,25 +1 @@
-# MCU name
-MCU = atmega32u2
-
-# Bootloader selection
-BOOTLOADER = atmel-dfu
-
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE = no # USB Nkey Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-AUDIO_ENABLE = no # Audio output
-
-CUSTOM_MATRIX = lite
-SRC += matrix.c
-
-LAYOUTS = tkl_ansi
+DEFAULT_FOLDER=bpiphany/frosty_flake/20140521