diff options
Diffstat (limited to 'tmk_core/common/eeconfig.c')
| -rw-r--r-- | tmk_core/common/eeconfig.c | 112 |
1 files changed, 88 insertions, 24 deletions
diff --git a/tmk_core/common/eeconfig.c b/tmk_core/common/eeconfig.c index 3e5987ee3..d8bab7d2e 100644 --- a/tmk_core/common/eeconfig.c +++ b/tmk_core/common/eeconfig.c | |||
| @@ -3,29 +3,59 @@ | |||
| 3 | #include "eeprom.h" | 3 | #include "eeprom.h" |
| 4 | #include "eeconfig.h" | 4 | #include "eeconfig.h" |
| 5 | 5 | ||
| 6 | /** \brief eeconfig initialization | 6 | #ifdef STM32_EEPROM_ENABLE |
| 7 | #include "hal.h" | ||
| 8 | #include "eeprom_stm32.h" | ||
| 9 | #endif | ||
| 10 | |||
| 11 | extern uint32_t default_layer_state; | ||
| 12 | /** \brief eeconfig enable | ||
| 7 | * | 13 | * |
| 8 | * FIXME: needs doc | 14 | * FIXME: needs doc |
| 9 | */ | 15 | */ |
| 10 | void eeconfig_init(void) | 16 | __attribute__ ((weak)) |
| 11 | { | 17 | void eeconfig_init_user(void) { |
| 12 | eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); | 18 | // Reset user EEPROM value to blank, rather than to a set value |
| 13 | eeprom_update_byte(EECONFIG_DEBUG, 0); | 19 | eeconfig_update_user(0); |
| 14 | eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); | 20 | } |
| 15 | eeprom_update_byte(EECONFIG_KEYMAP, 0); | 21 | |
| 16 | eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); | 22 | __attribute__ ((weak)) |
| 17 | #ifdef BACKLIGHT_ENABLE | 23 | void eeconfig_init_kb(void) { |
| 18 | eeprom_update_byte(EECONFIG_BACKLIGHT, 0); | 24 | // Reset Keyboard EEPROM value to blank, rather than to a set value |
| 19 | #endif | 25 | eeconfig_update_kb(0); |
| 20 | #ifdef AUDIO_ENABLE | 26 | |
| 21 | eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default | 27 | eeconfig_init_user(); |
| 22 | #endif | 28 | } |
| 23 | #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) | 29 | |
| 24 | eeprom_update_dword(EECONFIG_RGBLIGHT, 0); | 30 | |
| 25 | #endif | 31 | /* |
| 26 | #ifdef STENO_ENABLE | 32 | * FIXME: needs doc |
| 27 | eeprom_update_byte(EECONFIG_STENOMODE, 0); | 33 | */ |
| 34 | void eeconfig_init_quantum(void) { | ||
| 35 | #ifdef STM32_EEPROM_ENABLE | ||
| 36 | EEPROM_format(); | ||
| 28 | #endif | 37 | #endif |
| 38 | eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); | ||
| 39 | eeprom_update_byte(EECONFIG_DEBUG, 0); | ||
| 40 | eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); | ||
| 41 | default_layer_state = 0; | ||
| 42 | eeprom_update_byte(EECONFIG_KEYMAP, 0); | ||
| 43 | eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); | ||
| 44 | eeprom_update_byte(EECONFIG_BACKLIGHT, 0); | ||
| 45 | eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default | ||
| 46 | eeprom_update_dword(EECONFIG_RGBLIGHT, 0); | ||
| 47 | eeprom_update_byte(EECONFIG_STENOMODE, 0); | ||
| 48 | |||
| 49 | eeconfig_init_kb(); | ||
| 50 | } | ||
| 51 | |||
| 52 | /** \brief eeconfig initialization | ||
| 53 | * | ||
| 54 | * FIXME: needs doc | ||
| 55 | */ | ||
| 56 | void eeconfig_init(void) { | ||
| 57 | |||
| 58 | eeconfig_init_quantum(); | ||
| 29 | } | 59 | } |
| 30 | 60 | ||
| 31 | /** \brief eeconfig enable | 61 | /** \brief eeconfig enable |
| @@ -43,7 +73,10 @@ void eeconfig_enable(void) | |||
| 43 | */ | 73 | */ |
| 44 | void eeconfig_disable(void) | 74 | void eeconfig_disable(void) |
| 45 | { | 75 | { |
| 46 | eeprom_update_word(EECONFIG_MAGIC, 0xFFFF); | 76 | #ifdef STM32_EEPROM_ENABLE |
| 77 | EEPROM_format(); | ||
| 78 | #endif | ||
| 79 | eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER_OFF); | ||
| 47 | } | 80 | } |
| 48 | 81 | ||
| 49 | /** \brief eeconfig is enabled | 82 | /** \brief eeconfig is enabled |
| @@ -55,6 +88,15 @@ bool eeconfig_is_enabled(void) | |||
| 55 | return (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER); | 88 | return (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER); |
| 56 | } | 89 | } |
| 57 | 90 | ||
| 91 | /** \brief eeconfig is disabled | ||
| 92 | * | ||
| 93 | * FIXME: needs doc | ||
| 94 | */ | ||
| 95 | bool eeconfig_is_disabled(void) | ||
| 96 | { | ||
| 97 | return (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER_OFF); | ||
| 98 | } | ||
| 99 | |||
| 58 | /** \brief eeconfig read debug | 100 | /** \brief eeconfig read debug |
| 59 | * | 101 | * |
| 60 | * FIXME: needs doc | 102 | * FIXME: needs doc |
| @@ -88,7 +130,6 @@ uint8_t eeconfig_read_keymap(void) { return eeprom_read_byte(EECONFIG_KEYMA | |||
| 88 | */ | 130 | */ |
| 89 | void eeconfig_update_keymap(uint8_t val) { eeprom_update_byte(EECONFIG_KEYMAP, val); } | 131 | void eeconfig_update_keymap(uint8_t val) { eeprom_update_byte(EECONFIG_KEYMAP, val); } |
| 90 | 132 | ||
| 91 | #ifdef BACKLIGHT_ENABLE | ||
| 92 | /** \brief eeconfig read backlight | 133 | /** \brief eeconfig read backlight |
| 93 | * | 134 | * |
| 94 | * FIXME: needs doc | 135 | * FIXME: needs doc |
| @@ -99,9 +140,8 @@ uint8_t eeconfig_read_backlight(void) { return eeprom_read_byte(EECONFIG_BA | |||
| 99 | * FIXME: needs doc | 140 | * FIXME: needs doc |
| 100 | */ | 141 | */ |
| 101 | void eeconfig_update_backlight(uint8_t val) { eeprom_update_byte(EECONFIG_BACKLIGHT, val); } | 142 | void eeconfig_update_backlight(uint8_t val) { eeprom_update_byte(EECONFIG_BACKLIGHT, val); } |
| 102 | #endif | ||
| 103 | 143 | ||
| 104 | #ifdef AUDIO_ENABLE | 144 | |
| 105 | /** \brief eeconfig read audio | 145 | /** \brief eeconfig read audio |
| 106 | * | 146 | * |
| 107 | * FIXME: needs doc | 147 | * FIXME: needs doc |
| @@ -112,4 +152,28 @@ uint8_t eeconfig_read_audio(void) { return eeprom_read_byte(EECONFIG_AUDIO) | |||
| 112 | * FIXME: needs doc | 152 | * FIXME: needs doc |
| 113 | */ | 153 | */ |
| 114 | void eeconfig_update_audio(uint8_t val) { eeprom_update_byte(EECONFIG_AUDIO, val); } | 154 | void eeconfig_update_audio(uint8_t val) { eeprom_update_byte(EECONFIG_AUDIO, val); } |
| 115 | #endif | 155 | |
| 156 | |||
| 157 | /** \brief eeconfig read kb | ||
| 158 | * | ||
| 159 | * FIXME: needs doc | ||
| 160 | */ | ||
| 161 | uint32_t eeconfig_read_kb(void) { return eeprom_read_dword(EECONFIG_KEYBOARD); } | ||
| 162 | /** \brief eeconfig update kb | ||
| 163 | * | ||
| 164 | * FIXME: needs doc | ||
| 165 | */ | ||
| 166 | |||
| 167 | void eeconfig_update_kb(uint32_t val) { eeprom_update_dword(EECONFIG_KEYBOARD, val); } | ||
| 168 | /** \brief eeconfig read user | ||
| 169 | * | ||
| 170 | * FIXME: needs doc | ||
| 171 | */ | ||
| 172 | uint32_t eeconfig_read_user(void) { return eeprom_read_dword(EECONFIG_USER); } | ||
| 173 | /** \brief eeconfig update user | ||
| 174 | * | ||
| 175 | * FIXME: needs doc | ||
| 176 | */ | ||
| 177 | void eeconfig_update_user(uint32_t val) { eeprom_update_dword(EECONFIG_USER, val); } | ||
| 178 | |||
| 179 | |||
