1 /* Copyright 2018 Jack Humbert <jack.humb@gmail.com>
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
19 /* Refer to IS31 manual for these locations
25 {0, B_12, A_12, C_12},
26 {0, B_11, A_11, C_11},
27 {0, B_10, A_10, C_10},
32 {0, H_12, G_12, I_12},
33 {0, H_11, G_11, I_11},
34 {0, H_10, G_10, I_10},
53 {0, E_12, D_12, F_12},
54 {0, E_11, D_11, F_11},
55 {0, E_10, D_10, F_10},
60 {0, K_12, J_12, L_12},
61 {0, K_11, J_11, L_11},
62 {0, K_10, J_10, L_10},
82 led_config_t g_led_config = { {
84 { 12, 13, 14, 15, 16, 17 },
85 { 24, 25, 26, 27, 28, 29 },
86 { 36, 37, 38, 45, 46, NO_LED },
87 { 6, 7, 8, 9, 10, 11 },
88 { 18, 19, 20, 21, 22, 23 },
89 { 30, 31, 32, 33, 34, 35 },
90 { 42, 43, 44, 39, 40, 41 }
92 { 0, 0 }, { 20, 0 }, { 40, 0 }, { 61, 0 }, { 81, 0 }, { 101, 0 }, { 122, 0 }, { 142, 0 }, { 162, 0 }, { 183, 0 }, { 203, 0 }, { 223, 0 },
93 { 0, 21 }, { 20, 21 }, { 40, 21 }, { 61, 21 }, { 81, 21 }, { 101, 21 }, { 122, 21 }, { 142, 21 }, { 162, 21 }, { 183, 21 }, { 203, 21 }, { 223, 21 },
94 { 0, 42 }, { 20, 42 }, { 40, 42 }, { 61, 42 }, { 81, 42 }, { 101, 42 }, { 122, 42 }, { 142, 42 }, { 162, 42 }, { 183, 42 }, { 203, 42 }, { 223, 42 },
95 { 0, 63 }, { 20, 63 }, { 40, 63 }, { 61, 63 }, { 81, 63 }, { 111, 63 }, { 142, 63 }, { 162, 63 }, { 183, 63 }, { 203, 63 }, { 223, 63 }
97 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
98 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
99 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
100 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1
104 void matrix_init_kb(void) {
107 palSetPadMode(GPIOB, 8, PAL_MODE_OUTPUT_PUSHPULL);
108 palSetPadMode(GPIOB, 9, PAL_MODE_OUTPUT_PUSHPULL);
110 palClearPad(GPIOB, 8);
111 palClearPad(GPIOB, 9);
114 void matrix_scan_kb(void) {
118 uint32_t layer_state_set_kb(uint32_t state) {
120 palClearPad(GPIOB, 8);
121 palClearPad(GPIOB, 9);
122 state = layer_state_set_user(state);
123 uint8_t layer = biton32(state);