aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew-Fahmy <andrewj.fahmy@gmail.com>2021-12-06 22:58:02 -0600
committerGitHub <noreply@github.com>2021-12-06 20:58:02 -0800
commit23554726c8d6495e8153c994ed4a58112a79be49 (patch)
treed62bb67617635c9e2161d0c28048055652958db7
parentc0dcfcedf92c5950d3ce7d8eb19e27f2f057c596 (diff)
downloadqmk_firmware-23554726c8d6495e8153c994ed4a58112a79be49.tar.gz
qmk_firmware-23554726c8d6495e8153c994ed4a58112a79be49.zip
[Keyboard] Update K type (#15405)
Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r--keyboards/k_type/config.h79
-rw-r--r--keyboards/k_type/i2c_master.c16
-rw-r--r--keyboards/k_type/i2c_master.h10
-rw-r--r--keyboards/k_type/is31fl3733-dual.c10
-rw-r--r--keyboards/k_type/is31fl3733-dual.h1
-rw-r--r--keyboards/k_type/k_type-rgbdriver.c4
-rw-r--r--keyboards/k_type/k_type.c55
-rw-r--r--keyboards/k_type/keymaps/default/keymap.c11
-rw-r--r--keyboards/k_type/keymaps/default/rules.mk (renamed from keyboards/k_type/keymaps/rgb/rules.mk)0
-rw-r--r--keyboards/k_type/keymaps/rgb/config.h32
-rw-r--r--keyboards/k_type/keymaps/rgb/keymap.c30
-rw-r--r--keyboards/k_type/keymaps/rgb/readme.md7
-rw-r--r--keyboards/k_type/mcuconf.h2
-rw-r--r--keyboards/k_type/rules.mk12
14 files changed, 160 insertions, 109 deletions
diff --git a/keyboards/k_type/config.h b/keyboards/k_type/config.h
index 82f641c53..de73e06a9 100644
--- a/keyboards/k_type/config.h
+++ b/keyboards/k_type/config.h
@@ -105,3 +105,82 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
105/* Bootmagic Lite key configuration */ 105/* Bootmagic Lite key configuration */
106//#define BOOTMAGIC_LITE_ROW 0 106//#define BOOTMAGIC_LITE_ROW 0
107//#define BOOTMAGIC_LITE_COLUMN 0 107//#define BOOTMAGIC_LITE_COLUMN 0
108
109
110#ifdef RGB_MATRIX_ENABLE
111//#include "gpio.h"
112// RGB Matrix Animation modes. Explicitly enabled
113// For full list of effects, see:
114// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
115# define ENABLE_RGB_MATRIX_ALPHAS_MODS
116# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
117# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
118# define ENABLE_RGB_MATRIX_BREATHING
119# define ENABLE_RGB_MATRIX_BAND_SAT
120# define ENABLE_RGB_MATRIX_BAND_VAL
121# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
122# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
123# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
124# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
125# define ENABLE_RGB_MATRIX_CYCLE_ALL
126# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
127# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
128# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
129# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
130# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
131# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
132# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
133# define ENABLE_RGB_MATRIX_DUAL_BEACON
134# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
135# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
136# define ENABLE_RGB_MATRIX_RAINDROPS
137# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
138# define ENABLE_RGB_MATRIX_HUE_BREATHING
139# define ENABLE_RGB_MATRIX_HUE_PENDULUM
140# define ENABLE_RGB_MATRIX_HUE_WAVE
141# define ENABLE_RGB_MATRIX_PIXEL_RAIN
142# define ENABLE_RGB_MATRIX_PIXEL_FLOW
143# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
144// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
145# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
146# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
147// enabled only if RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
148# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
149# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
150# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
151# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
152# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
153# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
154# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
155# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
156# define ENABLE_RGB_MATRIX_SPLASH
157# define ENABLE_RGB_MATRIX_MULTISPLASH
158# define ENABLE_RGB_MATRIX_SOLID_SPLASH
159# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
160
161# define RGB_MATRIX_KEYPRESSES
162# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
163
164
165// i2c_master defines
166# define I2C_COUNT 2
167# define I2C1_CLOCK_SPEED 400000
168
169# define I2C1_SCL_PIN B0 // A2 on pinout = B0
170# define I2C1_SDA_PIN B1 // A2 on pinout = B1
171# define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
172# define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
173
174# define USE_I2C2
175# define I2C2_SCL_PIN C10 // A2 on pinout = C10
176# define I2C2_SDA_PIN C11 // A2 on pinout = C11
177# define I2C2_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
178# define I2C2_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
179
180# define DRIVER_ADDR_1 0b1010000
181# define DRIVER_ADDR_2 0b1010000
182# define DRIVER_COUNT 2
183# define DRIVER_1_LED_TOTAL 64
184# define DRIVER_2_LED_TOTAL 55
185# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
186#endif
diff --git a/keyboards/k_type/i2c_master.c b/keyboards/k_type/i2c_master.c
index 62d732c2d..af34d55ef 100644
--- a/keyboards/k_type/i2c_master.c
+++ b/keyboards/k_type/i2c_master.c
@@ -63,22 +63,22 @@ static i2c_status_t chibios_to_qmk(const msg_t* status) {
63 } 63 }
64} 64}
65 65
66__attribute__((weak)) void i2c_init(I2CDriver *driver, ioportid_t scl_port, ioportid_t sda_port, iopadid_t scl_pad, iopadid_t sda_pad) { 66__attribute__((weak)) void i2c_init(I2CDriver *driver, ioline_t scl_pin, ioline_t sda_pin) {
67 static uint8_t index = 0; 67 static uint8_t index = 0;
68 if (index < I2C_COUNT) { 68 if (index < I2C_COUNT) {
69 69
70 // Try releasing special pins for a short time 70 // Try releasing special pins for a short time
71 palSetPadMode(scl_port, scl_pad, PAL_MODE_INPUT); 71 palSetLineMode(scl_pin, PAL_MODE_INPUT);
72 palSetPadMode(sda_port, sda_pad, PAL_MODE_INPUT); 72 palSetLineMode(sda_pin, PAL_MODE_INPUT);
73 73
74 chThdSleepMilliseconds(10); 74 chThdSleepMilliseconds(10);
75 75
76#if defined(USE_GPIOV1) 76#if defined(USE_GPIOV1)
77 palSetPadMode(scl_port, scl_pad, I2C1_SCL_PAL_MODE); 77 palSetLineMode(scl_pin, I2C1_SCL_PAL_MODE);
78 palSetPadMode(sda_port, sda_pad, I2C1_SDA_PAL_MODE); 78 palSetLineMode(sda_pin, I2C1_SDA_PAL_MODE);
79#else 79#else
80 palSetPadMode(scl_port, scl_pad, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); 80 palSetLineMode(scl_pin, PAL_MODE_ALTERNATE(I2C1_SCL_PAL_MODE) | PAL_OUTPUT_TYPE_OPENDRAIN);
81 palSetPadMode(sda_port, sda_pad, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_STM32_OTYPE_OPENDRAIN); 81 palSetLineMode(sda_pin, PAL_MODE_ALTERNATE(I2C1_SDA_PAL_MODE) | PAL_OUTPUT_TYPE_OPENDRAIN);
82#endif 82#endif
83 83
84 drivers[index++] = driver; 84 drivers[index++] = driver;
diff --git a/keyboards/k_type/i2c_master.h b/keyboards/k_type/i2c_master.h
index 5a7893fae..d4e9d6878 100644
--- a/keyboards/k_type/i2c_master.h
+++ b/keyboards/k_type/i2c_master.h
@@ -58,11 +58,11 @@
58# endif 58# endif
59#endif 59#endif
60 60
61#ifndef I2C1_SCL 61#ifndef I2C1_SCL_PIN
62# define I2C1_SCL 6 62# define I2C1_SCL_PIN 6
63#endif 63#endif
64#ifndef I2C1_SDA 64#ifndef I2C1_SDA_PIN
65# define I2C1_SDA 7 65# define I2C1_SDA_PIN 7
66#endif 66#endif
67 67
68#ifdef USE_I2CV1 68#ifdef USE_I2CV1
@@ -118,7 +118,7 @@ typedef int16_t i2c_status_t;
118#define I2C_STATUS_ERROR (-1) 118#define I2C_STATUS_ERROR (-1)
119#define I2C_STATUS_TIMEOUT (-2) 119#define I2C_STATUS_TIMEOUT (-2)
120 120
121void i2c_init(I2CDriver *driver, ioportid_t scl_port, ioportid_t sda_port, iopadid_t scl_pad, iopadid_t sda_pad); 121void i2c_init(I2CDriver *driver, ioline_t scl_pin, ioline_t sda_pin);
122i2c_status_t i2c_start(uint8_t index, uint8_t address); 122i2c_status_t i2c_start(uint8_t index, uint8_t address);
123i2c_status_t i2c_transmit(uint8_t index, uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); 123i2c_status_t i2c_transmit(uint8_t index, uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout);
124i2c_status_t i2c_receive(uint8_t index, uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); 124i2c_status_t i2c_receive(uint8_t index, uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);
diff --git a/keyboards/k_type/is31fl3733-dual.c b/keyboards/k_type/is31fl3733-dual.c
index 8f39e73c6..e76479b01 100644
--- a/keyboards/k_type/is31fl3733-dual.c
+++ b/keyboards/k_type/is31fl3733-dual.c
@@ -51,7 +51,7 @@
51#define ISSI_REG_CSPULLUP 0x10 // PG3 51#define ISSI_REG_CSPULLUP 0x10 // PG3
52 52
53#ifndef ISSI_TIMEOUT 53#ifndef ISSI_TIMEOUT
54# define ISSI_TIMEOUT 100 54# define ISSI_TIMEOUT 5000
55#endif 55#endif
56 56
57#ifndef ISSI_PERSISTENCE 57#ifndef ISSI_PERSISTENCE
@@ -80,12 +80,12 @@ bool IS31FL3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t
80 80
81#if ISSI_PERSISTENCE > 0 81#if ISSI_PERSISTENCE > 0
82 for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { 82 for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
83 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) { 83 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, TIME_US2I(ISSI_TIMEOUT)) != 0) {
84 return false; 84 return false;
85 } 85 }
86 } 86 }
87#else 87#else
88 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) { 88 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, TIME_US2I(ISSI_TIMEOUT)) != 0) {
89 return false; 89 return false;
90 } 90 }
91#endif 91#endif
@@ -110,12 +110,12 @@ bool IS31FL3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffe
110 110
111#if ISSI_PERSISTENCE > 0 111#if ISSI_PERSISTENCE > 0
112 for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { 112 for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
113 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) { 113 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, TIME_US2I(ISSI_TIMEOUT)) != 0) {
114 return false; 114 return false;
115 } 115 }
116 } 116 }
117#else 117#else
118 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) { 118 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, TIME_US2I(ISSI_TIMEOUT)) != 0) {
119 return false; 119 return false;
120 } 120 }
121#endif 121#endif
diff --git a/keyboards/k_type/is31fl3733-dual.h b/keyboards/k_type/is31fl3733-dual.h
index ea45a7086..d4af1848f 100644
--- a/keyboards/k_type/is31fl3733-dual.h
+++ b/keyboards/k_type/is31fl3733-dual.h
@@ -20,6 +20,7 @@
20 20
21#include <stdint.h> 21#include <stdint.h>
22#include <stdbool.h> 22#include <stdbool.h>
23#include "progmem.h"
23 24
24typedef struct is31_led { 25typedef struct is31_led {
25 uint8_t driver : 2; 26 uint8_t driver : 2;
diff --git a/keyboards/k_type/k_type-rgbdriver.c b/keyboards/k_type/k_type-rgbdriver.c
index 8369aa909..5ae132d63 100644
--- a/keyboards/k_type/k_type-rgbdriver.c
+++ b/keyboards/k_type/k_type-rgbdriver.c
@@ -23,10 +23,10 @@
23 23
24 24
25static void init(void) { 25static void init(void) {
26 i2c_init(&I2CD1, I2C1_SCL_BANK, I2C1_SDA_BANK, I2C1_SCL, I2C1_SDA); 26 i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN);
27 IS31FL3733_init(0, DRIVER_ADDR_1, 0); 27 IS31FL3733_init(0, DRIVER_ADDR_1, 0);
28# ifdef USE_I2C2 28# ifdef USE_I2C2
29 i2c_init(&I2CD2, I2C2_SCL_BANK, I2C2_SDA_BANK, I2C2_SCL, I2C2_SDA); 29 i2c_init(&I2CD2, I2C2_SCL_PIN, I2C2_SDA_PIN);
30 IS31FL3733_init(1, DRIVER_ADDR_2, 0); 30 IS31FL3733_init(1, DRIVER_ADDR_2, 0);
31# endif 31# endif
32 for (int index = 0; index < DRIVER_LED_TOTAL; index++) { 32 for (int index = 0; index < DRIVER_LED_TOTAL; index++) {
diff --git a/keyboards/k_type/k_type.c b/keyboards/k_type/k_type.c
index 29e7fa57b..0e10710cb 100644
--- a/keyboards/k_type/k_type.c
+++ b/keyboards/k_type/k_type.c
@@ -67,11 +67,11 @@ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
67 { 0, H_7, G_7, I_7 }, 67 { 0, H_7, G_7, I_7 },
68 { 0, H_8, G_8, I_8 }, 68 { 0, H_8, G_8, I_8 },
69 { 0, H_9, G_9, I_9 }, 69 { 0, H_9, G_9, I_9 },
70 { 0, H_10, G_10, I_10 }, 70 { 0, H_10, G_10, I_10 },
71 { 0, H_11, G_11, I_11 }, 71 { 0, H_11, G_11, I_11 },
72 { 0, H_12, G_12, I_12 }, 72 { 0, H_12, G_12, I_12 },
73 { 0, H_13, G_13, I_13 }, 73 { 0, H_13, G_13, I_13 },
74 { 0, H_14, G_14, I_14 }, 74 { 0, H_14, G_14, I_14 },
75 { 0, H_15, G_15, I_15 }, 75 { 0, H_15, G_15, I_15 },
76 { 0, H_16, G_16, I_16 }, 76 { 0, H_16, G_16, I_16 },
77 77
@@ -84,15 +84,15 @@ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
84 { 0, K_7, J_7, L_7 }, 84 { 0, K_7, J_7, L_7 },
85 { 0, K_8, J_8, L_8 }, 85 { 0, K_8, J_8, L_8 },
86 { 0, K_9, J_9, L_9 }, 86 { 0, K_9, J_9, L_9 },
87 { 0, K_10, J_10, L_10 }, 87 { 0, K_10, J_10, L_10 },
88 { 0, K_11, J_11, L_11 }, 88 { 0, K_11, J_11, L_11 },
89 { 0, K_12, J_12, L_12 }, 89 { 0, K_12, J_12, L_12 },
90 { 0, K_13, J_13, L_13 }, 90 { 0, K_13, J_13, L_13 },
91 { 0, K_14, J_14, L_14 }, 91 { 0, K_14, J_14, L_14 },
92 { 0, K_15, J_15, L_15 }, 92 { 0, K_15, J_15, L_15 },
93 { 0, K_16, J_16, L_16 }, 93 { 0, K_16, J_16, L_16 },
94 94
95 // Driver 2 is on I2C2 - currently not usable with i2c_master 95 // Driver 2 is on I2C2
96 { 1, B_1, A_1, C_1 }, 96 { 1, B_1, A_1, C_1 },
97 { 1, B_2, A_2, C_2 }, 97 { 1, B_2, A_2, C_2 },
98 { 1, B_3, A_3, C_3 }, 98 { 1, B_3, A_3, C_3 },
@@ -176,7 +176,7 @@ led_config_t g_led_config = {
176 { 0, 42.67 }, { 13.18, 42.67 }, { 26.35, 42.67 }, { 39.53, 42.67 }, { 52.71, 42.67 }, { 65.88, 42.67 }, { 79.06, 42.67 }, { 92.24, 42.67 }, { 105.41, 42.67 }, { 118.59, 42.67 }, { 131.77, 42.67 }, { 144.94, 42.67 }, { 171.29, 42.67 }, 176 { 0, 42.67 }, { 13.18, 42.67 }, { 26.35, 42.67 }, { 39.53, 42.67 }, { 52.71, 42.67 }, { 65.88, 42.67 }, { 79.06, 42.67 }, { 92.24, 42.67 }, { 105.41, 42.67 }, { 118.59, 42.67 }, { 131.77, 42.67 }, { 144.94, 42.67 }, { 171.29, 42.67 },
177 { 0, 53.33 }, { 26.35, 53.33 }, { 39.53, 53.33 }, { 52.71, 53.33 }, { 65.88, 53.33 }, { 79.06, 53.33 }, { 92.24, 53.33 }, { 105.41, 53.33 }, { 118.59, 53.33 }, { 131.77, 53.33 }, { 144.94, 53.33 }, { 171.29, 53.33 }, { 210.82, 53.33 }, 177 { 0, 53.33 }, { 26.35, 53.33 }, { 39.53, 53.33 }, { 52.71, 53.33 }, { 65.88, 53.33 }, { 79.06, 53.33 }, { 92.24, 53.33 }, { 105.41, 53.33 }, { 118.59, 53.33 }, { 131.77, 53.33 }, { 144.94, 53.33 }, { 171.29, 53.33 }, { 210.82, 53.33 },
178 { 0, 64 }, { 13.18, 64 }, { 26.35, 64 }, { 79.06, 64 }, { 131.77, 64 }, { 144.94, 64 }, { 158.12, 64 }, { 171.29, 64 }, { 197.65, 64 }, { 210.82, 64 }, { 224, 64 }, 178 { 0, 64 }, { 13.18, 64 }, { 26.35, 64 }, { 79.06, 64 }, { 131.77, 64 }, { 144.94, 64 }, { 158.12, 64 }, { 171.29, 64 }, { 197.65, 64 }, { 210.82, 64 }, { 224, 64 },
179 179
180 // Underglow LED 180 // Underglow LED
181 { 224, 64 }, { 206.77, 64 }, { 189.54, 64 }, { 172.31, 64 }, { 155.08, 64 }, { 137.85, 64 }, { 120.61, 64 }, { 103.38, 64 }, { 86.15, 64 }, { 68.92, 64 }, { 51.69, 64 }, { 34.46, 64 }, { 17.23, 64 }, { 0, 64 }, 181 { 224, 64 }, { 206.77, 64 }, { 189.54, 64 }, { 172.31, 64 }, { 155.08, 64 }, { 137.85, 64 }, { 120.61, 64 }, { 103.38, 64 }, { 86.15, 64 }, { 68.92, 64 }, { 51.69, 64 }, { 34.46, 64 }, { 17.23, 64 }, { 0, 64 },
182 { 0, 42.67 }, { 0, 21.33 }, 182 { 0, 42.67 }, { 0, 21.33 },
@@ -197,10 +197,39 @@ led_config_t g_led_config = {
197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
198 198
199 2, 2, 199 2, 2,
200 200
201 2, 2, 201 2, 2,
202 202
203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
204 } 204 }
205}; 205};
206#endif 206#endif
207
208
209void keyboard_pre_init_kb(void) {
210#ifdef RGB_MATRIX_ENABLE
211 // Turn on LED controller
212 setPinOutput(B16);
213 writePinHigh(B16);
214#endif
215 keyboard_pre_init_user();
216}
217
218void matrix_init_kb(void) {
219 // put your keyboard start-up code here
220 // runs once when the firmware starts up
221
222#ifdef RGB_MATRIX_ENABLE
223 /*
224 * Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c),
225 * and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot.
226 */
227# if !defined(RGB_MATRIX_STARTUP_SPD)
228# define RGB_MATRIX_STARTUP_SPD UINT8_MAX / 2
229# endif
230 rgb_matrix_set_speed(RGB_MATRIX_STARTUP_SPD),
231 rgb_matrix_set_flags(LED_FLAG_ALL);
232#endif
233
234 matrix_init_user();
235}
diff --git a/keyboards/k_type/keymaps/default/keymap.c b/keyboards/k_type/keymaps/default/keymap.c
index b8df4df5e..ef069af65 100644
--- a/keyboards/k_type/keymaps/default/keymap.c
+++ b/keyboards/k_type/keymaps/default/keymap.c
@@ -8,6 +8,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
8 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, 8 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,
9 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, 9 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,
10 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, 10 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,
11 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 11 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
12 ),
13 [1] = LAYOUT_tkl_ansi(
14 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______,
15
16 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_HUI, RGB_SAI, RGB_VAI,
17 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD,
18 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
19 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
20 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
12 ) 21 )
13}; 22};
diff --git a/keyboards/k_type/keymaps/rgb/rules.mk b/keyboards/k_type/keymaps/default/rules.mk
index aad92997d..aad92997d 100644
--- a/keyboards/k_type/keymaps/rgb/rules.mk
+++ b/keyboards/k_type/keymaps/default/rules.mk
diff --git a/keyboards/k_type/keymaps/rgb/config.h b/keyboards/k_type/keymaps/rgb/config.h
deleted file mode 100644
index 4c5d23454..000000000
--- a/keyboards/k_type/keymaps/rgb/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
1#pragma once
2
3#ifdef RGB_MATRIX_ENABLE
4# define RGB_MATRIX_KEYPRESSES
5# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR
6
7# define RGB_MATRIX_LED_FLUSH_LIMIT 100
8
9
10// i2c_master defines
11# define I2C_COUNT 2
12
13# define I2C1_BANK GPIOB
14# define I2C1_SCL 0 // A2 on pinout = B0
15# define I2C1_SDA 1 // A2 on pinout = B1
16# define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
17# define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
18
19# define USE_I2C2
20# define I2C2_BANK GPIOC
21# define I2C2_SCL 10 // A2 on pinout = C10
22# define I2C2_SDA 11 // A2 on pinout = C11
23# define I2C2_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
24# define I2C2_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
25
26# define DRIVER_ADDR_1 0b1010000
27# define DRIVER_ADDR_2 0b1010000
28# define DRIVER_COUNT 2
29# define DRIVER_1_LED_TOTAL 64
30# define DRIVER_2_LED_TOTAL 55
31# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
32#endif
diff --git a/keyboards/k_type/keymaps/rgb/keymap.c b/keyboards/k_type/keymaps/rgb/keymap.c
deleted file mode 100644
index 88f5eaa37..000000000
--- a/keyboards/k_type/keymaps/rgb/keymap.c
+++ /dev/null
@@ -1,30 +0,0 @@
1#include QMK_KEYBOARD_H
2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 [0] = LAYOUT_tkl_ansi(
5 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,
6
7 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,
8 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,
9 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,
10 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,
11 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
12 ),
13 [1] = LAYOUT_tkl_ansi(
14 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______,
15
16 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_HUI, RGB_SAI, RGB_VAI,
17 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD,
18 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
19 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
20 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
21 )
22};
23
24#ifdef RGB_MATRIX_ENABLE
25// Turn off SDB
26void keyboard_pre_init_user() {
27 palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL);
28 palSetPad(GPIOB, 16);
29}
30#endif
diff --git a/keyboards/k_type/keymaps/rgb/readme.md b/keyboards/k_type/keymaps/rgb/readme.md
deleted file mode 100644
index 330321976..000000000
--- a/keyboards/k_type/keymaps/rgb/readme.md
+++ /dev/null
@@ -1,7 +0,0 @@
1# K-Type RGB Matrix Keymap
2
3This is an experimental keymap adding support for RGB Matrix on the K-Type.
4
5The keyboard should now support full RGB lightings. The lighting animations are running at 10 fps for performance reasons.
6You can configure this by changing the `RGB_MATRIX_LED_FLUSH_LIMIT` inside the `config.h` file to a lower value.
7For example `RGB_MATRIX_LED_FLUSH_LIMIT 16` would mean that the animations run every 16 ms or at 60 fps.
diff --git a/keyboards/k_type/mcuconf.h b/keyboards/k_type/mcuconf.h
index 1d9ecf610..b898d25e8 100644
--- a/keyboards/k_type/mcuconf.h
+++ b/keyboards/k_type/mcuconf.h
@@ -52,6 +52,6 @@
52#define KINETIS_I2C_I2C0_PRIORITY 4 52#define KINETIS_I2C_I2C0_PRIORITY 4
53 53
54#define KINETIS_I2C_USE_I2C1 TRUE 54#define KINETIS_I2C_USE_I2C1 TRUE
55#define KINETIS_I2C_I2C0_PRIORITY 4 55#define KINETIS_I2C_I2C1_PRIORITY 4
56 56
57#endif /* _MCUCONF_H_ */ 57#endif /* _MCUCONF_H_ */
diff --git a/keyboards/k_type/rules.mk b/keyboards/k_type/rules.mk
index 102c787bc..71e638569 100644
--- a/keyboards/k_type/rules.mk
+++ b/keyboards/k_type/rules.mk
@@ -15,20 +15,22 @@ BOARD = IC_TEENSY_3_1
15# change yes to no to disable 15# change yes to no to disable
16# 16#
17BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite 17BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
18MOUSEKEY_ENABLE = yes # Mouse keys 18MOUSEKEY_ENABLE = no # Mouse keys
19EXTRAKEY_ENABLE = yes # Audio control and System control 19EXTRAKEY_ENABLE = no # Audio control and System control
20CONSOLE_ENABLE = yes # Console for debug 20CONSOLE_ENABLE = no # Console for debug
21COMMAND_ENABLE = yes # Commands for debug and configuration 21COMMAND_ENABLE = no # Commands for debug and configuration
22# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 22# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
23NKRO_ENABLE = yes # USB Nkey Rollover 23NKRO_ENABLE = yes # USB Nkey Rollover
24BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 24BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
25RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow 25RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
26AUDIO_ENABLE = no # Audio output 26AUDIO_ENABLE = no # Audio output
27
28# RGB options
27RGB_MATRIX_ENABLE = no 29RGB_MATRIX_ENABLE = no
28RGB_MATRIX_DRIVER = custom 30RGB_MATRIX_DRIVER = custom
29 31
32# Additional files for RGB lighting
30SRC += k_type-rgbdriver.c 33SRC += k_type-rgbdriver.c
31
32QUANTUM_LIB_SRC += i2c_master.c is31fl3733-dual.c 34QUANTUM_LIB_SRC += i2c_master.c is31fl3733-dual.c
33 35
34LAYOUTS = tkl_ansi 36LAYOUTS = tkl_ansi