summaryrefslogtreecommitdiffstats
path: root/common/keyboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/keyboard.c')
-rw-r--r--common/keyboard.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/common/keyboard.c b/common/keyboard.c
index 91f321d9c..2206f1675 100644
--- a/common/keyboard.c
+++ b/common/keyboard.c
@@ -32,6 +32,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef MOUSEKEY_ENABLE
#include "mousekey.h"
#endif
+#include "eeconfig.h"
#ifdef MATRIX_HAS_GHOST
@@ -59,6 +60,9 @@ void keyboard_init(void)
timer_init();
matrix_init();
+#ifdef PS2_MOUSE_ENABLE
+ ps2_mouse_init();
+#endif
/* matrix scan for boot magic keys */
#ifdef DEBOUNCE
@@ -74,12 +78,25 @@ void keyboard_init(void)
if (IS_BOOTMAGIC_BOOTLOADER()) bootloader_jump();
#endif
#ifdef IS_BOOTMAGIC_DEBUG
- if (IS_BOOTMAGIC_DEBUG()) debug_enable = true;
+ if (IS_BOOTMAGIC_DEBUG()) {
+ eeconfig_write_debug(eeconfig_read_debug() ^ EECONFIG_DEBUG_ENABLE);
+ }
#endif
-
-#ifdef PS2_MOUSE_ENABLE
- ps2_mouse_init();
+#ifdef IS_BOOTMAGIC_EEPROM_CLEAR
+ if (IS_BOOTMAGIC_EEPROM_CLEAR()) eeconfig_init();
#endif
+
+ if (eeconfig_initialized()) {
+ uint8_t config;
+ config = eeconfig_read_debug();
+ debug_enable = (config & EECONFIG_DEBUG_ENABLE);
+ debug_matrix = (config & EECONFIG_DEBUG_MATRIX);
+ debug_keyboard = (config & EECONFIG_DEBUG_KEYBOARD);
+ debug_mouse = (config & EECONFIG_DEBUG_MOUSE);
+ } else {
+ eeconfig_init();
+ }
+
}
/*