/* Copyright 2023 @ Keychron (https://www.keychron.com) * * 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 . */ #pragma once /* key matrix pins */ #define MATRIX_ROW_PINS \ { B5, B4, B3, A15, A14, A13 } #define MATRIX_COL_PINS \ { NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION ROW2COL /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED #define LED_DISABLE_WHEN_USB_SUSPENDED /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 /* DIP switch */ #define DIP_SWITCH_PINS \ { A8 } #define INVERT_OS_SWITCH_STATTE /* Caps lock LED */ #define LED_CAPS_LOCK_PIN A0 #define LED_PIN_ON_STATE 1 /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U #define I2C1_TIMINGR_SCLDEL 3U #define I2C1_TIMINGR_SDADEL 0U #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U #ifdef KC_BLUETOOTH_ENABLE /* Hardware configuration */ # define USB_BT_MODE_SELECT_PIN A10 # define CKBT51_RESET_PIN A9 # define CKBT51_INT_INPUT_PIN A5 # define BLUETOOTH_INT_INPUT_PIN A6 # define USB_POWER_SENSE_PIN B1 # define USB_POWER_CONNECTED_LEVEL 0 # define BAT_LOW_LED_PIN A4 # define BAT_LOW_LED_PIN_ON_STATE 1 # define HOST_DEVICES_COUNT 3 # define HOST_LED_PIN_LIST \ { C15, C15, C15 } # define HOST_LED_PIN_ON_STATE 1 # if defined(RGB_MATRIX_ENABLE) || defined(LED_MATRIX_ENABLE) # define LED_DRIVER_SHUTDOWN_PIN C14 # define HOST_LED_MATRIX_LIST \ { 21, 22, 23 } # define BAT_LEVEL_LED_LIST \ { 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 } /* Backlit disable timeout when keyboard is disconnected(unit: second) */ # define DISCONNECTED_BACKLIGHT_DISABLE_TIMEOUT 40 /* Backlit disable timeout when keyboard is connected(unit: second) */ # define CONNECTED_BACKLIGHT_DISABLE_TIMEOUT 600 # endif /* Keep USB connection in blueooth mode */ # define KEEP_USB_CONNECTION_IN_BLUETOOTH_MODE /* Enable bluetooth NKRO */ # define BLUETOOTH_NKRO_ENABLE /* Raw hid command for factory test and bluetooth DFU */ # define RAW_HID_CMD 0xAA ... 0xAB #else /* Raw hid command for factory test */ # define RAW_HID_CMD 0xAB #endif // KC_BLUETOOTH_ENABLE /* Emulated EEPROM configuration */ #define FEE_DENSITY_BYTES FEE_PAGE_SIZE #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047 /* Factory test keys */ #define FN_KEY1 MO(1) #define FN_KEY2 MO(3)