config.h (1592B)
1 /* Copyright 2022 @ Keychron(https://www.keychron.com) 2 * 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. 7 * 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. 12 * 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/>. 15 */ 16 17 #pragma once 18 19 /* key matrix size */ 20 #define MATRIX_ROWS 6 21 #define MATRIX_COLS 16 22 23 /* key matrix pins */ 24 #define MATRIX_ROW_PINS \ 25 { B5, B4, B3, A15, A14, A13 } 26 #define MATRIX_COL_PINS \ 27 { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } 28 29 /* COL2ROW or ROW2COL */ 30 #define DIODE_DIRECTION ROW2COL 31 32 /* RGB Matrix Driver Configuration */ 33 #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO 34 #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND 35 36 /* Increase I2C speed to 1000 KHz */ 37 #define I2C1_TIMINGR_PRESC 0U 38 #define I2C1_TIMINGR_SCLDEL 3U 39 #define I2C1_TIMINGR_SDADEL 0U 40 #define I2C1_TIMINGR_SCLH 15U 41 #define I2C1_TIMINGR_SCLL 51U 42 43 #define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL 44 #define SNLED27351_CURRENT_TUNE \ 45 { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A }