]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - tmk_core/common/eeconfig.h
Add Function level EECONFIG code for EEPROM (#3084)
[qmk_firmware.git] / tmk_core / common / eeconfig.h
index fa498df48c5c77b0fc09618316a26391d30dfa03..a45cb8b12d3c7456931b8960390ad72bfdc6ddfa 100644 (file)
@@ -23,36 +23,41 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 #define EECONFIG_MAGIC_NUMBER                       (uint16_t)0xFEED
+#define EECONFIG_MAGIC_NUMBER_OFF                   (uint16_t)0xFFFF
 
 /* eeprom parameteter address */
 #if !defined(STM32F303xC)
 #define EECONFIG_MAGIC                              (uint16_t *)0
-#define EECONFIG_DEBUG                              (uint8_t *)2
-#define EECONFIG_DEFAULT_LAYER                      (uint8_t *)3
-#define EECONFIG_KEYMAP                             (uint8_t *)4
-#define EECONFIG_MOUSEKEY_ACCEL                     (uint8_t *)5
-#define EECONFIG_BACKLIGHT                          (uint8_t *)6
-#define EECONFIG_AUDIO                              (uint8_t *)7
+#define EECONFIG_DEBUG                               (uint8_t *)2
+#define EECONFIG_DEFAULT_LAYER                       (uint8_t *)3
+#define EECONFIG_KEYMAP                              (uint8_t *)4
+#define EECONFIG_MOUSEKEY_ACCEL                      (uint8_t *)5
+#define EECONFIG_BACKLIGHT                           (uint8_t *)6
+#define EECONFIG_AUDIO                               (uint8_t *)7
 #define EECONFIG_RGBLIGHT                           (uint32_t *)8
 #define EECONFIG_UNICODEMODE                        (uint8_t *)12
 #define EECONFIG_STENOMODE                          (uint8_t *)13
 // EEHANDS for two handed boards
-#define EECONFIG_HANDEDNESS                                    (uint8_t *)14
+#define EECONFIG_HANDEDNESS                                            (uint8_t *)14
+#define EECONFIG_KEYBOARD                          (uint32_t *)15
+#define EECONFIG_USER                              (uint32_t *)19
 
 #else
 /* STM32F3 uses 16byte block. Reconfigure memory map */
 #define EECONFIG_MAGIC                              (uint16_t *)0
-#define EECONFIG_DEBUG                              (uint8_t *)1
-#define EECONFIG_DEFAULT_LAYER                      (uint8_t *)2
-#define EECONFIG_KEYMAP                             (uint8_t *)3
-#define EECONFIG_MOUSEKEY_ACCEL                     (uint8_t *)4
-#define EECONFIG_BACKLIGHT                          (uint8_t *)5
-#define EECONFIG_AUDIO                              (uint8_t *)6
+#define EECONFIG_DEBUG                               (uint8_t *)1
+#define EECONFIG_DEFAULT_LAYER                       (uint8_t *)2
+#define EECONFIG_KEYMAP                              (uint8_t *)3
+#define EECONFIG_MOUSEKEY_ACCEL                      (uint8_t *)4
+#define EECONFIG_BACKLIGHT                           (uint8_t *)5
+#define EECONFIG_AUDIO                               (uint8_t *)6
 #define EECONFIG_RGBLIGHT                           (uint32_t *)7
-#define EECONFIG_UNICODEMODE                        (uint8_t *)9
+#define EECONFIG_UNICODEMODE                         (uint8_t *)9
 #define EECONFIG_STENOMODE                          (uint8_t *)10
 // EEHANDS for two handed boards
-#define EECONFIG_HANDEDNESS                                    (uint8_t *)11
+#define EECONFIG_HANDEDNESS                                    (uint8_t *)11
+#define EECONFIG_KEYBOARD                          (uint32_t *)12
+#define EECONFIG_USER                              (uint32_t *)14
 #endif
 
 /* debug bit */
@@ -73,8 +78,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 bool eeconfig_is_enabled(void);
+bool eeconfig_is_disabled(void);
 
 void eeconfig_init(void);
+void eeconfig_init_quantum(void);
+void eeconfig_init_kb(void);
+void eeconfig_init_user(void);
 
 void eeconfig_enable(void);
 
@@ -99,4 +108,9 @@ uint8_t eeconfig_read_audio(void);
 void eeconfig_update_audio(uint8_t val);
 #endif
 
+uint32_t eeconfig_read_kb(void);
+void eeconfig_update_kb(uint32_t val);
+uint32_t eeconfig_read_user(void);
+void eeconfig_update_user(uint32_t val);
+
 #endif