0094a6f571
Affects: - `slz40` - `smithrune/iron160/iron160_s` - `smithrune/iron165r2/f072` - `smithrune/iron165r2/f411` - `smithrune/iron180` - `smithrune/iron180v2/v2h` - `smithrune/iron180v2/v2s` - `smoll/lefty` - `snampad` - `sneakbox/aliceclone` - `sneakbox/disarray/ortho` - `sneakbox/disarray/staggered` - `soup10` - `soy20` - `sparrow62` - `split67` - `splitish` - `splitography` - `star75` - `stello65/beta` - `stello65/hs_rev1` - `stello65/sl_rev1` - `stenokeyboards/the_uni/pro_micro` - `stenokeyboards/the_uni/usb_c` - `strech/soulstone` - `studiokestra/bourgeau` - `studiokestra/cascade` - `studiokestra/frl84` - `studiokestra/galatea/rev1` - `studiokestra/galatea/rev2` - `studiokestra/galatea/rev3` - `studiokestra/line_friends_tkl` - `studiokestra/nascent` - `studiokestra/nue` - `suavity/ehan` - `subatomic` - `switchplate/southpaw_65` - `switchplate/southpaw_fullsize` - `switchplate/switchplate910` - `sx60` - `system76/launch_1`
53 lines
2 KiB
C
53 lines
2 KiB
C
/*
|
|
* Copyright (C) 2021 System76
|
|
*
|
|
* 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 3 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 <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#define RGB_MATRIX_DISABLE_KEYCODES // Disables control of rgb matrix by keycodes (must use code functions to control the feature)
|
|
|
|
// I2C {
|
|
#define F_SCL 100000UL // Run I2C bus at 100 kHz
|
|
#define I2C_START_RETRY_COUNT 20
|
|
#define I2C_TIMEOUT 100 // milliseconds
|
|
// } I2C
|
|
|
|
// EEPROM {
|
|
#define EEPROM_SIZE 1024
|
|
// TODO: Refactor with new user EEPROM code (coming soon)
|
|
#define EEPROM_MAGIC 0x76EC
|
|
#define EEPROM_MAGIC_ADDR 64
|
|
// Bump this every time we change what we store
|
|
// This will automatically reset the EEPROM with defaults
|
|
// and avoid loading invalid data from the EEPROM
|
|
#define EEPROM_VERSION 0x02
|
|
#define EEPROM_VERSION_ADDR (EEPROM_MAGIC_ADDR + 2)
|
|
// } EEPROM
|
|
|
|
// Dynamic keymap {
|
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 4
|
|
#define DYNAMIC_KEYMAP_MACRO_COUNT 0
|
|
// Dynamic keymap starts after EEPROM version
|
|
#define DYNAMIC_KEYMAP_EEPROM_ADDR (EEPROM_VERSION_ADDR + 1)
|
|
// Dynamic macro starts after dynamic keymaps, it is disabled
|
|
#define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR (DYNAMIC_KEYMAP_EEPROM_ADDR + (DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2))
|
|
#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 0
|
|
// } Dynamic keymap
|
|
|
|
// System76 EC {
|
|
#define SYSTEM76_EC_EEPROM_ADDR (DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE)
|
|
#define SYSTEM76_EC_EEPROM_SIZE (EEPROM_SIZE - SYSTEM76_EC_EEPROM_ADDR)
|
|
// } System76 EC
|