From 0689d7bec9d4725a84d5bae3e01119ae5ebe977d Mon Sep 17 00:00:00 2001
From: James Young <18669334+noroadsleft@users.noreply.github.com>
Date: Tue, 30 Aug 2022 11:43:39 -0700
Subject: [PATCH] disperse durgod/k3x0/ source files to keyboard folders
Relocate/duplicate the source files in `durgod/k3x0/` to `durgod/k310/(base/)` and `durgod/k320/(base/)` as needed.
---
keyboards/durgod/k310/base/config.h | 32 ++++++-
keyboards/durgod/{k3x0 => k310}/halconf.h | 0
keyboards/durgod/{k3x0/k3x0.c => k310/k310.c} | 0
keyboards/durgod/k310/k310.h | 22 +++++
keyboards/durgod/k320/base/config.h | 34 ++++++-
keyboards/durgod/k320/halconf.h | 24 +++++
keyboards/durgod/k320/k320.c | 96 +++++++++++++++++++
keyboards/durgod/k320/k320.h | 23 +++++
keyboards/durgod/k3x0/config.h | 53 ----------
keyboards/durgod/k3x0/k3x0.h | 47 ---------
10 files changed, 227 insertions(+), 104 deletions(-)
rename keyboards/durgod/{k3x0 => k310}/halconf.h (100%)
rename keyboards/durgod/{k3x0/k3x0.c => k310/k310.c} (100%)
create mode 100644 keyboards/durgod/k320/halconf.h
create mode 100644 keyboards/durgod/k320/k320.c
delete mode 100644 keyboards/durgod/k3x0/config.h
delete mode 100644 keyboards/durgod/k3x0/k3x0.h
diff --git a/keyboards/durgod/k310/base/config.h b/keyboards/durgod/k310/base/config.h
index cb936a201f07..018afb342d60 100644
--- a/keyboards/durgod/k310/base/config.h
+++ b/keyboards/durgod/k310/base/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2021 Don Kjer and Tyler Tidman
+/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
* Copyright 2021 Simon Arlott
*
* This program is free software: you can redistribute it and/or modify
@@ -19,10 +19,38 @@
#include "config_common.h"
-/* key matrix size (cols in generic keyboard config) */
+#define WAIT_US_TIMER GPTD3
+
+/* key matrix size */
#define MATRIX_ROWS 8
+#define MATRIX_COLS 16
#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6, A7 }
+#define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 }
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+// Dynamic EEPROM
+// Something sensible or else VIA may crash
+// Users may enable more if they wish
+#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Bootmagic Lite key configuration */
+#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 0
/* LED indicator pins */
#define LED_NUM_LOCK_PIN C8
+#define LED_CAPS_LOCK_PIN C9
+#define LED_SCROLL_LOCK_PIN A8
+#define LED_WIN_LOCK_PIN A9
+#define LED_MR_LOCK_PIN A10
+#define LED_PIN_ON_STATE 0
+
+/* Original hardware "reset" button on pin D2 */
+#define HARDWARE_RESET_PIN D2
diff --git a/keyboards/durgod/k3x0/halconf.h b/keyboards/durgod/k310/halconf.h
similarity index 100%
rename from keyboards/durgod/k3x0/halconf.h
rename to keyboards/durgod/k310/halconf.h
diff --git a/keyboards/durgod/k3x0/k3x0.c b/keyboards/durgod/k310/k310.c
similarity index 100%
rename from keyboards/durgod/k3x0/k3x0.c
rename to keyboards/durgod/k310/k310.c
diff --git a/keyboards/durgod/k310/k310.h b/keyboards/durgod/k310/k310.h
index 2d82ee155018..e106c8dbe6d6 100644
--- a/keyboards/durgod/k310/k310.h
+++ b/keyboards/durgod/k310/k310.h
@@ -17,6 +17,8 @@
#pragma once
+#include "quantum.h"
+
#define XXX KC_NO
// This a shortcut to help you visually see your layout.
@@ -76,3 +78,23 @@
{ XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \
}
+
+#ifndef WINLOCK_DISABLED
+// Define the TGUI key here so it is available in QMK configurator
+enum K3x0_keycodes {
+#ifdef VIA_ENABLE
+ KC_TGUI = USER00, // Toggle between GUI Lock or Unlock
+ NEW_SAFE_RANGE = SAFE_RANGE
+#else
+ KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock
+ NEW_SAFE_RANGE
+#endif
+};
+
+#undef SAFE_RANGE
+#define SAFE_RANGE NEW_SAFE_RANGE
+#endif /* WINLOCK_DISABLED */
+
+/* Function Prototype */
+void off_all_leds(void);
+void on_all_leds(void);
diff --git a/keyboards/durgod/k320/base/config.h b/keyboards/durgod/k320/base/config.h
index 2ea9b37fdf7c..5f64a04f9a62 100644
--- a/keyboards/durgod/k320/base/config.h
+++ b/keyboards/durgod/k320/base/config.h
@@ -1,4 +1,4 @@
-/* Copyright 2021 Don Kjer and Tyler Tidman
+/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
* Copyright 2021 Simon Arlott
*
* This program is free software: you can redistribute it and/or modify
@@ -19,7 +19,37 @@
#include "config_common.h"
-/* key matrix size (cols in generic keyboard config) */
+#define WAIT_US_TIMER GPTD3
+
+/* key matrix size */
#define MATRIX_ROWS 7
+#define MATRIX_COLS 16
#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6 }
+#define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 }
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+// Dynamic EEPROM
+// Something sensible or else VIA may crash
+// Users may enable more if they wish
+#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* Bootmagic Lite key configuration */
+#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
+#define BOOTMAGIC_LITE_ROW 0
+#define BOOTMAGIC_LITE_COLUMN 0
+
+/* LED indicator pins */
+#define LED_CAPS_LOCK_PIN C9
+#define LED_SCROLL_LOCK_PIN A8
+#define LED_WIN_LOCK_PIN A9
+#define LED_MR_LOCK_PIN A10
+#define LED_PIN_ON_STATE 0
+
+/* Original hardware "reset" button on pin D2 */
+#define HARDWARE_RESET_PIN D2
diff --git a/keyboards/durgod/k320/halconf.h b/keyboards/durgod/k320/halconf.h
new file mode 100644
index 000000000000..d2a9d8c7c0b3
--- /dev/null
+++ b/keyboards/durgod/k320/halconf.h
@@ -0,0 +1,24 @@
+/* Copyright 2021 Simon Arlott
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#define HAL_USE_PAL TRUE
+#define PAL_USE_CALLBACKS TRUE
+
+#define HAL_USE_GPT TRUE
+
+#include_next
diff --git a/keyboards/durgod/k320/k320.c b/keyboards/durgod/k320/k320.c
new file mode 100644
index 000000000000..d12b46bc51b0
--- /dev/null
+++ b/keyboards/durgod/k320/k320.c
@@ -0,0 +1,96 @@
+/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
+ * Copyright 2021 Simon Arlott
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "k3x0.h"
+#include
+#include
+
+/* Private Functions */
+void off_all_leds(void) {
+#ifdef LED_NUM_LOCK_PIN
+ writePinHigh(LED_NUM_LOCK_PIN);
+#endif
+ writePinHigh(LED_CAPS_LOCK_PIN);
+ writePinHigh(LED_SCROLL_LOCK_PIN);
+ writePinHigh(LED_WIN_LOCK_PIN);
+ writePinHigh(LED_MR_LOCK_PIN);
+}
+
+void on_all_leds(void) {
+#ifdef LED_NUM_LOCK_PIN
+ writePinLow(LED_NUM_LOCK_PIN);
+#endif
+ writePinLow(LED_CAPS_LOCK_PIN);
+ writePinLow(LED_SCROLL_LOCK_PIN);
+ writePinLow(LED_WIN_LOCK_PIN);
+ writePinLow(LED_MR_LOCK_PIN);
+}
+
+/* WinLock and MR LEDs are non-standard. Need to override led init */
+void led_init_ports(void) {
+#ifdef LED_NUM_LOCK_PIN
+ setPinOutput(LED_NUM_LOCK_PIN);
+#endif
+ setPinOutput(LED_CAPS_LOCK_PIN);
+ setPinOutput(LED_SCROLL_LOCK_PIN);
+ setPinOutput(LED_WIN_LOCK_PIN);
+ setPinOutput(LED_MR_LOCK_PIN);
+ off_all_leds();
+}
+
+#ifndef WINLOCK_DISABLED
+static bool win_key_locked = false;
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case KC_TGUI:
+ if (record->event.pressed) {
+ // Toggle GUI lock on key press
+ win_key_locked = !win_key_locked;
+ writePin(LED_WIN_LOCK_PIN, !win_key_locked);
+ }
+ break;
+ case KC_LGUI:
+ if (win_key_locked) { return false; }
+ break;
+ }
+ return process_record_user(keycode, record);
+}
+#endif /* WINLOCK_DISABLED */
+
+#ifndef HW_RESET_PIN_DISABLED
+static void hardware_reset_cb(void *arg) {
+ chSysLockFromISR();
+ bootloader_jump();
+ chSysUnlockFromISR();
+}
+#endif
+
+void keyboard_pre_init_kb(void) {
+ setPinInputHigh(HARDWARE_RESET_PIN);
+
+#ifndef HW_RESET_PIN_DISABLED
+ /* Jump to bootloader when the hardware reset button is pressed */
+ palEnablePadEvent(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), PAL_EVENT_MODE_FALLING_EDGE);
+ palSetPadCallback(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), hardware_reset_cb, NULL);
+
+ /* The interrupt is edge-triggered so check that it's not already pressed */
+ if (!readPin(HARDWARE_RESET_PIN)) {
+ bootloader_jump();
+ }
+#endif
+}
diff --git a/keyboards/durgod/k320/k320.h b/keyboards/durgod/k320/k320.h
index 23b48d0f3921..8b14b14cdf99 100644
--- a/keyboards/durgod/k320/k320.h
+++ b/keyboards/durgod/k320/k320.h
@@ -17,6 +17,8 @@
#pragma once
+#include "quantum.h"
+
#define XXX KC_NO
// This a shortcut to help you visually see your layout.
@@ -90,3 +92,24 @@
{ K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \
{ XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F } \
}
+
+
+#ifndef WINLOCK_DISABLED
+// Define the TGUI key here so it is available in QMK configurator
+enum K3x0_keycodes {
+#ifdef VIA_ENABLE
+ KC_TGUI = USER00, // Toggle between GUI Lock or Unlock
+ NEW_SAFE_RANGE = SAFE_RANGE
+#else
+ KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock
+ NEW_SAFE_RANGE
+#endif
+};
+
+#undef SAFE_RANGE
+#define SAFE_RANGE NEW_SAFE_RANGE
+#endif /* WINLOCK_DISABLED */
+
+/* Function Prototype */
+void off_all_leds(void);
+void on_all_leds(void);
diff --git a/keyboards/durgod/k3x0/config.h b/keyboards/durgod/k3x0/config.h
deleted file mode 100644
index 0f2e01cfc195..000000000000
--- a/keyboards/durgod/k3x0/config.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
- * Copyright 2021 Simon Arlott
- *
- * 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 .
- */
-
-#pragma once
-
-#include "config_common.h"
-
-#define WAIT_US_TIMER GPTD3
-
-/* key matrix size (rows in specific keyboard variant) */
-#define MATRIX_COLS 16
-
-#define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 }
-
-/* COL2ROW, ROW2COL*/
-#define DIODE_DIRECTION ROW2COL
-
-// Dynamic EEPROM
-// Something sensible or else VIA may crash
-// Users may enable more if they wish
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#define DEBOUNCE 5
-
-/* Bootmagic Lite key configuration */
-#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
-#define BOOTMAGIC_LITE_ROW 0
-#define BOOTMAGIC_LITE_COLUMN 0
-
-/* LED indicator pins */
-#define LED_CAPS_LOCK_PIN C9
-#define LED_SCROLL_LOCK_PIN A8
-#define LED_WIN_LOCK_PIN A9
-#define LED_MR_LOCK_PIN A10
-#define LED_PIN_ON_STATE 0
-
-/* Original hardware "reset" button on pin D2 */
-#define HARDWARE_RESET_PIN D2
diff --git a/keyboards/durgod/k3x0/k3x0.h b/keyboards/durgod/k3x0/k3x0.h
deleted file mode 100644
index 93740a5512f5..000000000000
--- a/keyboards/durgod/k3x0/k3x0.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman
- * Copyright 2021 Simon Arlott
- *
- * 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 .
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#ifdef KEYBOARD_durgod_k3x0_k310
-# include "k310.h"
-#elif KEYBOARD_durgod_k3x0_k320
-# include "k320.h"
-#endif
-
-#ifndef WINLOCK_DISABLED
-// Define the TGUI key here so it is available in QMK configurator
-enum K3x0_keycodes {
-#ifdef VIA_ENABLE
- KC_TGUI = USER00, // Toggle between GUI Lock or Unlock
- NEW_SAFE_RANGE = SAFE_RANGE
-#else
- KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock
- NEW_SAFE_RANGE
-#endif
-};
-
-#undef SAFE_RANGE
-#define SAFE_RANGE NEW_SAFE_RANGE
-#endif /* WINLOCK_DISABLED */
-
-/* Function Prototype */
-void off_all_leds(void);
-void on_all_leds(void);
-