summaryrefslogtreecommitdiffstats
path: root/common/avr/eeconfig.c
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2014-07-30 14:37:05 +0900
committertmk <nobody@nowhere>2014-07-30 14:37:05 +0900
commitadbb86b1ec8b07e86ae7425374e95b82122e48a7 (patch)
tree0a02e89376f69ef975096af9490034725d8eb751 /common/avr/eeconfig.c
parent79840c678e13f9a737f80048bc3b9c9c55e3fc77 (diff)
parenta9f5f201ad6b009675fdf16c4447033cc2ac0995 (diff)
Merge branch 'mbed' into dev
Diffstat (limited to 'common/avr/eeconfig.c')
-rw-r--r--common/avr/eeconfig.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/common/avr/eeconfig.c b/common/avr/eeconfig.c
new file mode 100644
index 0000000000..5bd47dc6ad
--- /dev/null
+++ b/common/avr/eeconfig.c
@@ -0,0 +1,45 @@
+#include <stdint.h>
+#include <stdbool.h>
+#include <avr/eeprom.h>
+#include "eeconfig.h"
+
+void eeconfig_init(void)
+{
+ eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER);
+ eeprom_write_byte(EECONFIG_DEBUG, 0);
+ eeprom_write_byte(EECONFIG_DEFAULT_LAYER, 0);
+ eeprom_write_byte(EECONFIG_KEYMAP, 0);
+ eeprom_write_byte(EECONFIG_MOUSEKEY_ACCEL, 0);
+#ifdef BACKLIGHT_ENABLE
+ eeprom_write_byte(EECONFIG_BACKLIGHT, 0);
+#endif
+}
+
+void eeconfig_enable(void)
+{
+ eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER);
+}
+
+void eeconfig_disable(void)
+{
+ eeprom_write_word(EECONFIG_MAGIC, 0xFFFF);
+}
+
+bool eeconfig_is_enabled(void)
+{
+ return (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER);
+}
+
+uint8_t eeconfig_read_debug(void) { return eeprom_read_byte(EECONFIG_DEBUG); }
+void eeconfig_write_debug(uint8_t val) { eeprom_write_byte(EECONFIG_DEBUG, val); }
+
+uint8_t eeconfig_read_default_layer(void) { return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); }
+void eeconfig_write_default_layer(uint8_t val) { eeprom_write_byte(EECONFIG_DEFAULT_LAYER, val); }
+
+uint8_t eeconfig_read_keymap(void) { return eeprom_read_byte(EECONFIG_KEYMAP); }
+void eeconfig_write_keymap(uint8_t val) { eeprom_write_byte(EECONFIG_KEYMAP, val); }
+
+#ifdef BACKLIGHT_ENABLE
+uint8_t eeconfig_read_backlight(void) { return eeprom_read_byte(EECONFIG_BACKLIGHT); }
+void eeconfig_write_backlight(uint8_t val) { eeprom_write_byte(EECONFIG_BACKLIGHT, val); }
+#endif