Skip to content

Commit

Permalink
add kinesis/kint36 (qmk#10171)
Browse files Browse the repository at this point in the history
This moves the config_common.h into the files that include ../config.h,
so that the kint36/config.h does not include it (which would cause
compilation errors).
  • Loading branch information
stapelberg authored and nhongooi committed Dec 5, 2021
1 parent 3b55972 commit eae7f47
Show file tree
Hide file tree
Showing 11 changed files with 287 additions and 2 deletions.
1 change: 1 addition & 0 deletions keyboards/kinesis/alvicstep/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define ALVICSTEP_CONFIG_H

#include "../config.h"
#include "config_common.h"

/* USB Device descriptor parameter */
#define PRODUCT_ID 0x6060
Expand Down
2 changes: 0 additions & 2 deletions keyboards/kinesis/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef CONFIG_H
#define CONFIG_H

#include "config_common.h"

/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define MANUFACTURER You
Expand Down
3 changes: 3 additions & 0 deletions keyboards/kinesis/kinesis.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
#ifdef KEYBOARD_kinesis_nguyenvietyen
#include "nguyenvietyen.h"
#endif
#ifdef KEYBOARD_kinesis_kint36
#include "kint36.h"
#endif

#include "quantum.h"

Expand Down
28 changes: 28 additions & 0 deletions keyboards/kinesis/kint36/chconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/* 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_TIMEDELTA 0

#define CH_CFG_TIME_QUANTUM 20

#include_next <chconf.h>
66 changes: 66 additions & 0 deletions keyboards/kinesis/kint36/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/* 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 (kint36)"

/* 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 { D3, C3, C4, C6, D2, B0, D7, A12, A13, B17, B16, D0, B1, C2, D6 }
#define MATRIX_COL_PINS { B3, D1, C0, D5, C1, B2, D4 }

#define UNUSED_PINS

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5

#define IGNORE_MOD_TAP_INTERRUPT

// Reduce input latency by lowering the USB polling interval
// from its 10ms default to the 1ms minimum that USB 1.x (Full Speed) allows:
#define USB_POLLING_INTERVAL_MS 1

#define LED_PIN_ON_STATE 0
#define LED_NUM_LOCK_PIN A14
#define LED_CAPS_LOCK_PIN C7
#define LED_SCROLL_LOCK_PIN A5
#define LED_COMPOSE_PIN E26
26 changes: 26 additions & 0 deletions keyboards/kinesis/kint36/kint36.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/* 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 "kint36.h"

void matrix_init_kb(void) {
matrix_init_user();

// Turn on the Teensy 3.6 Power LED:
#define LED_POWER C5
setPinOutput(LED_POWER);
writePinHigh(LED_POWER);
}
92 changes: 92 additions & 0 deletions keyboards/kinesis/kint36/kint36.h
Original file line number Diff line number Diff line change
@@ -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, ___ } \
}
65 changes: 65 additions & 0 deletions keyboards/kinesis/kint36/mcuconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// based on lib/chibios-contrib/demos/KINETIS/RT-TEENSY3_6/mcuconf.h:
/*
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 MK66FX1M0_MCUCONF

/*
* HAL driver system settings.
*/

/* Select the MCU clocking mode below by enabling the appropriate block. */

/* PEE mode - 180 MHz system clock driving by 16 MHz xtal */
#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE
//#define KINETIS_PLLCLK_FREQUENCY 180000000UL // 180 MHz (HSRUN)
#define KINETIS_PLLCLK_FREQUENCY 120000000UL // 120 MHz (RUN)
#define KINETIS_SYSCLK_FREQUENCY KINETIS_PLLCLK_FREQUENCY
#define KINETIS_BUSCLK_FREQUENCY 60000000UL
//#define KINETIS_FLASHCLK_FREQUENCY 28000000UL // 28 MHz (HSRUN)
#define KINETIS_FLASHCLK_FREQUENCY 24000000UL // 24 MHz (RUN)

#if KINETIS_PLLCLK_FREQUENCY == 180000000UL
# define KINETIS_CLKDIV1_OUTDIV1 1 // -> 0
# define KINETIS_CLKDIV1_OUTDIV2 3 // -> 2
# define KINETIS_CLKDIV1_OUTDIV4 7 // -> 6
#else
# define KINETIS_CLKDIV1_OUTDIV1 1 // -> 0
# define KINETIS_CLKDIV1_OUTDIV2 2 // -> 1
# define KINETIS_CLKDIV1_OUTDIV4 5 // -> 4
#endif

/*
* SERIAL driver system settings.
*/
#define KINETIS_SERIAL_USE_UART4 TRUE

/*
* USB driver settings
*/
#define KINETIS_USB_USE_USB0 TRUE
#define KINETIS_USB_USB0_IRQ_PRIORITY 5

/*
* I2C driver settings
*/
#define KINETIS_I2C_USE_I2C0 TRUE
#define KINETIS_I2C_I2C0_PRIORITY 4

#endif /* _MCUCONF_H_ */
3 changes: 3 additions & 0 deletions keyboards/kinesis/kint36/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# kinesis_kint36 keyboard firmware

Please see https://github.com/kinx-project/kint for details.
2 changes: 2 additions & 0 deletions keyboards/kinesis/kint36/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
BOARD = PJRC_TEENSY_3_6
MCU = MK66F18
1 change: 1 addition & 0 deletions keyboards/kinesis/stapelberg/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define STAPELBERG_CONFIG_H

#include "../config.h"
#include "config_common.h"

/* USB Device descriptor parameter */
#define PRODUCT_ID 0x6060
Expand Down

0 comments on commit eae7f47

Please sign in to comment.