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 3e5987ee3b..59b2bffbc7 100644 --- a/tmk_core/common/eeconfig.c +++ b/tmk_core/common/eeconfig.c @@ -3,29 +3,59 @@  #include "eeprom.h"  #include "eeconfig.h" -/** \brief eeconfig initialization +#ifdef STM32_EEPROM_ENABLE +#include "hal.h" +#include "eeprom_stm32.h" +#endif + +extern uint32_t default_layer_state; +/** \brief eeconfig enable   *   * FIXME: needs doc   */ -void eeconfig_init(void) -{ -    eeprom_update_word(EECONFIG_MAGIC,          EECONFIG_MAGIC_NUMBER); -    eeprom_update_byte(EECONFIG_DEBUG,          0); -    eeprom_update_byte(EECONFIG_DEFAULT_LAYER,  0); -    eeprom_update_byte(EECONFIG_KEYMAP,         0); -    eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); -#ifdef BACKLIGHT_ENABLE -    eeprom_update_byte(EECONFIG_BACKLIGHT,      0); -#endif -#ifdef AUDIO_ENABLE -    eeprom_update_byte(EECONFIG_AUDIO,             0xFF); // On by default -#endif -#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) -    eeprom_update_dword(EECONFIG_RGBLIGHT,      0); -#endif -#ifdef STENO_ENABLE -    eeprom_update_byte(EECONFIG_STENOMODE,      0); +__attribute__ ((weak)) +void eeconfig_init_user(void) { +  // Reset user EEPROM value to blank, rather than to a set value +  eeconfig_update_user(0); +} + +__attribute__ ((weak)) +void eeconfig_init_kb(void) { +  // Reset Keyboard EEPROM value to blank, rather than to a set value +  eeconfig_update_kb(0); + +  eeconfig_init_user(); +} + + +/* + * FIXME: needs doc + */ +void eeconfig_init_quantum(void) { +#ifdef STM32_EEPROM_ENABLE +    EEPROM_Erase();  #endif +  eeprom_update_word(EECONFIG_MAGIC,          EECONFIG_MAGIC_NUMBER); +  eeprom_update_byte(EECONFIG_DEBUG,          0); +  eeprom_update_byte(EECONFIG_DEFAULT_LAYER,  0); +  default_layer_state = 0; +  eeprom_update_byte(EECONFIG_KEYMAP,         0); +  eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); +  eeprom_update_byte(EECONFIG_BACKLIGHT,      0); +  eeprom_update_byte(EECONFIG_AUDIO,             0xFF); // On by default +  eeprom_update_dword(EECONFIG_RGBLIGHT,      0); +  eeprom_update_byte(EECONFIG_STENOMODE,      0); + +  eeconfig_init_kb(); +} + +/** \brief eeconfig initialization + * + * FIXME: needs doc + */ +void eeconfig_init(void) { + +  eeconfig_init_quantum();  }  /** \brief eeconfig enable @@ -43,7 +73,10 @@ void eeconfig_enable(void)   */  void eeconfig_disable(void)  { -    eeprom_update_word(EECONFIG_MAGIC, 0xFFFF); +#ifdef STM32_EEPROM_ENABLE +    EEPROM_Erase(); +#endif +    eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER_OFF);  }  /** \brief eeconfig is enabled @@ -55,6 +88,15 @@ bool eeconfig_is_enabled(void)      return (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER);  } +/** \brief eeconfig is disabled + * + * FIXME: needs doc + */ +bool eeconfig_is_disabled(void) +{ +    return (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER_OFF); +} +  /** \brief eeconfig read debug   *   * FIXME: needs doc @@ -88,7 +130,6 @@ uint8_t eeconfig_read_keymap(void)      { return eeprom_read_byte(EECONFIG_KEYMA   */  void eeconfig_update_keymap(uint8_t val) { eeprom_update_byte(EECONFIG_KEYMAP, val); } -#ifdef BACKLIGHT_ENABLE  /** \brief eeconfig read backlight   *   * FIXME: needs doc @@ -99,9 +140,8 @@ uint8_t eeconfig_read_backlight(void)      { return eeprom_read_byte(EECONFIG_BA   * FIXME: needs doc   */  void eeconfig_update_backlight(uint8_t val) { eeprom_update_byte(EECONFIG_BACKLIGHT, val); } -#endif -#ifdef AUDIO_ENABLE +  /** \brief eeconfig read audio   *   * FIXME: needs doc @@ -112,4 +152,28 @@ uint8_t eeconfig_read_audio(void)      { return eeprom_read_byte(EECONFIG_AUDIO)   * FIXME: needs doc   */  void eeconfig_update_audio(uint8_t val) { eeprom_update_byte(EECONFIG_AUDIO, val); } -#endif + + +/** \brief eeconfig read kb + * + * FIXME: needs doc + */ +uint32_t eeconfig_read_kb(void)      { return eeprom_read_dword(EECONFIG_KEYBOARD); } +/** \brief eeconfig update kb + * + * FIXME: needs doc + */ + +void eeconfig_update_kb(uint32_t val) { eeprom_update_dword(EECONFIG_KEYBOARD, val); } +/** \brief eeconfig read user + * + * FIXME: needs doc + */ +uint32_t eeconfig_read_user(void)      { return eeprom_read_dword(EECONFIG_USER); } +/** \brief eeconfig update user + * + * FIXME: needs doc + */ +void eeconfig_update_user(uint32_t val) { eeprom_update_dword(EECONFIG_USER, val); } + + | 
