aboutsummaryrefslogtreecommitdiff
path: root/quantum/eeconfig.h
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2021-08-18 00:18:58 +0100
committerGitHub <noreply@github.com>2021-08-18 00:18:58 +0100
commitb8e913c8db73ebf890e4604ee41991a34354a600 (patch)
tree258035f8fda9f83f08a309f6cd608b9c61476678 /quantum/eeconfig.h
parent96e2b13d1de227cdc2b918fb0292bd832d346a25 (diff)
downloadqmk_firmware-b8e913c8db73ebf890e4604ee41991a34354a600.tar.gz
qmk_firmware-b8e913c8db73ebf890e4604ee41991a34354a600.zip
Migrate platform independent code from tmk_core -> quantum (#13673)
* Migrate action|keyboard|keycode|eeconfig from tmk_core -> quantum
Diffstat (limited to 'quantum/eeconfig.h')
-rw-r--r--quantum/eeconfig.h113
1 files changed, 113 insertions, 0 deletions
diff --git a/quantum/eeconfig.h b/quantum/eeconfig.h
new file mode 100644
index 000000000..a88071729
--- /dev/null
+++ b/quantum/eeconfig.h
@@ -0,0 +1,113 @@
1/*
2Copyright 2013 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include <stdint.h>
21#include <stdbool.h>
22
23#ifndef EECONFIG_MAGIC_NUMBER
24# define EECONFIG_MAGIC_NUMBER (uint16_t)0xFEEA // When changing, decrement this value to avoid future re-init issues
25#endif
26#define EECONFIG_MAGIC_NUMBER_OFF (uint16_t)0xFFFF
27
28/* EEPROM parameter address */
29#define EECONFIG_MAGIC (uint16_t *)0
30#define EECONFIG_DEBUG (uint8_t *)2
31#define EECONFIG_DEFAULT_LAYER (uint8_t *)3
32#define EECONFIG_KEYMAP (uint8_t *)4
33#define EECONFIG_MOUSEKEY_ACCEL (uint8_t *)5
34#define EECONFIG_BACKLIGHT (uint8_t *)6
35#define EECONFIG_AUDIO (uint8_t *)7
36#define EECONFIG_RGBLIGHT (uint32_t *)8
37#define EECONFIG_UNICODEMODE (uint8_t *)12
38#define EECONFIG_STENOMODE (uint8_t *)13
39// EEHANDS for two handed boards
40#define EECONFIG_HANDEDNESS (uint8_t *)14
41#define EECONFIG_KEYBOARD (uint32_t *)15
42#define EECONFIG_USER (uint32_t *)19
43#define EECONFIG_VELOCIKEY (uint8_t *)23
44
45#define EECONFIG_HAPTIC (uint32_t *)24
46
47// Mutually exclusive
48#define EECONFIG_LED_MATRIX (uint32_t *)28
49#define EECONFIG_RGB_MATRIX (uint32_t *)28
50// Speed & Flags
51#define EECONFIG_LED_MATRIX_EXTENDED (uint16_t *)32
52#define EECONFIG_RGB_MATRIX_EXTENDED (uint16_t *)32
53
54// TODO: Combine these into a single word and single block of EEPROM
55#define EECONFIG_KEYMAP_UPPER_BYTE (uint8_t *)34
56// Size of EEPROM being used, other code can refer to this for available EEPROM
57#define EECONFIG_SIZE 35
58/* debug bit */
59#define EECONFIG_DEBUG_ENABLE (1 << 0)
60#define EECONFIG_DEBUG_MATRIX (1 << 1)
61#define EECONFIG_DEBUG_KEYBOARD (1 << 2)
62#define EECONFIG_DEBUG_MOUSE (1 << 3)
63
64/* keyconf bit */
65#define EECONFIG_KEYMAP_SWAP_CONTROL_CAPSLOCK (1 << 0)
66#define EECONFIG_KEYMAP_CAPSLOCK_TO_CONTROL (1 << 1)
67#define EECONFIG_KEYMAP_SWAP_LALT_LGUI (1 << 2)
68#define EECONFIG_KEYMAP_SWAP_RALT_RGUI (1 << 3)
69#define EECONFIG_KEYMAP_NO_GUI (1 << 4)
70#define EECONFIG_KEYMAP_SWAP_GRAVE_ESC (1 << 5)
71#define EECONFIG_KEYMAP_SWAP_BACKSLASH_BACKSPACE (1 << 6)
72#define EECONFIG_KEYMAP_NKRO (1 << 7)
73
74#define EECONFIG_KEYMAP_LOWER_BYTE EECONFIG_KEYMAP
75
76bool eeconfig_is_enabled(void);
77bool eeconfig_is_disabled(void);
78
79void eeconfig_init(void);
80void eeconfig_init_quantum(void);
81void eeconfig_init_kb(void);
82void eeconfig_init_user(void);
83
84void eeconfig_enable(void);
85
86void eeconfig_disable(void);
87
88uint8_t eeconfig_read_debug(void);
89void eeconfig_update_debug(uint8_t val);
90
91uint8_t eeconfig_read_default_layer(void);
92void eeconfig_update_default_layer(uint8_t val);
93
94uint16_t eeconfig_read_keymap(void);
95void eeconfig_update_keymap(uint16_t val);
96
97#ifdef AUDIO_ENABLE
98uint8_t eeconfig_read_audio(void);
99void eeconfig_update_audio(uint8_t val);
100#endif
101
102uint32_t eeconfig_read_kb(void);
103void eeconfig_update_kb(uint32_t val);
104uint32_t eeconfig_read_user(void);
105void eeconfig_update_user(uint32_t val);
106
107#ifdef HAPTIC_ENABLE
108uint32_t eeconfig_read_haptic(void);
109void eeconfig_update_haptic(uint32_t val);
110#endif
111
112bool eeconfig_read_handedness(void);
113void eeconfig_update_handedness(bool val);