aboutsummaryrefslogtreecommitdiff
path: root/common/eeconfig.c
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2013-03-11 15:35:55 +0900
committertmk <nobody@nowhere>2013-03-11 15:35:55 +0900
commit48433a5e9988647a737234c11dd9db4080fd4a4e (patch)
tree4af03a20658cb7e6cd43f9c65dfa002f1b544332 /common/eeconfig.c
parent5d6b848a157a2e94859949961297d40da6a77527 (diff)
parentef8439bddb2d7fe5fd95faf2b6bebd8235acf160 (diff)
downloadqmk_firmware-48433a5e9988647a737234c11dd9db4080fd4a4e.tar.gz
qmk_firmware-48433a5e9988647a737234c11dd9db4080fd4a4e.zip
Merge branch 'eeprom_config'
Diffstat (limited to 'common/eeconfig.c')
-rw-r--r--common/eeconfig.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/common/eeconfig.c b/common/eeconfig.c
new file mode 100644
index 000000000..cea3810ee
--- /dev/null
+++ b/common/eeconfig.c
@@ -0,0 +1,38 @@
1#include <stdint.h>
2#include <stdbool.h>
3#include <avr/eeprom.h>
4#include "eeconfig.h"
5
6
7void eeconfig_init(void)
8{
9 eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER);
10 eeprom_write_byte(EECONFIG_DEBUG, 0);
11 eeprom_write_byte(EECONFIG_DEFAULT_LAYER, 0);
12 eeprom_write_byte(EECONFIG_KEYCONF, 0);
13 eeprom_write_byte(EECONFIG_MOUSEKEY_ACCEL, 0);
14}
15
16void eeconfig_enable(void)
17{
18 eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER);
19}
20
21void eeconfig_disable(void)
22{
23 eeprom_write_word(EECONFIG_MAGIC, 0xFFFF);
24}
25
26bool eeconfig_is_enabled(void)
27{
28 return EECONFIG_IS_ENABLED() && (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER);
29}
30
31uint8_t eeconfig_read_debug(void) { return eeprom_read_byte(EECONFIG_DEBUG); }
32void eeconfig_write_debug(uint8_t val) { eeprom_write_byte(EECONFIG_DEBUG, val); }
33
34uint8_t eeconfig_read_defalt_layer(void) { return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); }
35void eeconfig_write_defalt_layer(uint8_t val) { eeprom_write_byte(EECONFIG_DEFAULT_LAYER, val); }
36
37uint8_t eeconfig_read_keyconf(void) { return eeprom_read_byte(EECONFIG_KEYCONF); }
38void eeconfig_write_keyconf(uint8_t val) { eeprom_write_byte(EECONFIG_KEYCONF, val); }