From 4764aa8711cadc2776fde7641e97e280c4ac55c5 Mon Sep 17 00:00:00 2001
From: TerryMathews <terry@terrymathews.net>
Date: Tue, 28 Jul 2020 01:34:18 -0400
Subject: [PATCH] The Key Company project consolidation (#9547)

* Consolidate TKC projects and increase VIA keymap count to 4.

* Updated readme files.

* Removed config.h via limitation of 2 dynamic keymaps

* Reduce dynamic keymaps from 4 to 3 due to EEPROM space limitations.

* Update dynamic_keymap.c

* Restore 4 dynamic keymaps for VIA in TKC projects.

* Update quantum/dynamic_keymap.c
---
 keyboards/m0lly/keymaps/via/config.h          |  1 -
 .../{ => tkc}/candybar/bootloader_defs.h      |  0
 keyboards/{ => tkc}/candybar/chconf.h         |  0
 keyboards/{ => tkc}/candybar/halconf.h        |  0
 keyboards/{ => tkc}/candybar/lefty/config.h   |  0
 keyboards/{ => tkc}/candybar/lefty/info.json  |  0
 .../candybar/lefty/keymaps/default/keymap.c   |  0
 .../candybar/lefty/keymaps/via/keymap.c       | 14 ++++++++++
 .../candybar/lefty/keymaps/via/rules.mk       |  0
 keyboards/{ => tkc}/candybar/lefty/lefty.c    |  0
 keyboards/{ => tkc}/candybar/lefty/lefty.h    |  0
 keyboards/{ => tkc}/candybar/lefty/readme.md  |  2 +-
 keyboards/{ => tkc}/candybar/lefty/rules.mk   |  0
 keyboards/{ => tkc}/candybar/mcuconf.h        |  0
 keyboards/{ => tkc}/candybar/righty/config.h  |  0
 keyboards/{ => tkc}/candybar/righty/info.json |  0
 .../candybar/righty/keymaps/default/keymap.c  |  0
 .../candybar/righty/keymaps/via/keymap.c      | 14 ++++++++++
 .../candybar/righty/keymaps/via/rules.mk      |  0
 keyboards/{ => tkc}/candybar/righty/readme.md |  2 +-
 keyboards/{ => tkc}/candybar/righty/righty.c  |  0
 keyboards/{ => tkc}/candybar/righty/righty.h  |  0
 keyboards/{ => tkc}/candybar/righty/rules.mk  |  0
 keyboards/{ => tkc}/m0lly/README.md           |  2 +-
 keyboards/{ => tkc}/m0lly/config.h            |  0
 keyboards/{ => tkc}/m0lly/info.json           |  0
 .../{ => tkc}/m0lly/keymaps/default/keymap.c  |  0
 .../{ => tkc}/m0lly/keymaps/via/keymap.c      | 22 ++++++++++++++++
 .../{ => tkc}/m0lly/keymaps/via/rules.mk      |  0
 keyboards/{ => tkc}/m0lly/m0lly.c             |  0
 keyboards/{ => tkc}/m0lly/m0lly.h             |  0
 keyboards/{ => tkc}/m0lly/rules.mk            |  0
 keyboards/{ => tkc}/tkc1800/README.md         |  2 +-
 keyboards/{ => tkc}/tkc1800/config.h          |  0
 keyboards/{ => tkc}/tkc1800/info.json         |  0
 .../tkc1800/keymaps/default/keymap.c          |  0
 .../{ => tkc}/tkc1800/keymaps/smt/keymap.c    |  0
 .../{ => tkc}/tkc1800/keymaps/via/keymap.c    | 26 +++++++++++++++++++
 .../{ => tkc}/tkc1800/keymaps/via/rules.mk    |  0
 .../{ => tkc}/tkc1800/keymaps/wkl/keymap.c    |  0
 .../tkc1800/keymaps/yanfali/keymap.c          |  0
 .../tkc1800/keymaps/yanfali/rules.mk          |  0
 keyboards/{ => tkc}/tkc1800/rules.mk          |  0
 keyboards/{ => tkc}/tkc1800/tkc1800.c         |  0
 keyboards/{ => tkc}/tkc1800/tkc1800.h         |  0
 keyboards/tkc1800/keymaps/via/config.h        |  1 -
 quantum/dynamic_keymap.c                      |  6 ++++-
 47 files changed, 85 insertions(+), 7 deletions(-)
 delete mode 100644 keyboards/m0lly/keymaps/via/config.h
 rename keyboards/{ => tkc}/candybar/bootloader_defs.h (100%)
 rename keyboards/{ => tkc}/candybar/chconf.h (100%)
 rename keyboards/{ => tkc}/candybar/halconf.h (100%)
 rename keyboards/{ => tkc}/candybar/lefty/config.h (100%)
 rename keyboards/{ => tkc}/candybar/lefty/info.json (100%)
 rename keyboards/{ => tkc}/candybar/lefty/keymaps/default/keymap.c (100%)
 rename keyboards/{ => tkc}/candybar/lefty/keymaps/via/keymap.c (62%)
 rename keyboards/{ => tkc}/candybar/lefty/keymaps/via/rules.mk (100%)
 rename keyboards/{ => tkc}/candybar/lefty/lefty.c (100%)
 rename keyboards/{ => tkc}/candybar/lefty/lefty.h (100%)
 rename keyboards/{ => tkc}/candybar/lefty/readme.md (94%)
 rename keyboards/{ => tkc}/candybar/lefty/rules.mk (100%)
 rename keyboards/{ => tkc}/candybar/mcuconf.h (100%)
 rename keyboards/{ => tkc}/candybar/righty/config.h (100%)
 rename keyboards/{ => tkc}/candybar/righty/info.json (100%)
 rename keyboards/{ => tkc}/candybar/righty/keymaps/default/keymap.c (100%)
 rename keyboards/{ => tkc}/candybar/righty/keymaps/via/keymap.c (65%)
 rename keyboards/{ => tkc}/candybar/righty/keymaps/via/rules.mk (100%)
 rename keyboards/{ => tkc}/candybar/righty/readme.md (94%)
 rename keyboards/{ => tkc}/candybar/righty/righty.c (100%)
 rename keyboards/{ => tkc}/candybar/righty/righty.h (100%)
 rename keyboards/{ => tkc}/candybar/righty/rules.mk (100%)
 rename keyboards/{ => tkc}/m0lly/README.md (96%)
 rename keyboards/{ => tkc}/m0lly/config.h (100%)
 rename keyboards/{ => tkc}/m0lly/info.json (100%)
 rename keyboards/{ => tkc}/m0lly/keymaps/default/keymap.c (100%)
 rename keyboards/{ => tkc}/m0lly/keymaps/via/keymap.c (73%)
 rename keyboards/{ => tkc}/m0lly/keymaps/via/rules.mk (100%)
 rename keyboards/{ => tkc}/m0lly/m0lly.c (100%)
 rename keyboards/{ => tkc}/m0lly/m0lly.h (100%)
 rename keyboards/{ => tkc}/m0lly/rules.mk (100%)
 rename keyboards/{ => tkc}/tkc1800/README.md (96%)
 rename keyboards/{ => tkc}/tkc1800/config.h (100%)
 rename keyboards/{ => tkc}/tkc1800/info.json (100%)
 rename keyboards/{ => tkc}/tkc1800/keymaps/default/keymap.c (100%)
 rename keyboards/{ => tkc}/tkc1800/keymaps/smt/keymap.c (100%)
 rename keyboards/{ => tkc}/tkc1800/keymaps/via/keymap.c (71%)
 rename keyboards/{ => tkc}/tkc1800/keymaps/via/rules.mk (100%)
 rename keyboards/{ => tkc}/tkc1800/keymaps/wkl/keymap.c (100%)
 rename keyboards/{ => tkc}/tkc1800/keymaps/yanfali/keymap.c (100%)
 rename keyboards/{ => tkc}/tkc1800/keymaps/yanfali/rules.mk (100%)
 rename keyboards/{ => tkc}/tkc1800/rules.mk (100%)
 rename keyboards/{ => tkc}/tkc1800/tkc1800.c (100%)
 rename keyboards/{ => tkc}/tkc1800/tkc1800.h (100%)
 delete mode 100644 keyboards/tkc1800/keymaps/via/config.h

diff --git a/keyboards/m0lly/keymaps/via/config.h b/keyboards/m0lly/keymaps/via/config.h
deleted file mode 100644
index 579212d4a3..0000000000
--- a/keyboards/m0lly/keymaps/via/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#define DYNAMIC_KEYMAP_LAYER_COUNT 2
diff --git a/keyboards/candybar/bootloader_defs.h b/keyboards/tkc/candybar/bootloader_defs.h
similarity index 100%
rename from keyboards/candybar/bootloader_defs.h
rename to keyboards/tkc/candybar/bootloader_defs.h
diff --git a/keyboards/candybar/chconf.h b/keyboards/tkc/candybar/chconf.h
similarity index 100%
rename from keyboards/candybar/chconf.h
rename to keyboards/tkc/candybar/chconf.h
diff --git a/keyboards/candybar/halconf.h b/keyboards/tkc/candybar/halconf.h
similarity index 100%
rename from keyboards/candybar/halconf.h
rename to keyboards/tkc/candybar/halconf.h
diff --git a/keyboards/candybar/lefty/config.h b/keyboards/tkc/candybar/lefty/config.h
similarity index 100%
rename from keyboards/candybar/lefty/config.h
rename to keyboards/tkc/candybar/lefty/config.h
diff --git a/keyboards/candybar/lefty/info.json b/keyboards/tkc/candybar/lefty/info.json
similarity index 100%
rename from keyboards/candybar/lefty/info.json
rename to keyboards/tkc/candybar/lefty/info.json
diff --git a/keyboards/candybar/lefty/keymaps/default/keymap.c b/keyboards/tkc/candybar/lefty/keymaps/default/keymap.c
similarity index 100%
rename from keyboards/candybar/lefty/keymaps/default/keymap.c
rename to keyboards/tkc/candybar/lefty/keymaps/default/keymap.c
diff --git a/keyboards/candybar/lefty/keymaps/via/keymap.c b/keyboards/tkc/candybar/lefty/keymaps/via/keymap.c
similarity index 62%
rename from keyboards/candybar/lefty/keymaps/via/keymap.c
rename to keyboards/tkc/candybar/lefty/keymaps/via/keymap.c
index 153fd99c50..fd927195b2 100644
--- a/keyboards/candybar/lefty/keymaps/via/keymap.c
+++ b/keyboards/tkc/candybar/lefty/keymaps/via/keymap.c
@@ -18,6 +18,8 @@
 
 #define _BL 0
 #define _FL 1
+#define _AL 2
+#define _LL 3
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   /* Keymap _BL: Base Layer (Default Layer)
@@ -35,4 +37,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   KC_P4 , KC_P5, KC_P6  , KC_VOLD, KC_TAB , KC_A   , KC_SLCK, KC_D, KC_F   , KC_G  , KC_H, KC_J   , KC_K   , KC_L   , KC_QUOT,          KC_BSLS , \
   KC_P1 , KC_P2, KC_P3  , KC_PEQL, KC_LSFT,          KC_Z   , KC_X, KC_CAPS, KC_V  , KC_B, KC_NLCK, KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_PGUP , \
   KC_END, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT,                KC_SPC,       KC_SPC , KC_BSPC, KC_APP , MO(_FL), KC_HOME, KC_PGDN),
+  
+  [_AL] = LAYOUT(
+  KC_P7 , KC_P8, KC_P9  , KC_VOLU, RESET  , KC_Q   , KC_W   , KC_E, KC_R   , KC_T  , KC_Y, KC_U   , KC_I   , KC_LBRC, KC_RBRC, KC_INS , KC_BSPC , \
+  KC_P4 , KC_P5, KC_P6  , KC_VOLD, KC_TAB , KC_A   , KC_SLCK, KC_D, KC_F   , KC_G  , KC_H, KC_J   , KC_K   , KC_L   , KC_QUOT,          KC_BSLS , \
+  KC_P1 , KC_P2, KC_P3  , KC_PEQL, KC_LSFT,          KC_Z   , KC_X, KC_CAPS, KC_V  , KC_B, KC_NLCK, KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_PGUP , \
+  KC_END, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT,                KC_SPC,       KC_SPC , KC_BSPC, KC_APP , MO(_FL), KC_HOME, KC_PGDN),
+  
+  [_LL] = LAYOUT(
+  KC_P7 , KC_P8, KC_P9  , KC_VOLU, RESET  , KC_Q   , KC_W   , KC_E, KC_R   , KC_T  , KC_Y, KC_U   , KC_I   , KC_LBRC, KC_RBRC, KC_INS , KC_BSPC , \
+  KC_P4 , KC_P5, KC_P6  , KC_VOLD, KC_TAB , KC_A   , KC_SLCK, KC_D, KC_F   , KC_G  , KC_H, KC_J   , KC_K   , KC_L   , KC_QUOT,          KC_BSLS , \
+  KC_P1 , KC_P2, KC_P3  , KC_PEQL, KC_LSFT,          KC_Z   , KC_X, KC_CAPS, KC_V  , KC_B, KC_NLCK, KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_PGUP , \
+  KC_END, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT,                KC_SPC,       KC_SPC , KC_BSPC, KC_APP , MO(_FL), KC_HOME, KC_PGDN),
 };
diff --git a/keyboards/candybar/lefty/keymaps/via/rules.mk b/keyboards/tkc/candybar/lefty/keymaps/via/rules.mk
similarity index 100%
rename from keyboards/candybar/lefty/keymaps/via/rules.mk
rename to keyboards/tkc/candybar/lefty/keymaps/via/rules.mk
diff --git a/keyboards/candybar/lefty/lefty.c b/keyboards/tkc/candybar/lefty/lefty.c
similarity index 100%
rename from keyboards/candybar/lefty/lefty.c
rename to keyboards/tkc/candybar/lefty/lefty.c
diff --git a/keyboards/candybar/lefty/lefty.h b/keyboards/tkc/candybar/lefty/lefty.h
similarity index 100%
rename from keyboards/candybar/lefty/lefty.h
rename to keyboards/tkc/candybar/lefty/lefty.h
diff --git a/keyboards/candybar/lefty/readme.md b/keyboards/tkc/candybar/lefty/readme.md
similarity index 94%
rename from keyboards/candybar/lefty/readme.md
rename to keyboards/tkc/candybar/lefty/readme.md
index 5954720679..75ca1cbd80 100644
--- a/keyboards/candybar/lefty/readme.md
+++ b/keyboards/tkc/candybar/lefty/readme.md
@@ -10,6 +10,6 @@ The Key Company Candybar is a staggered 40% board with a numpad utilizing the ST
 
 Make example for this keyboard (after setting up your build environment):
 
-    make candybar/lefty:default:dfu-util
+    make tkc/candybar/lefty:default:dfu-util
 
 See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/candybar/lefty/rules.mk b/keyboards/tkc/candybar/lefty/rules.mk
similarity index 100%
rename from keyboards/candybar/lefty/rules.mk
rename to keyboards/tkc/candybar/lefty/rules.mk
diff --git a/keyboards/candybar/mcuconf.h b/keyboards/tkc/candybar/mcuconf.h
similarity index 100%
rename from keyboards/candybar/mcuconf.h
rename to keyboards/tkc/candybar/mcuconf.h
diff --git a/keyboards/candybar/righty/config.h b/keyboards/tkc/candybar/righty/config.h
similarity index 100%
rename from keyboards/candybar/righty/config.h
rename to keyboards/tkc/candybar/righty/config.h
diff --git a/keyboards/candybar/righty/info.json b/keyboards/tkc/candybar/righty/info.json
similarity index 100%
rename from keyboards/candybar/righty/info.json
rename to keyboards/tkc/candybar/righty/info.json
diff --git a/keyboards/candybar/righty/keymaps/default/keymap.c b/keyboards/tkc/candybar/righty/keymaps/default/keymap.c
similarity index 100%
rename from keyboards/candybar/righty/keymaps/default/keymap.c
rename to keyboards/tkc/candybar/righty/keymaps/default/keymap.c
diff --git a/keyboards/candybar/righty/keymaps/via/keymap.c b/keyboards/tkc/candybar/righty/keymaps/via/keymap.c
similarity index 65%
rename from keyboards/candybar/righty/keymaps/via/keymap.c
rename to keyboards/tkc/candybar/righty/keymaps/via/keymap.c
index 8f4cc08c74..fb8ac93d46 100644
--- a/keyboards/candybar/righty/keymaps/via/keymap.c
+++ b/keyboards/tkc/candybar/righty/keymaps/via/keymap.c
@@ -18,6 +18,8 @@
 
 #define _BL 0
 #define _FL 1
+#define _AL 2
+#define _LL 3
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   /* Keymap _BL: Base Layer (Default Layer)
@@ -35,4 +37,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   KC_TAB,KC_A,KC_SLCK,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_QUOT,KC_BSLS,KC_P4,KC_P5,KC_P6,KC_VOLD, \
   KC_LSFT,KC_Z,KC_X,KC_CAPS,KC_V,KC_B,KC_NLCK,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_PGUP,KC_P1,KC_P2,KC_P3,KC_PEQL, \
   KC_LCTL,KC_LGUI,KC_LALT,KC_SPC,KC_SPC,KC_BSPC,KC_APP,MO(_FL),KC_HOME,KC_PGDN,KC_END,KC_P0,KC_PDOT,KC_PENT),
+  
+  [_AL] = LAYOUT(
+  RESET,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_LBRC,KC_RBRC,KC_INS,KC_BSPC,KC_P7,KC_P8,KC_P9,KC_VOLU, \
+  KC_TAB,KC_A,KC_SLCK,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_QUOT,KC_BSLS,KC_P4,KC_P5,KC_P6,KC_VOLD, \
+  KC_LSFT,KC_Z,KC_X,KC_CAPS,KC_V,KC_B,KC_NLCK,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_PGUP,KC_P1,KC_P2,KC_P3,KC_PEQL, \
+  KC_LCTL,KC_LGUI,KC_LALT,KC_SPC,KC_SPC,KC_BSPC,KC_APP,MO(_FL),KC_HOME,KC_PGDN,KC_END,KC_P0,KC_PDOT,KC_PENT),
+  
+  [_LL] = LAYOUT(
+  RESET,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_Y,KC_U,KC_I,KC_LBRC,KC_RBRC,KC_INS,KC_BSPC,KC_P7,KC_P8,KC_P9,KC_VOLU, \
+  KC_TAB,KC_A,KC_SLCK,KC_D,KC_F,KC_G,KC_H,KC_J,KC_K,KC_L,KC_QUOT,KC_BSLS,KC_P4,KC_P5,KC_P6,KC_VOLD, \
+  KC_LSFT,KC_Z,KC_X,KC_CAPS,KC_V,KC_B,KC_NLCK,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_PGUP,KC_P1,KC_P2,KC_P3,KC_PEQL, \
+  KC_LCTL,KC_LGUI,KC_LALT,KC_SPC,KC_SPC,KC_BSPC,KC_APP,MO(_FL),KC_HOME,KC_PGDN,KC_END,KC_P0,KC_PDOT,KC_PENT),
 };
diff --git a/keyboards/candybar/righty/keymaps/via/rules.mk b/keyboards/tkc/candybar/righty/keymaps/via/rules.mk
similarity index 100%
rename from keyboards/candybar/righty/keymaps/via/rules.mk
rename to keyboards/tkc/candybar/righty/keymaps/via/rules.mk
diff --git a/keyboards/candybar/righty/readme.md b/keyboards/tkc/candybar/righty/readme.md
similarity index 94%
rename from keyboards/candybar/righty/readme.md
rename to keyboards/tkc/candybar/righty/readme.md
index d3aa867303..4e2a0f8474 100644
--- a/keyboards/candybar/righty/readme.md
+++ b/keyboards/tkc/candybar/righty/readme.md
@@ -10,6 +10,6 @@ The Key Company Candybar is a staggered 40% board with a numpad utilizing the ST
 
 Make example for this keyboard (after setting up your build environment):
 
-    make candybar/righty:default:dfu-util
+    make tkc/candybar/righty:default:dfu-util
 
 See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/candybar/righty/righty.c b/keyboards/tkc/candybar/righty/righty.c
similarity index 100%
rename from keyboards/candybar/righty/righty.c
rename to keyboards/tkc/candybar/righty/righty.c
diff --git a/keyboards/candybar/righty/righty.h b/keyboards/tkc/candybar/righty/righty.h
similarity index 100%
rename from keyboards/candybar/righty/righty.h
rename to keyboards/tkc/candybar/righty/righty.h
diff --git a/keyboards/candybar/righty/rules.mk b/keyboards/tkc/candybar/righty/rules.mk
similarity index 100%
rename from keyboards/candybar/righty/rules.mk
rename to keyboards/tkc/candybar/righty/rules.mk
diff --git a/keyboards/m0lly/README.md b/keyboards/tkc/m0lly/README.md
similarity index 96%
rename from keyboards/m0lly/README.md
rename to keyboards/tkc/m0lly/README.md
index e0c8b45d95..9af80c7e98 100644
--- a/keyboards/m0lly/README.md
+++ b/keyboards/tkc/m0lly/README.md
@@ -12,6 +12,6 @@ Hardware Availability: [TheKey.Company](https://thekey.company)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make m0lly:default
+    make tkc/m0lly:default
 
 See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/m0lly/config.h b/keyboards/tkc/m0lly/config.h
similarity index 100%
rename from keyboards/m0lly/config.h
rename to keyboards/tkc/m0lly/config.h
diff --git a/keyboards/m0lly/info.json b/keyboards/tkc/m0lly/info.json
similarity index 100%
rename from keyboards/m0lly/info.json
rename to keyboards/tkc/m0lly/info.json
diff --git a/keyboards/m0lly/keymaps/default/keymap.c b/keyboards/tkc/m0lly/keymaps/default/keymap.c
similarity index 100%
rename from keyboards/m0lly/keymaps/default/keymap.c
rename to keyboards/tkc/m0lly/keymaps/default/keymap.c
diff --git a/keyboards/m0lly/keymaps/via/keymap.c b/keyboards/tkc/m0lly/keymaps/via/keymap.c
similarity index 73%
rename from keyboards/m0lly/keymaps/via/keymap.c
rename to keyboards/tkc/m0lly/keymaps/via/keymap.c
index 2e5900f166..b72b8f035b 100644
--- a/keyboards/m0lly/keymaps/via/keymap.c
+++ b/keyboards/tkc/m0lly/keymaps/via/keymap.c
@@ -21,6 +21,8 @@
 enum {
   BASE = 0,
   FUNCTION,
+  ALTERNATE,
+  LAST,
 };
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -66,6 +68,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     _______, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_STEP, _______, _______, XXXXXXX,          _______, _______, _______, XXXXXXX,
     _______, _______, _______,                   _______,                        _______, _______, MO(FUNCTION), _______,                  _______, XXXXXXX, _______, _______
   ),
+  [ALTERNATE] = LAYOUT_all(
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,   XXXXXXX, _______, _______, _______, _______,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, XXXXXXX,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______,          _______, _______, _______, _______,
+    _______, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_STEP, _______, _______, XXXXXXX,          _______, _______, _______, XXXXXXX,
+    _______, _______, _______,                   _______,                        _______, _______, MO(FUNCTION), _______,                  _______, XXXXXXX, _______, _______
+  ),
+    [LAST] = LAYOUT_all(
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,   XXXXXXX, _______, _______, _______, _______,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, XXXXXXX,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______,          _______, _______, _______, _______,
+    _______, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_STEP, _______, _______, XXXXXXX,          _______, _______, _______, XXXXXXX,
+    _______, _______, _______,                   _______,                        _______, _______, MO(FUNCTION), _______,                  _______, XXXXXXX, _______, _______
+  ),
 };
 
 #ifdef OLED_DRIVER_ENABLE
@@ -80,6 +96,12 @@ void oled_task_user(void) {
             break;
         case FUNCTION:
             oled_write_P(PSTR("Function\n"), false);
+            break;
+		case ALTERNATE:
+            oled_write_P(PSTR("Alternate\n"), false);
+            break;
+		case LAST:
+            oled_write_P(PSTR("Last\n"), false);
             break;
         default:
             // Or use the write_ln shortcut over adding '\n' to the end of your string
diff --git a/keyboards/m0lly/keymaps/via/rules.mk b/keyboards/tkc/m0lly/keymaps/via/rules.mk
similarity index 100%
rename from keyboards/m0lly/keymaps/via/rules.mk
rename to keyboards/tkc/m0lly/keymaps/via/rules.mk
diff --git a/keyboards/m0lly/m0lly.c b/keyboards/tkc/m0lly/m0lly.c
similarity index 100%
rename from keyboards/m0lly/m0lly.c
rename to keyboards/tkc/m0lly/m0lly.c
diff --git a/keyboards/m0lly/m0lly.h b/keyboards/tkc/m0lly/m0lly.h
similarity index 100%
rename from keyboards/m0lly/m0lly.h
rename to keyboards/tkc/m0lly/m0lly.h
diff --git a/keyboards/m0lly/rules.mk b/keyboards/tkc/m0lly/rules.mk
similarity index 100%
rename from keyboards/m0lly/rules.mk
rename to keyboards/tkc/m0lly/rules.mk
diff --git a/keyboards/tkc1800/README.md b/keyboards/tkc/tkc1800/README.md
similarity index 96%
rename from keyboards/tkc1800/README.md
rename to keyboards/tkc/tkc1800/README.md
index e154770d72..5382b91b3c 100644
--- a/keyboards/tkc1800/README.md
+++ b/keyboards/tkc/tkc1800/README.md
@@ -12,6 +12,6 @@ Hardware Availability: [TheKey.Company](https://thekey.company/collections/tkc-1
 
 Make example for this keyboard (after setting up your build environment):
 
-    make tkc1800:default
+    make tkc/tkc1800:default
 
 See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/tkc1800/config.h b/keyboards/tkc/tkc1800/config.h
similarity index 100%
rename from keyboards/tkc1800/config.h
rename to keyboards/tkc/tkc1800/config.h
diff --git a/keyboards/tkc1800/info.json b/keyboards/tkc/tkc1800/info.json
similarity index 100%
rename from keyboards/tkc1800/info.json
rename to keyboards/tkc/tkc1800/info.json
diff --git a/keyboards/tkc1800/keymaps/default/keymap.c b/keyboards/tkc/tkc1800/keymaps/default/keymap.c
similarity index 100%
rename from keyboards/tkc1800/keymaps/default/keymap.c
rename to keyboards/tkc/tkc1800/keymaps/default/keymap.c
diff --git a/keyboards/tkc1800/keymaps/smt/keymap.c b/keyboards/tkc/tkc1800/keymaps/smt/keymap.c
similarity index 100%
rename from keyboards/tkc1800/keymaps/smt/keymap.c
rename to keyboards/tkc/tkc1800/keymaps/smt/keymap.c
diff --git a/keyboards/tkc1800/keymaps/via/keymap.c b/keyboards/tkc/tkc1800/keymaps/via/keymap.c
similarity index 71%
rename from keyboards/tkc1800/keymaps/via/keymap.c
rename to keyboards/tkc/tkc1800/keymaps/via/keymap.c
index 76fdf05406..55c2874c62 100644
--- a/keyboards/tkc1800/keymaps/via/keymap.c
+++ b/keyboards/tkc/tkc1800/keymaps/via/keymap.c
@@ -20,6 +20,8 @@
 enum {
   BASE = 0,
   FUNCTION,
+  ALTERNATE,
+  LAST,
 };
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -75,6 +77,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     _______, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_STEP, _______, _______,      _______,     _______, _______, _______, XXXXXXX, \
     _______, _______, _______,                   _______,                            _______, _______, _______,      _______, _______, _______,     _______, _______, _______  \
   ),
+  [ALTERNATE] = LAYOUT(
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, \
+                                                                                                                                           _______, _______, _______, _______, \
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,   XXXXXXX, _______, _______, _______, _______, \
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, \
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______,          _______, _______, _______, _______, \
+    _______, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_STEP, _______, _______,      _______,     _______, _______, _______, XXXXXXX, \
+    _______, _______, _______,                   _______,                            _______, _______, _______,      _______, _______, _______,     _______, _______, _______  \
+  ),
+    [LAST] = LAYOUT(
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, \
+                                                                                                                                           _______, _______, _______, _______, \
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,   XXXXXXX, _______, _______, _______, _______, \
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, \
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______,          _______, _______, _______, _______, \
+    _______, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_STEP, _______, _______,      _______,     _______, _______, _______, XXXXXXX, \
+    _______, _______, _______,                   _______,                            _______, _______, _______,      _______, _______, _______,     _______, _______, _______  \
+  ),
 };
 
 #ifdef OLED_DRIVER_ENABLE
@@ -89,6 +109,12 @@ void oled_task_user(void) {
             break;
         case FUNCTION:
             oled_write_P(PSTR("Function\n"), false);
+            break;
+		case ALTERNATE:
+            oled_write_P(PSTR("Alternate\n"), false);
+            break;
+		case LAST:
+            oled_write_P(PSTR("Last\n"), false);
             break;
         default:
             // Or use the write_ln shortcut over adding '\n' to the end of your string
diff --git a/keyboards/tkc1800/keymaps/via/rules.mk b/keyboards/tkc/tkc1800/keymaps/via/rules.mk
similarity index 100%
rename from keyboards/tkc1800/keymaps/via/rules.mk
rename to keyboards/tkc/tkc1800/keymaps/via/rules.mk
diff --git a/keyboards/tkc1800/keymaps/wkl/keymap.c b/keyboards/tkc/tkc1800/keymaps/wkl/keymap.c
similarity index 100%
rename from keyboards/tkc1800/keymaps/wkl/keymap.c
rename to keyboards/tkc/tkc1800/keymaps/wkl/keymap.c
diff --git a/keyboards/tkc1800/keymaps/yanfali/keymap.c b/keyboards/tkc/tkc1800/keymaps/yanfali/keymap.c
similarity index 100%
rename from keyboards/tkc1800/keymaps/yanfali/keymap.c
rename to keyboards/tkc/tkc1800/keymaps/yanfali/keymap.c
diff --git a/keyboards/tkc1800/keymaps/yanfali/rules.mk b/keyboards/tkc/tkc1800/keymaps/yanfali/rules.mk
similarity index 100%
rename from keyboards/tkc1800/keymaps/yanfali/rules.mk
rename to keyboards/tkc/tkc1800/keymaps/yanfali/rules.mk
diff --git a/keyboards/tkc1800/rules.mk b/keyboards/tkc/tkc1800/rules.mk
similarity index 100%
rename from keyboards/tkc1800/rules.mk
rename to keyboards/tkc/tkc1800/rules.mk
diff --git a/keyboards/tkc1800/tkc1800.c b/keyboards/tkc/tkc1800/tkc1800.c
similarity index 100%
rename from keyboards/tkc1800/tkc1800.c
rename to keyboards/tkc/tkc1800/tkc1800.c
diff --git a/keyboards/tkc1800/tkc1800.h b/keyboards/tkc/tkc1800/tkc1800.h
similarity index 100%
rename from keyboards/tkc1800/tkc1800.h
rename to keyboards/tkc/tkc1800/tkc1800.h
diff --git a/keyboards/tkc1800/keymaps/via/config.h b/keyboards/tkc1800/keymaps/via/config.h
deleted file mode 100644
index 579212d4a3..0000000000
--- a/keyboards/tkc1800/keymaps/via/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#define DYNAMIC_KEYMAP_LAYER_COUNT 2
diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c
index 10d8c9eb66..27ee6a2840 100644
--- a/quantum/dynamic_keymap.c
+++ b/quantum/dynamic_keymap.c
@@ -35,7 +35,11 @@
 // Explicitly override it if the keyboard uses a microcontroller with
 // more EEPROM *and* it makes sense to increase it.
 #ifndef DYNAMIC_KEYMAP_EEPROM_MAX_ADDR
-#    define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 1023
+#    if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__)
+#        define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047
+#    else
+#        define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 1023
+#    endif
 #endif
 
 // If DYNAMIC_KEYMAP_EEPROM_ADDR not explicitly defined in config.h,