e64ec530cd966c15653eb786da2afcd20eee2f30

Author
James Young <18669334+noroadsleft@users.noreply.github.com>
Committer
GitHub <noreply@github.com>
Date

Message

Durgod K310/K320 Refactor (#18224)

Diff

This diff is truncated to protect this page.

   1diff --git a/keyboards/durgod/k310/base/config.h b/keyboards/durgod/k310/base/config.h
   2new file mode 100644
   3index 0000000000000000000000000000000000000000..018afb342d606cba3ca98d047db6d832d12cc577
   4--- /dev/null
   5+++ b/keyboards/durgod/k310/base/config.h
   6@@ -0,0 +1,56 @@
   7+/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
   8+ * Copyright 2021 Simon Arlott
   9+ *
  10+ * This program is free software: you can redistribute it and/or modify
  11+ * it under the terms of the GNU General Public License as published by
  12+ * the Free Software Foundation, either version 2 of the License, or
  13+ * (at your option) any later version.
  14+ *
  15+ * This program is distributed in the hope that it will be useful,
  16+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18+ * GNU General Public License for more details.
  19+ *
  20+ * You should have received a copy of the GNU General Public License
  21+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  22+ */
  23+
  24+#pragma once
  25+
  26+#include "config_common.h"
  27+
  28+#define WAIT_US_TIMER           GPTD3
  29+
  30+/* key matrix size */
  31+#define MATRIX_ROWS 8
  32+#define MATRIX_COLS 16
  33+
  34+#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6, A7 }
  35+#define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 }
  36+
  37+/* COL2ROW, ROW2COL*/
  38+#define DIODE_DIRECTION ROW2COL
  39+
  40+// Dynamic EEPROM
  41+// Something sensible or else VIA may crash
  42+// Users may enable more if they wish
  43+#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR  4095
  44+
  45+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
  46+#define DEBOUNCE 5
  47+
  48+/* Bootmagic Lite key configuration */
  49+#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
  50+#define BOOTMAGIC_LITE_ROW                 0
  51+#define BOOTMAGIC_LITE_COLUMN              0
  52+
  53+/* LED indicator pins */
  54+#define LED_NUM_LOCK_PIN    C8
  55+#define LED_CAPS_LOCK_PIN   C9
  56+#define LED_SCROLL_LOCK_PIN A8
  57+#define LED_WIN_LOCK_PIN    A9
  58+#define LED_MR_LOCK_PIN     A10
  59+#define LED_PIN_ON_STATE    0
  60+
  61+/* Original hardware "reset" button on pin D2 */
  62+#define HARDWARE_RESET_PIN  D2
  63diff --git a/keyboards/durgod/k310/base/readme.md b/keyboards/durgod/k310/base/readme.md
  64deleted file mode 100644
  65index 1f818dacc9c0d239766af79b59b7dd986f289173..0000000000000000000000000000000000000000
  66--- a/keyboards/durgod/k310/base/readme.md
  67+++ /dev/null
  68@@ -1,6 +0,0 @@
  69-# Taurus K310
  70-
  71-Base Model - no backlight leds
  72-
  73-See: [K310](../../k3x0/k310/base/readme.md)
  74-
  75diff --git a/keyboards/durgod/k310/base/rules.mk b/keyboards/durgod/k310/base/rules.mk
  76index ff432cc4aa12b1425de4cedd4d0ee353ab029d66..5c07a0fa711466a24ba406d2b9a9684eecea37fa 100644
  77--- a/keyboards/durgod/k310/base/rules.mk
  78+++ b/keyboards/durgod/k310/base/rules.mk
  79@@ -1 +1,23 @@
  80-DEFAULT_FOLDER=durgod/k3x0/k310/base
  81+# MCU name
  82+# Actually F070, but close enough
  83+MCU = STM32F072
  84+BOARD = DURGOD_STM32_F070
  85+
  86+# Bootloader selection
  87+BOOTLOADER = stm32-dfu
  88+
  89+# Build Options
  90+#   change yes to no to disable
  91+#
  92+BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
  93+MOUSEKEY_ENABLE = no        # Mouse keys
  94+EXTRAKEY_ENABLE = yes       # Audio control and System control
  95+CONSOLE_ENABLE = no         # Console for debug
  96+COMMAND_ENABLE = no         # Commands for debug and configuration
  97+NKRO_ENABLE = yes           # Enable N-Key Rollover
  98+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
  99+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 100+AUDIO_ENABLE = no           # Audio output
 101+LTO_ENABLE = yes
 102+
 103+LAYOUTS = fullsize_ansi fullsize_iso
 104diff --git a/keyboards/durgod/k3x0/halconf.h b/keyboards/durgod/k310/halconf.h
 105rename from keyboards/durgod/k3x0/halconf.h
 106rename to keyboards/durgod/k310/halconf.h
 107diff --git a/keyboards/durgod/k3x0/k310/info.json b/keyboards/durgod/k310/info.json
 108rename from keyboards/durgod/k3x0/k310/info.json
 109rename to keyboards/durgod/k310/info.json
 110diff --git a/keyboards/durgod/k3x0/k3x0.c b/keyboards/durgod/k310/k310.c
 111rename from keyboards/durgod/k3x0/k3x0.c
 112rename to keyboards/durgod/k310/k310.c
 113index d12b46bc51b0280000473effc16d35cad9236f44..fc41ee5657c48922f467d17e88c95661de27c1b5 100644
 114--- a/keyboards/durgod/k3x0/k3x0.c
 115+++ b/keyboards/durgod/k310/k310.c
 116@@ -15,7 +15,7 @@
 117  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 118  */
 119 
 120-#include "k3x0.h"
 121+#include "k310.h"
 122 #include <ch.h>
 123 #include <hal.h>
 124 
 125diff --git a/keyboards/durgod/k3x0/k310/k310.h b/keyboards/durgod/k310/k310.h
 126rename from keyboards/durgod/k3x0/k310/k310.h
 127rename to keyboards/durgod/k310/k310.h
 128index 2d82ee1550183ee2aec0598e7acd2e2fa389c66b..e106c8dbe6d65f644d57173158ac6f3f1d51f835 100644
 129--- a/keyboards/durgod/k3x0/k310/k310.h
 130+++ b/keyboards/durgod/k310/k310.h
 131@@ -17,6 +17,8 @@
 132 
 133 #pragma once
 134 
 135+#include "quantum.h"
 136+
 137 #define XXX KC_NO
 138 
 139 // This a shortcut to help you visually see your layout.
 140@@ -76,3 +78,23 @@
 141     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K77,  K78,  K79,  K7A,  K7B,  K7C,  K7D,  K7E,  K7F }   \
 142 }
 143 
 144+
 145+#ifndef WINLOCK_DISABLED
 146+// Define the TGUI key here so it is available in QMK configurator
 147+enum K3x0_keycodes {
 148+#ifdef VIA_ENABLE
 149+    KC_TGUI = USER00,   // Toggle between GUI Lock or Unlock
 150+    NEW_SAFE_RANGE = SAFE_RANGE
 151+#else
 152+    KC_TGUI = SAFE_RANGE,   // Toggle between GUI Lock or Unlock
 153+    NEW_SAFE_RANGE
 154+#endif
 155+};
 156+
 157+#undef SAFE_RANGE
 158+#define SAFE_RANGE NEW_SAFE_RANGE
 159+#endif /* WINLOCK_DISABLED */
 160+
 161+/* Function Prototype */
 162+void off_all_leds(void);
 163+void on_all_leds(void);
 164diff --git a/keyboards/durgod/k3x0/keymaps/chimera/keymap.c b/keyboards/durgod/k310/keymaps/chimera/keymap.c
 165rename from keyboards/durgod/k3x0/keymaps/chimera/keymap.c
 166rename to keyboards/durgod/k310/keymaps/chimera/keymap.c
 167diff --git a/keyboards/durgod/k3x0/keymaps/chimera/readme.md b/keyboards/durgod/k310/keymaps/chimera/readme.md
 168rename from keyboards/durgod/k3x0/keymaps/chimera/readme.md
 169rename to keyboards/durgod/k310/keymaps/chimera/readme.md
 170diff --git a/keyboards/durgod/k3x0/keymaps/chimera/rules.mk b/keyboards/durgod/k310/keymaps/chimera/rules.mk
 171rename from keyboards/durgod/k3x0/keymaps/chimera/rules.mk
 172rename to keyboards/durgod/k310/keymaps/chimera/rules.mk
 173diff --git a/keyboards/durgod/k3x0/keymaps/default/keymap.json b/keyboards/durgod/k310/keymaps/default/keymap.json
 174rename from keyboards/durgod/k3x0/keymaps/default/keymap.json
 175rename to keyboards/durgod/k310/keymaps/default/keymap.json
 176index 507b5c909cb1e22f7be349ad402eadc3c76c31eb..bd017f0e9dd8b02e45645e93012025d36ea65f07 100644
 177--- a/keyboards/durgod/k3x0/keymaps/default/keymap.json
 178+++ b/keyboards/durgod/k310/keymaps/default/keymap.json
 179@@ -1,5 +1,5 @@
 180 {
 181-  "keyboard": "durgod/k3x0",
 182+  "keyboard": "durgod/k310/base",
 183   "keymap": "default",
 184   "layout": "LAYOUT_all",
 185   "layers": [
 186diff --git a/keyboards/durgod/k3x0/keymaps/default/readme.md b/keyboards/durgod/k310/keymaps/default/readme.md
 187rename from keyboards/durgod/k3x0/keymaps/default/readme.md
 188rename to keyboards/durgod/k310/keymaps/default/readme.md
 189diff --git a/keyboards/durgod/k3x0/keymaps/default_mac/keymap.json b/keyboards/durgod/k310/keymaps/default_mac/keymap.json
 190rename from keyboards/durgod/k3x0/keymaps/default_mac/keymap.json
 191rename to keyboards/durgod/k310/keymaps/default_mac/keymap.json
 192index acf221935e5c4924e59db1ff1515868d0da6729b..26f8aea7f175fc5fad1e232d6c67d8269127089f 100644
 193--- a/keyboards/durgod/k3x0/keymaps/default_mac/keymap.json
 194+++ b/keyboards/durgod/k310/keymaps/default_mac/keymap.json
 195@@ -1,5 +1,5 @@
 196 {
 197-  "keyboard": "durgod/k3x0",
 198+  "keyboard": "durgod/k310/base",
 199   "keymap": "default_mac",
 200   "layout": "LAYOUT_all",
 201   "layers": [
 202diff --git a/keyboards/durgod/k3x0/keymaps/default_mac/readme.md b/keyboards/durgod/k310/keymaps/default_mac/readme.md
 203rename from keyboards/durgod/k3x0/keymaps/default_mac/readme.md
 204rename to keyboards/durgod/k310/keymaps/default_mac/readme.md
 205diff --git a/keyboards/durgod/k3x0/keymaps/typhon/keymap.c b/keyboards/durgod/k310/keymaps/typhon/keymap.c
 206rename from keyboards/durgod/k3x0/keymaps/typhon/keymap.c
 207rename to keyboards/durgod/k310/keymaps/typhon/keymap.c
 208diff --git a/keyboards/durgod/k3x0/keymaps/typhon/readme.md b/keyboards/durgod/k310/keymaps/typhon/readme.md
 209rename from keyboards/durgod/k3x0/keymaps/typhon/readme.md
 210rename to keyboards/durgod/k310/keymaps/typhon/readme.md
 211diff --git a/keyboards/durgod/k3x0/keymaps/typhon/rules.mk b/keyboards/durgod/k310/keymaps/typhon/rules.mk
 212rename from keyboards/durgod/k3x0/keymaps/typhon/rules.mk
 213rename to keyboards/durgod/k310/keymaps/typhon/rules.mk
 214diff --git a/keyboards/durgod/k3x0/keymaps/via/keymap.c b/keyboards/durgod/k310/keymaps/via/keymap.c
 215rename from keyboards/durgod/k3x0/keymaps/via/keymap.c
 216rename to keyboards/durgod/k310/keymaps/via/keymap.c
 217diff --git a/keyboards/durgod/k3x0/keymaps/via/readme.md b/keyboards/durgod/k310/keymaps/via/readme.md
 218rename from keyboards/durgod/k3x0/keymaps/via/readme.md
 219rename to keyboards/durgod/k310/keymaps/via/readme.md
 220diff --git a/keyboards/durgod/k3x0/keymaps/via/rules.mk b/keyboards/durgod/k310/keymaps/via/rules.mk
 221rename from keyboards/durgod/k3x0/keymaps/via/rules.mk
 222rename to keyboards/durgod/k310/keymaps/via/rules.mk
 223diff --git a/keyboards/durgod/k310/readme.md b/keyboards/durgod/k310/readme.md
 224index 234fcc875d67f73d1b4a39a041da03e8f8836222..1f39f79513c38bf4f74f965f089a24444ef6c78d 100644
 225--- a/keyboards/durgod/k310/readme.md
 226+++ b/keyboards/durgod/k310/readme.md
 227@@ -1,4 +1,29 @@
 228-# K310
 229+# Taurus K310
 230 
 231-See: [K310](../k3x0/k310/readme.md)
 232+This code is shared between all K310 variants.  Currently only the base model with no backlight is supported.
 233 
 234+This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key
 235+keyboard without backlight.  This supports both the ANSI and ISO variants.
 236+
 237+* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
 238+* Hardware Supported: [Durgod Taurus K310 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=53&_l=en "Durgod.com Product Page")
 239+* Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-K310-Mechanical-Keyboard/dp/B07TXB4XF3)
 240+
 241+## Instructions
 242+
 243+### Build
 244+
 245+Make command example for this keyboard (after setting up your build environment):
 246+
 247+    make durgod/k310/base:default
 248+
 249+Flashing example for this keyboard:
 250+
 251+    make durgod/k310/base:default:flash
 252+
 253diff --git a/keyboards/durgod/k310/rules.mk b/keyboards/durgod/k310/rules.mk
 254deleted file mode 100644
 255index e200539b260f77cc1bf26d783bf1dee3386488d8..0000000000000000000000000000000000000000
 256--- a/keyboards/durgod/k310/rules.mk
 257+++ /dev/null
 258@@ -1 +0,0 @@
 259-DEFAULT_FOLDER=durgod/k3x0/k310
 260diff --git a/keyboards/durgod/k3x0/config.h b/keyboards/durgod/k320/base/config.h
 261rename from keyboards/durgod/k3x0/config.h
 262rename to keyboards/durgod/k320/base/config.h
 263index 0f2e01cfc195642622bfca59babf8463f1ec7df5..5f64a04f9a629c2c67e31cce99ce56e1ca031107 100644
 264--- a/keyboards/durgod/k3x0/config.h
 265+++ b/keyboards/durgod/k320/base/config.h
 266@@ -21,9 +21,11 @@
 267 
 268 #define WAIT_US_TIMER           GPTD3
 269 
 270-/* key matrix size (rows in specific keyboard variant) */
 271+/* key matrix size */
 272+#define MATRIX_ROWS 7
 273 #define MATRIX_COLS 16
 274 
 275+#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6 }
 276 #define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 }
 277 
 278 /* COL2ROW, ROW2COL*/
 279diff --git a/keyboards/durgod/k320/base/readme.md b/keyboards/durgod/k320/base/readme.md
 280deleted file mode 100644
 281index 8b74e28e54c9ec403739d71837dd6ee0ee64720a..0000000000000000000000000000000000000000
 282--- a/keyboards/durgod/k320/base/readme.md
 283+++ /dev/null
 284@@ -1,6 +0,0 @@
 285-# Taurus K320
 286-
 287-Base Model - no backlight leds
 288-
 289-See: [K320](../../k3x0/k320/base/readme.md)
 290-
 291diff --git a/keyboards/durgod/k320/base/rules.mk b/keyboards/durgod/k320/base/rules.mk
 292index de33470cc00119005015fcdbd37b2bcb46ead5b4..37896a20ce1d18248b5363fde01e220a588add36 100644
 293--- a/keyboards/durgod/k320/base/rules.mk
 294+++ b/keyboards/durgod/k320/base/rules.mk
 295@@ -1 +1,23 @@
 296-DEFAULT_FOLDER=durgod/k3x0/k320/base
 297+# MCU name
 298+# Actually F070, but close enough
 299+MCU = STM32F072
 300+BOARD = DURGOD_STM32_F070
 301+
 302+# Bootloader selection
 303+BOOTLOADER = stm32-dfu
 304+
 305+# Build Options
 306+#   change yes to no to disable
 307+#
 308+BOOTMAGIC_ENABLE = yes      # Enable Bootmagic Lite
 309+MOUSEKEY_ENABLE = no        # Mouse keys
 310+EXTRAKEY_ENABLE = yes       # Audio control and System control
 311+CONSOLE_ENABLE = no         # Console for debug
 312+COMMAND_ENABLE = no         # Commands for debug and configuration
 313+NKRO_ENABLE = yes           # Enable N-Key Rollover
 314+BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 315+RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 316+AUDIO_ENABLE = no           # Audio output
 317+LTO_ENABLE = yes
 318+
 319+LAYOUTS = tkl_ansi tkl_iso
 320diff --git a/keyboards/durgod/k3x0/k310/base/config.h b/keyboards/durgod/k320/halconf.h
 321rename from keyboards/durgod/k3x0/k310/base/config.h
 322rename to keyboards/durgod/k320/halconf.h
 323index 2ccb2f2f0c87d67d7e4f9718df851d2c30c1491a..d2a9d8c7c0b3749d23ba5b75883cd418aac73f6a 100644
 324--- a/keyboards/durgod/k3x0/k310/base/config.h
 325+++ b/keyboards/durgod/k320/halconf.h
 326@@ -1,4 +1,4 @@
 327-/* Copyright 2021 Don Kjer
 328+/* Copyright 2021 Simon Arlott
 329  *
 330  * This program is free software: you can redistribute it and/or modify
 331  * it under the terms of the GNU General Public License as published by
 332@@ -16,4 +16,9 @@
 333 
 334 #pragma once
 335 
 336-#include "config_common.h"
 337+#define HAL_USE_PAL                 TRUE
 338+#define PAL_USE_CALLBACKS           TRUE
 339+
 340+#define HAL_USE_GPT                 TRUE
 341+
 342+#include_next <halconf.h>
 343diff --git a/keyboards/durgod/k3x0/k320/info.json b/keyboards/durgod/k320/info.json
 344rename from keyboards/durgod/k3x0/k320/info.json
 345rename to keyboards/durgod/k320/info.json
 346index 0386ef770944bb8e142624837d70f565361a7439..4d239e05ace9bfb6ce6f386795da575f67318784 100644
 347--- a/keyboards/durgod/k3x0/k320/info.json
 348+++ b/keyboards/durgod/k320/info.json
 349@@ -202,104 +202,6 @@
 350                 { "label": "\u2192", "x": 17.25, "y": 5.5 }
 351             ]
 352         },
 353-        "LAYOUT_tkl": {
 354-            "layout": [
 355-                { "label": "Esc", "x": 0, "y": 0 },
 356-                { "label": "F1", "x": 2, "y": 0 },
 357-                { "label": "F2", "x": 3, "y": 0 },
 358-                { "label": "F3", "x": 4, "y": 0 },
 359-                { "label": "F4", "x": 5, "y": 0 },
 360-                { "label": "F5", "x": 6.5, "y": 0 },
 361-                { "label": "F6", "x": 7.5, "y": 0 },
 362-                { "label": "F7", "x": 8.5, "y": 0 },
 363-                { "label": "F8", "x": 9.5, "y": 0 },
 364-                { "label": "F9", "x": 11, "y": 0 },
 365-                { "label": "F10", "x": 12, "y": 0 },
 366-                { "label": "F11", "x": 13, "y": 0 },
 367-                { "label": "F12", "x": 14, "y": 0 },
 368-                { "label": "PrtSc", "x": 15.25, "y": 0 },
 369-                { "label": "Scroll Lock", "x": 16.25, "y": 0 },
 370-                { "label": "Pause", "x": 17.25, "y": 0 },
 371-
 372-                { "label": "~", "x": 0, "y": 1.5 },
 373-                { "label": "!", "x": 1, "y": 1.5 },
 374-                { "label": "@", "x": 2, "y": 1.5 },
 375-                { "label": "#", "x": 3, "y": 1.5 },
 376-                { "label": "$", "x": 4, "y": 1.5 },
 377-                { "label": "%", "x": 5, "y": 1.5 },
 378-                { "label": "^", "x": 6, "y": 1.5 },
 379-                { "label": "&", "x": 7, "y": 1.5 },
 380-                { "label": "*", "x": 8, "y": 1.5 },
 381-                { "label": "(", "x": 9, "y": 1.5 },
 382-                { "label": ")", "x": 10, "y": 1.5 },
 383-                { "label": "_", "x": 11, "y": 1.5 },
 384-                { "label": "+", "x": 12, "y": 1.5 },
 385-                { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 },
 386-                { "label": "Insert", "x": 15.25, "y": 1.5 },
 387-                { "label": "Home", "x": 16.25, "y": 1.5 },
 388-                { "label": "PgUp", "x": 17.25, "y": 1.5 },
 389-
 390-                { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 },
 391-                { "label": "Q", "x": 1.5, "y": 2.5 },
 392-                { "label": "W", "x": 2.5, "y": 2.5 },
 393-                { "label": "E", "x": 3.5, "y": 2.5 },
 394-                { "label": "R", "x": 4.5, "y": 2.5 },
 395-                { "label": "T", "x": 5.5, "y": 2.5 },
 396-                { "label": "Y", "x": 6.5, "y": 2.5 },
 397-                { "label": "U", "x": 7.5, "y": 2.5 },
 398-                { "label": "I", "x": 8.5, "y": 2.5 },
 399-                { "label": "O", "x": 9.5, "y": 2.5 },
 400-                { "label": "P", "x": 10.5, "y": 2.5 },
 401-                { "label": "{", "x": 11.5, "y": 2.5 },
 402-                { "label": "}", "x": 12.5, "y": 2.5 },
 403-                { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 },
 404-                { "label": "Delete", "x": 15.25, "y": 2.5 },
 405-                { "label": "End", "x": 16.25, "y": 2.5 },
 406-                { "label": "PgDn", "x": 17.25, "y": 2.5 },
 407-
 408-                { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 },
 409-                { "label": "A", "x": 1.75, "y": 3.5 },
 410-                { "label": "S", "x": 2.75, "y": 3.5 },
 411-                { "label": "D", "x": 3.75, "y": 3.5 },
 412-                { "label": "F", "x": 4.75, "y": 3.5 },
 413-                { "label": "G", "x": 5.75, "y": 3.5 },
 414-                { "label": "H", "x": 6.75, "y": 3.5 },
 415-                { "label": "J", "x": 7.75, "y": 3.5 },
 416-                { "label": "K", "x": 8.75, "y": 3.5 },
 417-                { "label": "L", "x": 9.75, "y": 3.5 },
 418-                { "label": ":", "x": 10.75, "y": 3.5 },
 419-                { "label": "\"", "x": 11.75, "y": 3.5 },
 420-                { "label": "#", "x": 12.75, "y": 3.5 },
 421-                { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 },
 422-
 423-                { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 },
 424-                { "label": "\\", "x": 1.25, "y": 4.5 },
 425-                { "label": "Z", "x": 2.25, "y": 4.5 },
 426-                { "label": "X", "x": 3.25, "y": 4.5 },
 427-                { "label": "C", "x": 4.25, "y": 4.5 },
 428-                { "label": "V", "x": 5.25, "y": 4.5 },
 429-                { "label": "B", "x": 6.25, "y": 4.5 },
 430-                { "label": "N", "x": 7.25, "y": 4.5 },
 431-                { "label": "M", "x": 8.25, "y": 4.5 },
 432-                { "label": "<", "x": 9.25, "y": 4.5 },
 433-                { "label": ">", "x": 10.25, "y": 4.5 },
 434-                { "label": "?", "x": 11.25, "y": 4.5 },
 435-                { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 },
 436-                { "label": "\u2191", "x": 16.25, "y": 4.5 },
 437-
 438-                { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 },
 439-                { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 },
 440-                { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 },
 441-                { "x": 3.75, "y": 5.5, "w": 6.25 },
 442-                { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 },
 443-                { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 },
 444-                { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 },
 445-                { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 },
 446-                { "label": "\u2190", "x": 15.25, "y": 5.5 },
 447-                { "label": "\u2193", "x": 16.25, "y": 5.5 },
 448-                { "label": "\u2192", "x": 17.25, "y": 5.5 }
 449diff --git a/keyboards/durgod/k320/k320.c b/keyboards/durgod/k320/k320.c
 450new file mode 100644
 451index 0000000000000000000000000000000000000000..3cb2fd7d67d03e1458503cacf41fb53f8975cbf8
 452--- /dev/null
 453+++ b/keyboards/durgod/k320/k320.c
 454@@ -0,0 +1,96 @@
 455+/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
 456+ * Copyright 2021 Simon Arlott
 457+ *
 458+ * This program is free software: you can redistribute it and/or modify
 459+ * it under the terms of the GNU General Public License as published by
 460+ * the Free Software Foundation, either version 2 of the License, or
 461+ * (at your option) any later version.
 462+ *
 463+ * This program is distributed in the hope that it will be useful,
 464+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 465+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 466+ * GNU General Public License for more details.
 467+ *
 468+ * You should have received a copy of the GNU General Public License
 469+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 470+ */
 471+
 472+#include "k320.h"
 473+#include <ch.h>
 474+#include <hal.h>
 475+
 476+/* Private Functions */
 477+void off_all_leds(void) {
 478+#ifdef LED_NUM_LOCK_PIN
 479+    writePinHigh(LED_NUM_LOCK_PIN);
 480+#endif
 481+    writePinHigh(LED_CAPS_LOCK_PIN);
 482+    writePinHigh(LED_SCROLL_LOCK_PIN);
 483+    writePinHigh(LED_WIN_LOCK_PIN);
 484+    writePinHigh(LED_MR_LOCK_PIN);
 485+}
 486+
 487+void on_all_leds(void) {
 488+#ifdef LED_NUM_LOCK_PIN
 489+    writePinLow(LED_NUM_LOCK_PIN);
 490+#endif
 491+    writePinLow(LED_CAPS_LOCK_PIN);
 492+    writePinLow(LED_SCROLL_LOCK_PIN);
 493+    writePinLow(LED_WIN_LOCK_PIN);
 494+    writePinLow(LED_MR_LOCK_PIN);
 495+}
 496+
 497+/* WinLock and MR LEDs are non-standard. Need to override led init */
 498+void led_init_ports(void) {
 499+#ifdef LED_NUM_LOCK_PIN
 500+    setPinOutput(LED_NUM_LOCK_PIN);
 501+#endif
 502+    setPinOutput(LED_CAPS_LOCK_PIN);
 503+    setPinOutput(LED_SCROLL_LOCK_PIN);
 504+    setPinOutput(LED_WIN_LOCK_PIN);
 505+    setPinOutput(LED_MR_LOCK_PIN);
 506+    off_all_leds();
 507+}
 508+
 509+#ifndef WINLOCK_DISABLED
 510+static bool win_key_locked = false;
 511+
 512+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
 513+    switch (keycode) {
 514+        case KC_TGUI:
 515+            if (record->event.pressed) {
 516+                // Toggle GUI lock on key press
 517+                win_key_locked = !win_key_locked;
 518+                writePin(LED_WIN_LOCK_PIN, !win_key_locked);
 519+            }
 520+            break;
 521+        case KC_LGUI:
 522+            if (win_key_locked) { return false; }
 523+            break;
 524+    }
 525+    return process_record_user(keycode, record);
 526+}
 527+#endif /* WINLOCK_DISABLED */
 528+
 529+#ifndef HW_RESET_PIN_DISABLED
 530+static void hardware_reset_cb(void *arg) {
 531+    chSysLockFromISR();
 532+    bootloader_jump();
 533+    chSysUnlockFromISR();
 534+}
 535+#endif
 536+
 537+void keyboard_pre_init_kb(void) {
 538+    setPinInputHigh(HARDWARE_RESET_PIN);
 539+
 540+#ifndef HW_RESET_PIN_DISABLED
 541+    /* Jump to bootloader when the hardware reset button is pressed */
 542+    palEnablePadEvent(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), PAL_EVENT_MODE_FALLING_EDGE);
 543+    palSetPadCallback(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), hardware_reset_cb, NULL);
 544+
 545+    /* The interrupt is edge-triggered so check that it's not already pressed */
 546+    if (!readPin(HARDWARE_RESET_PIN)) {
 547+        bootloader_jump();
 548+    }
 549+#endif
 550+}
 551diff --git a/keyboards/durgod/k3x0/k320/k320.h b/keyboards/durgod/k320/k320.h
 552rename from keyboards/durgod/k3x0/k320/k320.h
 553rename to keyboards/durgod/k320/k320.h
 554index 23b48d0f3921a33793bdea74b82d230e728b2594..67f0f5f2147917c8388c46d868841a89ddf41f17 100644
 555--- a/keyboards/durgod/k3x0/k320/k320.h
 556+++ b/keyboards/durgod/k320/k320.h
 557@@ -17,6 +17,8 @@
 558 
 559 #pragma once
 560 
 561+#include "quantum.h"
 562+
 563 #define XXX KC_NO
 564 
 565 // This a shortcut to help you visually see your layout.
 566@@ -56,7 +58,7 @@
 567 }
 568 
 569 // This a shortcut to help you visually see your layout.
 570-#define LAYOUT_tkl( \
 571+#define LAYOUT_all( \
 572       K00,        K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,      K0D,  K0E,  K0F,  \
 573       K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1E,      K2E,  K2F,  K1F,  \
 574       K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,      K3D,  K3E,  K3F,  \
 575@@ -73,20 +75,23 @@
 576     { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K6F }   \
 577 }
 578 
 579-// This a shortcut to help you visually see your layout.
 580-#define LAYOUT_all( \
 581-      K00,        K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,      K0D,  K0E,  K0F,                          \
 582-      K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  K1E,      K2E,  K2F,  K1F,      K6A, K69, K68, K67, \
 583-      K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,      K3D,  K3E,  K3F,      K7A, K79, K78, K6B, \
 584-      K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K4E,                            K7E, K7D, K7C,      \
 585-      K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,        K4D,            K4F,            K6E, K6D, K6C, K7B, \
 586-      K50,  K51,  K52,                    K56,                    K5A,  K5B,  K5C,  K5D,      K5E,  K5F,  K6F,      K7F,      K77       \
 587-) { \
 588-    { K00,  K01,  K02,  K03,  K04,  K05,  K06,  K07,  K08,  K09,  K0A,  K0B,  K0C,  K0D,  K0E,  K0F },  \
 589-    { K10,  K11,  K12,  K13,  K14,  K15,  K16,  K17,  K18,  K19,  K1A,  K1B,  K1C,  XXX,  K1E,  K1F },  \
 590-    { K20,  K21,  K22,  K23,  K24,  K25,  K26,  K27,  K28,  K29,  K2A,  K2B,  K2C,  K2D,  K2E,  K2F },  \
 591-    { K30,  K31,  K32,  K33,  K34,  K35,  K36,  K37,  K38,  K39,  K3A,  K3B,  K3C,  K3D,  K3E,  K3F },  \
 592-    { K40,  K41,  K42,  K43,  K44,  K45,  K46,  K47,  K48,  K49,  K4A,  K4B,  XXX,  K4D,  K4E,  K4F },  \
 593-    { K50,  K51,  K52,  XXX,  XXX,  XXX,  K56,  XXX,  XXX,  XXX,  K5A,  K5B,  K5C,  K5D,  K5E,  K5F },  \
 594-    { XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  XXX,  K67,  K68,  K69,  K6A,  K6B,  K6C,  K6D,  K6E,  K6F }   \
 595-}
 596+
 597+#ifndef WINLOCK_DISABLED
 598+// Define the TGUI key here so it is available in QMK configurator
 599+enum K3x0_keycodes {
 600+#ifdef VIA_ENABLE
 601+    KC_TGUI = USER00,   // Toggle between GUI Lock or Unlock
 602+    NEW_SAFE_RANGE = SAFE_RANGE
 603+#else
 604+    KC_TGUI = SAFE_RANGE,   // Toggle between GUI Lock or Unlock
 605+    NEW_SAFE_RANGE
 606+#endif
 607+};
 608+
 609+#undef SAFE_RANGE
 610+#define SAFE_RANGE NEW_SAFE_RANGE
 611+#endif /* WINLOCK_DISABLED */
 612+
 613+/* Function Prototype */
 614+void off_all_leds(void);
 615+void on_all_leds(void);
 616diff --git a/keyboards/durgod/k320/keymaps/default/keymap.json b/keyboards/durgod/k320/keymaps/default/keymap.json
 617new file mode 100644
 618index 0000000000000000000000000000000000000000..3dab704bcdb07ac71c07aa3f605947ead39b60e0
 619--- /dev/null
 620+++ b/keyboards/durgod/k320/keymaps/default/keymap.json
 621@@ -0,0 +1,26 @@
 622+{
 623+  "keyboard": "durgod/k320/base",
 624+  "keymap": "default",
 625+  "layout": "LAYOUT_all",
 626+  "layers": [
 627+    [
 628+      "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",
 629+      "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",
 630+      "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",
 631+      "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_NUHS", "KC_ENT",
 632+      "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",
 633+      "KC_LCTL", "KC_LGUI", "KC_LALT",                                  "KC_SPC",                                   "KC_RALT", "MO(1)",   "KC_APP",  "KC_RCTL",    "KC_LEFT", "KC_DOWN", "KC_RGHT"
 634+    ],
 635+    [
 636+      "_______",            "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "_______", "_______", "_______", "_______", "_______",    "_______", "_______", "_______",
 637+      "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",    "_______", "_______", "_______",
 638+      "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",    "_______", "_______", "_______",
 639+      "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
 640+      "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",            "_______",               "_______",
 641+      "_______", "KC_TGUI", "_______",                                  "_______",                                  "_______", "_______", "_______", "_______",    "_______", "_______", "_______"
 642+    ]
 643+  ],
 644+  "author": "tylert",
 645+  "notes": "",
 646+  "version": 1
 647+}
 648diff --git a/keyboards/durgod/k320/keymaps/default/readme.md b/keyboards/durgod/k320/keymaps/default/readme.md
 649new file mode 100644
 650index 0000000000000000000000000000000000000000..952b1912ce0e76eea738d1639d82c39b2ccba00a
 651--- /dev/null
 652+++ b/keyboards/durgod/k320/keymaps/default/readme.md
 653@@ -0,0 +1,16 @@
 654+# The default keymap for Durgod Taurus K3X0 (K310, K320, etc.) without backlight
 655+
 656+Supports both ANSI and ISO layouts.
 657+
 658+Layer 0 : Standard layout (Windows)
 659+
 660+Layer 1 : Media control and Windows lock key
 661+- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7
 662+- Fn + Windows to toggle Windows lock key functionality
 663+
 664+## Windows key lock
 665+
 666+You can hold down Fn + Windows key to disable the Windows key while in locked mode.
 667+The 'Lock' LED indicates if the Windows key is locked.
 668+
 669+This is similar to the stock K310/K320 Windows key lock functionality.
 670diff --git a/keyboards/durgod/k320/keymaps/default_mac/keymap.json b/keyboards/durgod/k320/keymaps/default_mac/keymap.json
 671new file mode 100644
 672index 0000000000000000000000000000000000000000..a0e83def36947d1c5d8c0523ebc33317c5530cc7
 673--- /dev/null
 674+++ b/keyboards/durgod/k320/keymaps/default_mac/keymap.json
 675@@ -0,0 +1,26 @@
 676+{
 677+  "keyboard": "durgod/k310/base",
 678+  "keymap": "default_mac",
 679+  "layout": "LAYOUT_all",
 680+  "layers": [
 681+    [
 682+      "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_F13",  "KC_F14",  "KC_F15",
 683+      "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",
 684+      "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",
 685+      "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_NUHS", "KC_ENT",
 686+      "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",
 687+      "KC_LCTL", "KC_LALT", "KC_LGUI",                                  "KC_SPC",                                   "KC_RGUI", "KC_RALT", "MO(1)",   "KC_RCTL",    "KC_LEFT", "KC_DOWN", "KC_RGHT"
 688+    ],
 689+    [
 690+      "KC_TRNS",            "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS",
 691+      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS",
 692+      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS",
 693+      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
 694+      "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",            "KC_TRNS",               "KC_TRNS",
 695+      "KC_TRNS", "KC_TRNS", "KC_TRNS",                                  "KC_TRNS",                                  "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",    "KC_TRNS", "KC_TRNS", "KC_TRNS"
 696+    ]
 697+  ],
 698+  "author":"AlCutter",
 699+  "notes":"",
 700+  "version":1
 701+}
 702diff --git a/keyboards/durgod/k320/keymaps/default_mac/readme.md b/keyboards/durgod/k320/keymaps/default_mac/readme.md
 703new file mode 100644
 704index 0000000000000000000000000000000000000000..2765f14f906215f0ee2261daff01c88f57863976
 705--- /dev/null
 706+++ b/keyboards/durgod/k320/keymaps/default_mac/readme.md
 707@@ -0,0 +1,8 @@
 708+# The default (Mac) keymap for Durgod Taurus K320.
 709+
 710+Supports both ANSI and ISO layouts.
 711+
 712+Layer 0 : Standard 87/88 keys TKL layout (Mac)
 713+
 714+Layer 1 : Media control
 715+- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7
 716diff --git a/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/keymap.c b/keyboards/durgod/k320/keymaps/kuenhlee/keymap.c
 717rename from keyboards/durgod/k3x0/k320/keymaps/kuenhlee/keymap.c
 718rename to keyboards/durgod/k320/keymaps/kuenhlee/keymap.c
 719diff --git a/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/readme.md b/keyboards/durgod/k320/keymaps/kuenhlee/readme.md
 720rename from keyboards/durgod/k3x0/k320/keymaps/kuenhlee/readme.md
 721rename to keyboards/durgod/k320/keymaps/kuenhlee/readme.md
 722diff --git a/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/rules.mk b/keyboards/durgod/k320/keymaps/kuenhlee/rules.mk
 723rename from keyboards/durgod/k3x0/k320/keymaps/kuenhlee/rules.mk
 724rename to keyboards/durgod/k320/keymaps/kuenhlee/rules.mk
 725diff --git a/keyboards/durgod/k320/keymaps/via/keymap.c b/keyboards/durgod/k320/keymaps/via/keymap.c
 726new file mode 100644
 727index 0000000000000000000000000000000000000000..993cbd8c2278320face212bdd0b984d5aac2cb3a
 728--- /dev/null
 729+++ b/keyboards/durgod/k320/keymaps/via/keymap.c
 730@@ -0,0 +1,92 @@
 731+/* Copyright 2021 Maxime Coirault, Don Kjer, Tyler Tidman
 732+ *
 733+ * This program is free software: you can redistribute it and/or modify
 734+ * it under the terms of the GNU General Public License as published by
 735+ * the Free Software Foundation, either version 2 of the License, or
 736+ * (at your option) any later version.
 737+ *
 738+ * This program is distributed in the hope that it will be useful,
 739+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 740+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 741+ * GNU General Public License for more details.
 742+ *
 743+ * You should have received a copy of the GNU General Public License
 744+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 745+ */
 746+
 747+#include QMK_KEYBOARD_H
 748+
 749+// Layer shorthand
 750+enum _layer {
 751+    _BASE,
 752+    _FN,
 753+    _LAYER3,
 754+    _LAYER4
 755+};
 756+
 757+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 758+  /* Keymap _BASE: Base Layer (Default Layer)
 759+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
 760+   * │Esc│   │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Slk│Pse│
 761+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
 762+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
 763+   * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│
 764+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
 765+   * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │  \  │ │Del│End│PgD│
 766+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘
 767+   * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│
 768+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐
 769+   * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │    Shift │     │ ↑ │
 770+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐
 771+   * │Ctrl│GUI │Alt │                        │ Alt│Func│ App│Ctrl│ │ ← │ ↓ │ → │
 772+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
 773+   */
 774+  [_BASE] = LAYOUT_all( /* Base Layer */
 775+      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,
 776+      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,
 777+      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,
 778+      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_NUHS, KC_ENT,
 779+      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,
 780+      KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(_FN), KC_APP,  KC_RCTL,    KC_LEFT, KC_DOWN, KC_RGHT
 781+  ),
 782+  /* Keymap _FN: Function Layer
 783+   * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
 784+   * │   │   │Ply│Stp│Prv│Nxt│ │Mut│Vo+│Vo-│   │ │   │   │   │   │ │   │   │   │
 785+   * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
 786+   * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
 787+   * │   │   │   │   │   │   │   │   │   │   │   │   │   │       │ │   │   │   │
 788+   * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
 789+   * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ │   │   │   │
 790+   * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘
 791+   * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │
 792+   * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤     ┌───┐
 793+   * │    │   │   │   │   │   │   │   │   │   │   │   │          │     │   │
 794+   * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐
 795+   * │    │Lock│    │                        │    │Func│ Sys│    │ │   │   │   │
 796+   * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
 797+   */
 798+  [_FN] = LAYOUT_all( /* Function Layer */
 799+      _______,          KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______,    _______, _______, _______,
 800+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
 801+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
 802+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 803+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,
 804+      _______, KC_TGUI, _______,                            _______,                            _______, _______, _______, _______,    _______, _______, _______
 805+  ),
 806+  [_LAYER3] = LAYOUT_all( /* Layer 3 */
 807+      _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
 808+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
 809+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
 810+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 811+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,
 812+      _______, _______, _______,                            _______,                            _______, _______, _______, _______,    _______, _______, _______
 813+  ),
 814+  [_LAYER4] = LAYOUT_all( /* Layer 4 */
 815+      _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
 816+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
 817+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, _______,
 818+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 819+      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             _______,
 820+      _______, _______, _______,                            _______,                            _______, _______, _______, _______,    _______, _______, _______
 821+  )
 822+};
 823diff --git a/keyboards/durgod/k320/keymaps/via/readme.md b/keyboards/durgod/k320/keymaps/via/readme.md
 824new file mode 100644
 825index 0000000000000000000000000000000000000000..ffa1c4ce0a2f977511a413a25ce774cd2dbb9382
 826--- /dev/null
 827+++ b/keyboards/durgod/k320/keymaps/via/readme.md
 828@@ -0,0 +1,6 @@
 829+# The via keymap for Durgod Taurus K310/K320.
 830+
 831+Layer 0 : Standard layout
 832+
 833+Layer 1 : Media control
 834+- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7
 835diff --git a/keyboards/durgod/k320/keymaps/via/rules.mk b/keyboards/durgod/k320/keymaps/via/rules.mk
 836new file mode 100644
 837index 0000000000000000000000000000000000000000..1e5b99807cb7a90b282a3001a38bf303774544ba
 838--- /dev/null
 839+++ b/keyboards/durgod/k320/keymaps/via/rules.mk
 840@@ -0,0 +1 @@
 841+VIA_ENABLE = yes
 842diff --git a/keyboards/durgod/k320/readme.md b/keyboards/durgod/k320/readme.md
 843index b8ca5b6da1a04d09da4db42d32a3098712944c39..ce5ae3211d3e9d86edbf6882c17420b497e9d45d 100644
 844--- a/keyboards/durgod/k320/readme.md
 845+++ b/keyboards/durgod/k320/readme.md
 846@@ -1,4 +1,29 @@
 847-# K320
 848+# Taurus K320
 849 
 850-See: [K320](../k3x0/k320/readme.md)
 851+This code is shared between all K320 variants.  Currently only the base model with no backlight is supported.
 852 
 853+This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key)
 854+keyboard without backlight.  This supports both the ANSI and ISO variants.
 855+
 856+* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
 857+* Hardware Supported: [Durgod Taurus K320 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=47&_l=en "Durgod.com Product Page")
 858+* Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM)
 859+
 860+## Instructions
 861+
 862+### Build
 863+
 864+Make command example for this keyboard (after setting up your build environment):
 865+
 866+    make durgod/k3x0/k320/base:default
 867+
 868+Flashing example for this keyboard:
 869+
 870+    make durgod/k3x0/k320/base:default:flash
 871+
 872diff --git a/keyboards/durgod/k320/rules.mk b/keyboards/durgod/k320/rules.mk
 873deleted file mode 100644
 874index d3f7b11945cc139e81c606912886103684e7b08a..0000000000000000000000000000000000000000
 875--- a/keyboards/durgod/k320/rules.mk
 876+++ /dev/null
 877@@ -1 +0,0 @@
 878-DEFAULT_FOLDER=durgod/k3x0/k320
 879diff --git a/keyboards/durgod/k3x0/k310/base/readme.md b/keyboards/durgod/k3x0/k310/base/readme.md
 880deleted file mode 100644
 881index 9f465404366ba3e599897960271503bfcc3a543e..0000000000000000000000000000000000000000
 882--- a/keyboards/durgod/k3x0/k310/base/readme.md
 883+++ /dev/null
 884@@ -1,27 +0,0 @@
 885-# K310
 886-
 887-This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key
 888-keyboard without backlight.  This supports both the ANSI and ISO variants.
 889-
 890-* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
 891-* Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6
 892-* Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en
 893-
 894-## Instructions
 895-
 896-### Build
 897-
 898-Make command example for this keyboard (after setting up your build environment):
 899-
 900-    make durgod/k310:default
 901-
 902-Flashing example for this keyboard:
 903-
 904-    make durgod/k310:default:flash
 905-
 906diff --git a/keyboards/durgod/k3x0/k310/base/rules.mk b/keyboards/durgod/k3x0/k310/base/rules.mk
 907deleted file mode 100644
 908index 323c12fc6e0587cd3cefcc8c7725c4a9c8f50c04..0000000000000000000000000000000000000000
 909--- a/keyboards/durgod/k3x0/k310/base/rules.mk
 910+++ /dev/null
 911@@ -1 +0,0 @@
 912-# see common rules.mk
 913diff --git a/keyboards/durgod/k3x0/k310/config.h b/keyboards/durgod/k3x0/k310/config.h
 914deleted file mode 100644
 915index cb936a201f0750005661a9a801aed42992929a64..0000000000000000000000000000000000000000
 916--- a/keyboards/durgod/k3x0/k310/config.h
 917+++ /dev/null
 918@@ -1,28 +0,0 @@
 919-/* Copyright 2021 Don Kjer and Tyler Tidman
 920- * Copyright 2021 Simon Arlott
 921- *
 922- * This program is free software: you can redistribute it and/or modify
 923- * it under the terms of the GNU General Public License as published by
 924- * the Free Software Foundation, either version 2 of the License, or
 925- * (at your option) any later version.
 926- *
 927- * This program is distributed in the hope that it will be useful,
 928- * but WITHOUT ANY WARRANTY; without even the implied warranty of
 929- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 930- * GNU General Public License for more details.
 931- *
 932- * You should have received a copy of the GNU General Public License
 933- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 934- */
 935-
 936-#pragma once
 937-
 938-#include "config_common.h"
 939-
 940-/* key matrix size (cols in generic keyboard config) */
 941-#define MATRIX_ROWS 8
 942-
 943-#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6, A7 }
 944-
 945-/* LED indicator pins */
 946-#define LED_NUM_LOCK_PIN    C8
 947diff --git a/keyboards/durgod/k3x0/k310/readme.md b/keyboards/durgod/k3x0/k310/readme.md
 948deleted file mode 100644
 949index bee903b88f7fb45f744b0f72a5e4f9dda16d8486..0000000000000000000000000000000000000000
 950--- a/keyboards/durgod/k3x0/k310/readme.md
 951+++ /dev/null
 952@@ -1,10 +0,0 @@
 953-# Taurus K310
 954-
 955-This code is shared between all K310 variants.  Currently only the base model with no backlight is supported.
 956-
 957-* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
 958-* Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6
 959-* Hardware Availability: Base https://www.durgod.com/page9?product_id=53&_l=en
 960-
 961-Instructions for building the K310 firmware can be found here:
 962-* [No Backlight](base/readme.md)
 963diff --git a/keyboards/durgod/k3x0/k310/rules.mk b/keyboards/durgod/k3x0/k310/rules.mk
 964deleted file mode 100644
 965index 2df1aff9c80f31037ad701193edf312234a96627..0000000000000000000000000000000000000000
 966--- a/keyboards/durgod/k3x0/k310/rules.mk
 967+++ /dev/null
 968@@ -1,4 +0,0 @@
 969-# Default to the base model
 970-DEFAULT_FOLDER=durgod/k3x0/k310/base
 971-
 972-LAYOUTS = fullsize_ansi fullsize_iso
 973diff --git a/keyboards/durgod/k3x0/k320/base/config.h b/keyboards/durgod/k3x0/k320/base/config.h
 974deleted file mode 100644
 975index 2ccb2f2f0c87d67d7e4f9718df851d2c30c1491a..0000000000000000000000000000000000000000
 976--- a/keyboards/durgod/k3x0/k320/base/config.h
 977+++ /dev/null
 978@@ -1,19 +0,0 @@
 979-/* Copyright 2021 Don Kjer
 980- *
 981- * This program is free software: you can redistribute it and/or modify
 982- * it under the terms of the GNU General Public License as published by
 983- * the Free Software Foundation, either version 2 of the License, or
 984- * (at your option) any later version.
 985- *
 986- * This program is distributed in the hope that it will be useful,
 987- * but WITHOUT ANY WARRANTY; without even the implied warranty of
 988- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 989- * GNU General Public License for more details.
 990- *
 991- * You should have received a copy of the GNU General Public License
 992- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 993- */
 994-
 995-#pragma once
 996-
 997-#include "config_common.h"
 998diff --git a/keyboards/durgod/k3x0/k320/base/readme.md b/keyboards/durgod/k3x0/k320/base/readme.md
 999deleted file mode 100644
1000index 8f46cc122cee2dce041a0aaed0c9aefbbf550813..0000000000000000000000000000000000000000
1001--- a/keyboards/durgod/k3x0/k320/base/readme.md
1002+++ /dev/null
1003@@ -1,27 +0,0 @@
1004-# K320
1005-
1006-This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key)
1007-keyboard without backlight.  This supports both the ANSI and ISO variants.
1008-
1009-* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
1010-* Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6
1011-* Hardware Availability: https://www.durgod.com/page9?product_id=47&_l=en
1012-
1013-## Instructions
1014-
1015-### Build
1016-
1017-Make command example for this keyboard (after setting up your build environment):
1018-
1019-    make durgod/k320:default
1020-
1021-Flashing example for this keyboard:
1022-
1023-    make durgod/k320:default:flash
1024-
1025diff --git a/keyboards/durgod/k3x0/k320/base/rules.mk b/keyboards/durgod/k3x0/k320/base/rules.mk
1026deleted file mode 100644
1027index 323c12fc6e0587cd3cefcc8c7725c4a9c8f50c04..0000000000000000000000000000000000000000
1028--- a/keyboards/durgod/k3x0/k320/base/rules.mk
1029+++ /dev/null
1030@@ -1 +0,0 @@
1031-# see common rules.mk
1032diff --git a/keyboards/durgod/k3x0/k320/config.h b/keyboards/durgod/k3x0/k320/config.h
1033deleted file mode 100644
1034index 2ea9b37fdf7c7f49d73bea38506f9f15147cf4ff..0000000000000000000000000000000000000000
1035--- a/keyboards/durgod/k3x0/k320/config.h
1036+++ /dev/null
1037@@ -1,25 +0,0 @@
1038-/* Copyright 2021 Don Kjer and Tyler Tidman
1039- * Copyright 2021 Simon Arlott
1040- *
1041- * This program is free software: you can redistribute it and/or modify
1042- * it under the terms of the GNU General Public License as published by
1043- * the Free Software Foundation, either version 2 of the License, or
1044- * (at your option) any later version.
1045- *
1046- * This program is distributed in the hope that it will be useful,
1047- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1048- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1049- * GNU General Public License for more details.
1050- *
1051- * You should have received a copy of the GNU General Public License
1052- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
1053- */
1054-
1055-#pragma once
1056-
1057-#include "config_common.h"
1058-
1059-/* key matrix size (cols in generic keyboard config) */
1060-#define MATRIX_ROWS 7
1061-
1062-#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6 }