Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master' into develop

QMK Bot 2 жил өмнө
parent
commit
52e9ed75e8

+ 1 - 1
keyboards/kinesis/config.h

@@ -20,7 +20,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* USB Device descriptor parameter */
 #define VENDOR_ID       0xFEED
 #define MANUFACTURER    You
-#define PRODUCT         Kinesis Advantage/Contoured
+#define PRODUCT         Kinesis Classic/Advantage/Contoured
 
 // Mouse
 #define MOUSEKEY_DELAY          60

+ 2 - 0
keyboards/kinesis/kinesis.h

@@ -12,6 +12,8 @@
 #    include "kint36.h"
 #elif defined(KEYBOARD_kinesis_kint41)
 #    include "kint41.h"
+#elif defined(KEYBOARD_kinesis_kintlc)
+#    include "kintlc.h"
 #endif
 
 #include "quantum.h"

+ 3 - 2
keyboards/kinesis/kint36/kint36.c

@@ -16,11 +16,12 @@
 
 #include "kint36.h"
 
+#define LED_POWER C5
+
 void matrix_init_kb(void) {
     matrix_init_user();
 
-// Turn on the Teensy 3.6 Power LED:
-#define LED_POWER C5
+    // Turn on the Teensy 3.6 Power LED:
     setPinOutput(LED_POWER);
     writePinHigh(LED_POWER);
 }

+ 0 - 3
keyboards/kinesis/kint36/rules.mk

@@ -4,6 +4,3 @@ MCU = MK66FX1M0
 # Debounce eagerly (report change immediately), keep per-key timers. We can use
 # this because the kinT does not have to deal with noise.
 DEBOUNCE_TYPE = sym_eager_pk
-
-#Specify firmware format that is copied to root qmk_firmware folder
-FIRMWARE_FORMAT = hex

+ 3 - 2
keyboards/kinesis/kint41/kint41.c

@@ -16,11 +16,12 @@
 
 #include "kint41.h"
 
+#define LED_POWER LINE_PIN13
+
 void matrix_init_kb(void) {
     matrix_init_user();
 
-// Turn on the Teensy 4.x Power LED:
-#define LED_POWER LINE_PIN13
+    // Turn on the Teensy 4.x Power LED:
     setPinOutput(LED_POWER);
     writePinHigh(LED_POWER);
 }

+ 1 - 2
keyboards/kinesis/kint41/rules.mk

@@ -3,7 +3,7 @@ MCU_SERIES = MIMXRT1062
 MCU_LDSCRIPT = MIMXRT1062
 MCU_STARTUP = MIMXRT1062
 BOARD = IC_TEENSY_4_1
-MCU  = cortex-m4
+MCU = cortex-m4
 ARMV = 7
 
 # Debounce eagerly (report change immediately), keep per-key timers. We can use
@@ -11,5 +11,4 @@ ARMV = 7
 # pressed.
 DEBOUNCE_TYPE = sym_eager_pk
 
-#Specify firmware format that is copied to root qmk_firmware folder
 FIRMWARE_FORMAT = hex

+ 53 - 0
keyboards/kinesis/kintlc/chconf.h

@@ -0,0 +1,53 @@
+/* Copyright 2020 QMK
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*
+ * This file was auto-generated by:
+ *    `qmk chibios-confmigrate -i keyboards/kinesis/kint36/chconf.h -r platforms/chibios/common/configs/chconf.h`
+ */
+
+#pragma once
+
+#define CH_CFG_ST_FREQUENCY 1000
+
+#define CH_CFG_ST_TIMEDELTA 0
+
+#define CH_CFG_TIME_QUANTUM 20
+
+#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE
+
+#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE
+
+#define CH_CFG_FACTORY_SEMAPHORES TRUE
+
+#define CH_CFG_FACTORY_MAILBOXES TRUE
+
+#define CH_CFG_FACTORY_OBJ_FIFOS TRUE
+
+#define CH_CFG_FACTORY_PIPES TRUE
+
+#define CH_DBG_SYSTEM_STATE_CHECK TRUE
+
+#define CH_DBG_ENABLE_CHECKS TRUE
+
+#define CH_DBG_ENABLE_ASSERTS TRUE
+
+#define CH_DBG_ENABLE_STACK_CHECK TRUE
+
+#define CH_DBG_FILL_THREADS TRUE
+
+
+#include_next <chconf.h>

+ 114 - 0
keyboards/kinesis/kintlc/config.h

@@ -0,0 +1,114 @@
+/* Copyright 2020 QMK
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* USB Device descriptor parameter */
+#undef VENDOR_ID
+#define VENDOR_ID 0x1209
+#undef PRODUCT_ID
+#define PRODUCT_ID 0x345C
+#undef DEVICE_VER
+#define DEVICE_VER 0x0001
+#undef MANUFACTURER
+#define MANUFACTURER "https://github.com/stapelberg"
+#undef PRODUCT
+#define PRODUCT "kinT (kintlc)"
+
+/* key matrix size */
+#define MATRIX_ROWS 15
+#define MATRIX_COLS 7
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS               \
+    {                                 \
+        LINE_PIN8,      /* ROW_EQL */ \
+            LINE_PIN9,  /* ROW_1 */   \
+            LINE_PIN10, /* ROW_2 */   \
+            LINE_PIN11, /* ROW_3 */   \
+            LINE_PIN7,  /* ROW_4 */   \
+            LINE_PIN16, /* ROW_5 */   \
+            LINE_PIN5,  /* ROW_6 */   \
+            LINE_PIN3,  /* ROW_7 */   \
+            LINE_PIN4,  /* ROW_8 */   \
+            LINE_PIN1,  /* ROW_9 */   \
+            LINE_PIN0,  /* ROW_0 */   \
+            LINE_PIN2,  /* ROW_MIN */ \
+            LINE_PIN17, /* ROW_ESC */ \
+            LINE_PIN23, /* ROW_F1 */  \
+            LINE_PIN21 /* ROW_F2 */  \
+    }
+
+#define MATRIX_COL_PINS             \
+    {                               \
+        LINE_PIN18,     /* COL_0 */ \
+            LINE_PIN14, /* COL_1 */ \
+            LINE_PIN15, /* COL_2 */ \
+            LINE_PIN20, /* COL_3 */ \
+            LINE_PIN22, /* COL_4 */ \
+            LINE_PIN19, /* COL_5 */ \
+            LINE_PIN6   /* COL_6 */ \
+    }
+
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* Well-worn Cherry MX key switches can bounce for up to 20ms, despite the
+ * Cherry data sheet specifying 5ms. Because we use the sym_eager_pk debounce
+ * algorithm, this debounce latency only affects key releases (not key
+ * presses). */
+#undef DEBOUNCE
+#define DEBOUNCE 20
+
+#define IGNORE_MOD_TAP_INTERRUPT
+
+// The Teensy LC power consumption is unknown as per
+// https://www.pjrc.com/store/teensylc.html but since
+// https://www.pjrc.com/store/teensy41.html says 100mA, let's go with half.
+#define USB_MAX_POWER_CONSUMPTION 50
+
+/* We use the i.MX RT1060 high-speed GPIOs (GPIO6-9) which are connected to the
+ * AHB bus (AHB_CLK_ROOT), which runs at the same speed as the ARM Core Clock,
+ * i.e. 600 MHz. See MIMXRT1062, page 949, 12.1 Chip-specific GPIO information.
+ * No additional delay is necessary. */
+
+// in clock cycles
+#define GPIO_INPUT_PIN_DELAY 0
+
+// The default "1" results in LEDs being on when they should be off and
+// the other way around.
+#define LED_PIN_ON_STATE 0
+
+// Discussion about which Teensy LC pins can be used for driving staus LEDs:
+//   https://github.com/kinx-project/kint/issues/55
+// Discussion about using Neopixel LEDs:
+//   https://github.com/kinx-project/kint/issues/32
+// Available pins can be seen in:
+//   /lib/chibios-contrib/os/hal/boards/PJRC_TEENSY_LC/board.h
+#define LED_CAPS_LOCK_PIN LINE_PIN12
+#define LED_SCROLL_LOCK_PIN LINE_PIN25
+#define LED_COMPOSE_PIN LINE_PIN24

+ 27 - 0
keyboards/kinesis/kintlc/kintlc.c

@@ -0,0 +1,27 @@
+/* Copyright 2020 QMK
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "kintlc.h"
+
+#define LED_POWER LINE_PIN13
+
+void matrix_init_kb(void) {
+    matrix_init_user();
+
+    // Turn on the Teensy LC Power LED:
+    setPinOutput(LED_POWER);
+    writePinHigh(LED_POWER);
+}

+ 92 - 0
keyboards/kinesis/kintlc/kintlc.h

@@ -0,0 +1,92 @@
+/* Copyright 2020 QMK
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+#define ___ KC_NO
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguments as on the physical keyboard
+// The second converts the arguments into the 2-D scanned array
+
+#define LAYOUT(                                   \
+    kC0, kD0, kE0, kC1, kD1, kE1, kC2, kD2, kE2,  \
+    k00, k10, k20, k30, k40, k50,                 \
+    k01, k11, k21, k31, k41, k51,                 \
+    k02, k12, k22, k32, k42, k52,                 \
+    k03, k13, k23, k33, k43, k53,                 \
+         k14, k24, k34, k54,                      \
+                             k56, k55,            \
+                                  k35,            \
+                        k36, k46, k25,            \
+                                                  \
+    kC3, kD3, kE3, kC4, kD4, kE4, kC5, kE5, kD5,  \
+                   k60, k70, k80, k90, kA0, kB0,  \
+                   k61, k71, k81, k91, kA1, kB1,  \
+                   k62, k72, k82, k92, kA2, kB2,  \
+                   k63, k73, k83, k93, kA3, kB3,  \
+                        k64, k84, k94, kA4,       \
+              k96, k85,                           \
+              k86,                                \
+              k66, k75, k65                       \
+) {                                              \
+    { k00,  k01,  k02,  k03,  ___,  ___,  ___ }, \
+    { k10,  k11,  k12,  k13,  k14,  ___,  ___ }, \
+    { k20,  k21,  k22,  k23,  k24,  k25,  ___ }, \
+    { k30,  k31,  k32,  k33,  k34,  k35,  k36 }, \
+    { k40,  k41,  k42,  k43,  ___,  ___,  k46 }, \
+    { k50,  k51,  k52,  k53,  k54,  k55,  k56 }, \
+    { k60,  k61,  k62,  k63,  k64,  k65,  k66 }, \
+    { k70,  k71,  k72,  k73,  ___,  k75,  ___ }, \
+    { k80,  k81,  k82,  k83,  k84,  k85,  k86 }, \
+    { k90,  k91,  k92,  k93,  k94,  ___,  k96 }, \
+    { kA0,  kA1,  kA2,  kA3,  kA4,  ___,  ___ }, \
+    { kB0,  kB1,  kB2,  kB3,  ___,  ___,  ___ }, \
+    { kC0,  kC1,  kC2,  kC3,  kC4,  kC5,  ___ }, \
+    { kD0,  kD1,  kD2,  kD3,  kD4,  kD5,  ___ }, \
+    { kE0,  kE1,  kE2,  kE3,  kE4,  kE5,  ___ }, \
+}
+
+/*  ---------------- LEFT HAND -----------------   ---------------- RIGHT HAND ---------------- */
+#define LAYOUT_pretty(                                                                           \
+    kC0, kD0, kE0, kC1, kD1, kE1, kC2, kD2, kE2,   kC3, kD3, kE3, kC4, kD4, kE4, kC5, kE5, kD5,  \
+    k00, k10, k20, k30, k40, k50,                            k60, k70, k80, k90, kA0, kB0,       \
+    k01, k11, k21, k31, k41, k51,                            k61, k71, k81, k91, kA1, kB1,       \
+    k02, k12, k22, k32, k42, k52,                            k62, k72, k82, k92, kA2, kB2,       \
+    k03, k13, k23, k33, k43, k53,                            k63, k73, k83, k93, kA3, kB3,       \
+         k14, k24, k34, k54,                                      k64, k84, k94, kA4,            \
+                             k56, k55,                  k96, k85,                                \
+                                  k35,                  k86,                                     \
+                        k36, k46, k25,                  k66, k75, k65                            \
+) {                                              \
+    { k00,  k01,  k02,  k03,  ___,  ___,  ___ }, \
+    { k10,  k11,  k12,  k13,  k14,  ___,  ___ }, \
+    { k20,  k21,  k22,  k23,  k24,  k25,  ___ }, \
+    { k30,  k31,  k32,  k33,  k34,  k35,  k36 }, \
+    { k40,  k41,  k42,  k43,  ___,  ___,  k46 }, \
+    { k50,  k51,  k52,  k53,  k54,  k55,  k56 }, \
+    { k60,  k61,  k62,  k63,  k64,  k65,  k66 }, \
+    { k70,  k71,  k72,  k73,  ___,  k75,  ___ }, \
+    { k80,  k81,  k82,  k83,  k84,  k85,  k86 }, \
+    { k90,  k91,  k92,  k93,  k94,  ___,  k96 }, \
+    { kA0,  kA1,  kA2,  kA3,  kA4,  ___,  ___ }, \
+    { kB0,  kB1,  kB2,  kB3,  ___,  ___,  ___ }, \
+    { kC0,  kC1,  kC2,  kC3,  kC4,  kC5,  ___ }, \
+    { kD0,  kD1,  kD2,  kD3,  kD4,  kD5,  ___ }, \
+    { kE0,  kE1,  kE2,  kE3,  kE4,  kE5,  ___ }  \
+}

+ 45 - 0
keyboards/kinesis/kintlc/mcuconf.h

@@ -0,0 +1,45 @@
+/*
+    ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+*/
+
+#ifndef _MCUCONF_H_
+#define _MCUCONF_H_
+
+#define KL2x_MCUCONF
+
+/*
+ * HAL driver system settings.
+ */
+/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */
+#define KINETIS_MCG_MODE            KINETIS_MCG_MODE_PEE
+#define KINETIS_PLLCLK_FREQUENCY    96000000UL
+#define KINETIS_SYSCLK_FREQUENCY    48000000UL
+
+/*
+ * SERIAL driver system settings.
+ */
+#define KINETIS_SERIAL_USE_UART0              TRUE
+
+/*
+ * USB driver settings
+ */
+#define KINETIS_USB_USE_USB0                  TRUE
+
+/* Need to redefine this, since the default (configured for K20x) might not apply
+ *   2 for Teensy LC
+ *   5 for Teensy 3.x */
+#define KINETIS_USB_USB0_IRQ_PRIORITY         2
+
+#endif /* _MCUCONF_H_ */

+ 3 - 0
keyboards/kinesis/kintlc/readme.md

@@ -0,0 +1,3 @@
+# kinesis_kintlc keyboard firmware
+
+Please see https://github.com/kinx-project/kint for details.

+ 9 - 0
keyboards/kinesis/kintlc/rules.mk

@@ -0,0 +1,9 @@
+# MCU name
+MCU = MKL26Z64
+# This MCU is not in the main CHIBIOS repo but in the CHIBIOS_CONTRIB repo.
+USE_CHIBIOS_CONTRIB = yes
+
+# Debounce eagerly (report change immediately), keep per-key timers. We can use
+# this because the Cherry MX keyswitches on the Kinesis only produce noise while
+# pressed.
+DEBOUNCE_TYPE = sym_eager_pk