aboutsummaryrefslogtreecommitdiff
path: root/keyboards/tkc
diff options
context:
space:
mode:
authorTerryMathews <terry@terrymathews.net>2020-12-23 01:27:55 -0500
committerGitHub <noreply@github.com>2020-12-22 22:27:55 -0800
commitd898d4a6fca2eb36105e45ec481e3b4b05e8afd9 (patch)
tree71b669140b80950941a234baf8e2f71b77f3514a /keyboards/tkc
parent7c0cb186811c7a77e7aa7aabe28b926c33caa58d (diff)
downloadqmk_firmware-d898d4a6fca2eb36105e45ec481e3b4b05e8afd9.tar.gz
qmk_firmware-d898d4a6fca2eb36105e45ec481e3b4b05e8afd9.zip
[Keyboard] Portico: Initial support for TKC Portico (#11215)
* Portico: Initial support for TKC Portico * Portico: added GPL header to keymap files * Update keyboards/tkc/portico/rules.mk Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'keyboards/tkc')
-rw-r--r--keyboards/tkc/portico/config.h73
-rw-r--r--keyboards/tkc/portico/info.json79
-rw-r--r--keyboards/tkc/portico/keymaps/default/keymap.c49
-rw-r--r--keyboards/tkc/portico/keymaps/via/keymap.c49
-rw-r--r--keyboards/tkc/portico/keymaps/via/rules.mk2
-rw-r--r--keyboards/tkc/portico/portico.c139
-rw-r--r--keyboards/tkc/portico/portico.h36
-rw-r--r--keyboards/tkc/portico/readme.md22
-rw-r--r--keyboards/tkc/portico/rules.mk24
9 files changed, 473 insertions, 0 deletions
diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h
new file mode 100644
index 000000000..4a7da833f
--- /dev/null
+++ b/keyboards/tkc/portico/config.h
@@ -0,0 +1,73 @@
1/*
2Copyright 2020 Terry Mathews
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x544B //TK
24#define PRODUCT_ID 0x0008
25#define DEVICE_VER 0x0001
26#define MANUFACTURER TKC
27#define PRODUCT Portico
28
29/* key matrix size */
30#define MATRIX_ROWS 5
31#define MATRIX_COLS 15
32
33#define MATRIX_ROW_PINS { B6, C6, C7, F7, D2 }
34#define MATRIX_COL_PINS { D3, D5, D4, D6, D7, B4, B5, F6, F5, F4, F1, B0, B1, B2, B3 }
35
36/* COL2ROW, ROW2COL*/
37#define DIODE_DIRECTION COL2ROW
38
39/* disable these deprecated features by default */
40#define NO_ACTION_MACRO
41#define NO_ACTION_FUNCTION
42
43#ifdef RGB_MATRIX_ENABLE
44# define RGB_MATRIX_LED_PROCESS_LIMIT 4
45# define RGB_MATRIX_LED_FLUSH_LIMIT 26
46# define DEBOUNCE 3
47# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
48# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
49# define RGB_MATRIX_KEYPRESSES
50# define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
51# define DISABLE_RGB_MATRIX_BAND_SAT
52# define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
53# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
54# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
55# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
56# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
57# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
58# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
59# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
60# define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
61# define DISABLE_RGB_MATRIX_SPLASH
62# define DISABLE_RGB_MATRIX_MULTISPLASH
63# define DISABLE_RGB_MATRIX_SOLID_SPLASH
64# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
65# define DISABLE_RGB_MATRIX_DIGITAL_RAIN
66# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
67# define DRIVER_ADDR_1 0x74
68# define DRIVER_ADDR_2 0x77
69# define DRIVER_COUNT 2
70# define DRIVER_1_LED_TOTAL 36
71# define DRIVER_2_LED_TOTAL 31
72# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
73#endif
diff --git a/keyboards/tkc/portico/info.json b/keyboards/tkc/portico/info.json
new file mode 100644
index 000000000..dd8431b71
--- /dev/null
+++ b/keyboards/tkc/portico/info.json
@@ -0,0 +1,79 @@
1{
2 "keyboard_name": "TKC Portico",
3 "url": "",
4 "maintainer": "TerryMathews",
5 "width": 16,
6 "height": 5,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {"label":"~", "x":0, "y":0},
11 {"label":"!", "x":1, "y":0},
12 {"label":"@", "x":2, "y":0},
13 {"label":"#", "x":3, "y":0},
14 {"label":"$", "x":4, "y":0},
15 {"label":"%", "x":5, "y":0},
16 {"label":"^", "x":6, "y":0},
17 {"label":"&", "x":7, "y":0},
18 {"label":"*", "x":8, "y":0},
19 {"label":"(", "x":9, "y":0},
20 {"label":")", "x":10, "y":0},
21 {"label":"_", "x":11, "y":0},
22 {"label":"+", "x":12, "y":0},
23 {"label":"Backspace", "x":13, "y":0, "w":2},
24 {"label":"Home", "x":15, "y":0},
25 {"label":"Tab", "x":0, "y":1, "w":1.5},
26 {"label":"Q", "x":1.5, "y":1},
27 {"label":"W", "x":2.5, "y":1},
28 {"label":"E", "x":3.5, "y":1},
29 {"label":"R", "x":4.5, "y":1},
30 {"label":"T", "x":5.5, "y":1},
31 {"label":"Y", "x":6.5, "y":1},
32 {"label":"U", "x":7.5, "y":1},
33 {"label":"I", "x":8.5, "y":1},
34 {"label":"O", "x":9.5, "y":1},
35 {"label":"P", "x":10.5, "y":1},
36 {"label":"{", "x":11.5, "y":1},
37 {"label":"}", "x":12.5, "y":1},
38 {"label":"|", "x":13.5, "y":1, "w":1.5},
39 {"label":"PgUp", "x":15, "y":1},
40 {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
41 {"label":"A", "x":1.75, "y":2},
42 {"label":"S", "x":2.75, "y":2},
43 {"label":"D", "x":3.75, "y":2},
44 {"label":"F", "x":4.75, "y":2},
45 {"label":"G", "x":5.75, "y":2},
46 {"label":"H", "x":6.75, "y":2},
47 {"label":"J", "x":7.75, "y":2},
48 {"label":"K", "x":8.75, "y":2},
49 {"label":"L", "x":9.75, "y":2},
50 {"label":":", "x":10.75, "y":2},
51 {"label":"\"", "x":11.75, "y":2},
52 {"label":"Enter", "x":12.75, "y":2, "w":2.25},
53 {"label":"PgDn", "x":15, "y":2},
54 {"label":"Shift", "x":0, "y":3, "w":2.25},
55 {"label":"Z", "x":2.25, "y":3},
56 {"label":"X", "x":3.25, "y":3},
57 {"label":"C", "x":4.25, "y":3},
58 {"label":"V", "x":5.25, "y":3},
59 {"label":"B", "x":6.25, "y":3},
60 {"label":"N", "x":7.25, "y":3},
61 {"label":"M", "x":8.25, "y":3},
62 {"label":"<", "x":9.25, "y":3},
63 {"label":">", "x":10.25, "y":3},
64 {"label":"?", "x":11.25, "y":3},
65 {"label":"Shift", "x":12.25, "y":3, "w":1.75},
66 {"label":"<i class='kb kb-Arrows-Up'></i>", "x":14, "y":3},
67 {"label":"End", "x":15, "y":3},
68 {"label":"Ctrl", "x":0, "y":4, "w":1.25},
69 {"label":"Win", "x":1.25, "y":4, "w":1.25},
70 {"label":"Alt", "x":2.5, "y":4, "w":1.25},
71 {"x":3.75, "y":4, "w":6.25},
72 {"label":"Fn", "x":10, "y":4, "w":1.25},
73 {"label":"Ctrl", "x":11.25, "y":4, "w":1.25},
74 {"label":"<i class='kb kb-Arrows-Left'></i>", "x":13, "y":4},
75 {"label":"<i class='kb kb-Arrows-Down'></i>", "x":14, "y":4},
76 {"label":"<i class='kb kb-Arrows-Right'></i>", "x":15, "y":4}]
77 }
78 }
79} \ No newline at end of file
diff --git a/keyboards/tkc/portico/keymaps/default/keymap.c b/keyboards/tkc/portico/keymaps/default/keymap.c
new file mode 100644
index 000000000..41034ce6d
--- /dev/null
+++ b/keyboards/tkc/portico/keymaps/default/keymap.c
@@ -0,0 +1,49 @@
1/*
2Copyright 2020 Terry Mathews
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_all(
22 KC_GESC, 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_HOME,
23 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_PGUP,
24 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_ENT, KC_PGDN,
25 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ),
28 [1] = LAYOUT_all(
29 KC_GESC, 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_DEL, KC_HOME,
30 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP,
31 KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, KC_PGDN,
32 KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE,
33 _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
34 ),
35 [2] = LAYOUT_all(
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______
41 ),
42 [3] = LAYOUT_all(
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______
48 )
49};
diff --git a/keyboards/tkc/portico/keymaps/via/keymap.c b/keyboards/tkc/portico/keymaps/via/keymap.c
new file mode 100644
index 000000000..41034ce6d
--- /dev/null
+++ b/keyboards/tkc/portico/keymaps/via/keymap.c
@@ -0,0 +1,49 @@
1/*
2Copyright 2020 Terry Mathews
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_all(
22 KC_GESC, 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_HOME,
23 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_PGUP,
24 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_ENT, KC_PGDN,
25 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
27 ),
28 [1] = LAYOUT_all(
29 KC_GESC, 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_DEL, KC_HOME,
30 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP,
31 KC_CAPS, RGB_SPI, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, KC_PGDN,
32 KC_LSFT, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE,
33 _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
34 ),
35 [2] = LAYOUT_all(
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______
41 ),
42 [3] = LAYOUT_all(
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______
48 )
49};
diff --git a/keyboards/tkc/portico/keymaps/via/rules.mk b/keyboards/tkc/portico/keymaps/via/rules.mk
new file mode 100644
index 000000000..36b7ba9cb
--- /dev/null
+++ b/keyboards/tkc/portico/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c
new file mode 100644
index 000000000..e4fd74107
--- /dev/null
+++ b/keyboards/tkc/portico/portico.c
@@ -0,0 +1,139 @@
1/*
2Copyright 2020 Terry Mathews
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include "portico.h"
19
20#ifdef RGB_MATRIX_ENABLE
21
22const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
23 { 0, C2_1, C3_1, C4_1 },
24 { 0, C1_1, C3_2, C4_2 },
25 { 0, C1_2, C2_2, C4_3 },
26 { 0, C1_3, C2_3, C3_3 },
27 { 0, C1_4, C2_4, C3_4 },
28 { 0, C1_5, C2_5, C3_5 },
29 { 0, C1_6, C2_6, C3_6 },
30 { 0, C1_7, C2_7, C3_7 },
31 { 0, C1_8, C2_8, C3_8 },
32 { 1, C2_1, C3_1, C4_1 },
33 { 1, C1_1, C3_2, C4_2 },
34 { 1, C1_2, C2_2, C4_3 },
35 { 1, C1_3, C2_3, C3_3 },
36 { 1, C1_4, C2_4, C3_4 },
37 { 1, C1_5, C2_5, C3_5 },
38
39 { 0, C9_1, C8_1, C7_1 },
40 { 0, C9_2, C8_2, C7_2 },
41 { 0, C9_3, C8_3, C7_3 },
42 { 0, C9_4, C8_4, C7_4 },
43 { 0, C9_5, C8_5, C7_5 },
44 { 0, C9_6, C8_6, C7_6 },
45 { 0, C9_7, C8_7, C6_6 },
46 { 0, C9_8, C7_7, C6_7 },
47 { 0, C8_8, C7_8, C6_8 },
48 { 1, C9_1, C8_1, C7_1 },
49 { 1, C9_2, C8_2, C7_2 },
50 { 1, C9_3, C8_3, C7_3 },
51 { 1, C9_4, C8_4, C7_4 },
52 { 1, C9_5, C8_5, C7_5 },
53 { 1, C9_6, C8_6, C7_6 },
54
55 { 0, C1_9, C3_10, C4_10 },
56 { 0, C1_10, C2_10, C4_11 },
57 { 0, C1_11, C2_11, C3_11 },
58 { 0, C1_12, C2_12, C3_12 },
59 { 0, C1_13, C2_13, C3_13 },
60 { 0, C1_14, C2_14, C3_14 },
61 { 0, C1_15, C2_15, C3_15 },
62 { 0, C1_16, C2_16, C3_16 },
63 { 1, C1_10, C2_10, C4_11 },
64 { 1, C1_11, C2_11, C3_11 },
65 { 1, C1_12, C2_12, C3_12 },
66 { 1, C1_13, C2_13, C3_13 },
67 { 1, C1_14, C2_14, C3_14 },
68 { 1, C9_7, C8_7, C6_6 },
69
70 { 0, C2_9, C3_9, C4_9 },
71 { 0, C9_12, C8_12, C7_12 },
72 { 0, C9_13, C8_13, C7_13 },
73 { 0, C9_14, C8_14, C7_14 },
74 { 0, C9_15, C8_15, C6_14 },
75 { 0, C9_16, C7_15, C6_15 },
76 { 1, C2_9, C3_9, C4_9 },
77 { 1, C1_9, C3_10, C4_10 },
78 { 1, C9_9, C8_9, C7_9 },
79 { 1, C9_10, C8_10, C7_10 },
80 { 1, C9_11, C8_11, C7_11 },
81 { 1, C9_14, C8_14, C7_14 },
82 { 1, C1_15, C2_15, C3_15 },
83 { 1, C1_16, C2_16, C3_16 },
84
85 { 0, C9_9, C8_9, C7_9 },
86 { 0, C9_10, C8_10, C7_10 },
87 { 0, C9_11, C8_11, C7_11 },
88 { 0, C8_16, C7_16, C6_16 },
89 { 1, C9_12, C8_12, C7_12 },
90 { 1, C9_13, C8_13, C7_13 },
91 { 1, C9_15, C8_15, C6_14 },
92 { 1, C9_16, C7_15, C6_15 },
93 { 1, C8_16, C7_16, C6_16 }
94};
95
96led_config_t g_led_config = {
97 {
98 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
99 { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
100 { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 },
101 { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
102 { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 }
103 }, {
104 { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 },
105 { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 },
106 { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 },
107 { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 },
108 { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 152, 64 }, { 171, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }
109 }, {
110 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
111 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
112 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
113 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
114 4, 4, 4, 4, 4, 4, 4, 4, 4
115 }
116};
117
118void suspend_power_down_kb(void) {
119 rgb_matrix_set_suspend_state(true);
120 suspend_power_down_user();
121}
122
123void suspend_wakeup_init_kb(void) {
124 rgb_matrix_set_suspend_state(false);
125 suspend_wakeup_init_user();
126}
127
128void rgb_matrix_indicators_kb(void) {
129 if (host_keyboard_led_state().caps_lock) {
130 rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
131 }
132 else {
133 rgb_matrix_set_color(30, 0x00, 0x00, 0x00);
134 }
135 if (!rgb_matrix_is_enabled()) {
136 rgb_matrix_driver.flush();
137 }
138}
139#endif
diff --git a/keyboards/tkc/portico/portico.h b/keyboards/tkc/portico/portico.h
new file mode 100644
index 000000000..6aac8fdbb
--- /dev/null
+++ b/keyboards/tkc/portico/portico.h
@@ -0,0 +1,36 @@
1/*
2Copyright 2020 Terry Mathews
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "quantum.h"
21
22#define XXX KC_NO
23
24#define LAYOUT_all( \
25 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
26 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
27 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
28 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
29 K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \
30) { \
31 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
32 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
33 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E }, \
34 { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
35 { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E } \
36}
diff --git a/keyboards/tkc/portico/readme.md b/keyboards/tkc/portico/readme.md
new file mode 100644
index 000000000..ff73822c8
--- /dev/null
+++ b/keyboards/tkc/portico/readme.md
@@ -0,0 +1,22 @@
1# TKC Portico
2
3![Photo](https://cdn.shopify.com/s/files/1/1679/2319/products/Portico_BoW_1_590x.png?v=1604373859)
4
5A 65% keyboard kit with per-key and underglow RGB lighting
6
7* Keyboard Maintainer: [TerryMathews](https://github.com/TerryMathews)
8* Hardware Supported: TKC Portico
9* Hardware Availability: TBA
10
11
12Reset board into bootloader by holding down Esc key while plugging in USB-C cable.
13
14Make example for this keyboard (after setting up your build environment):
15
16 make tkc/portico:default
17
18Flashing example for this keyboard:
19
20 make tkc/portico:default:flash
21
22See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/tkc/portico/rules.mk b/keyboards/tkc/portico/rules.mk
new file mode 100644
index 000000000..f6dc3311c
--- /dev/null
+++ b/keyboards/tkc/portico/rules.mk
@@ -0,0 +1,24 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = yes # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23RGB_MATRIX_ENABLE = yes # Use RGB matrix
24RGB_MATRIX_DRIVER = IS31FL3731