aboutsummaryrefslogtreecommitdiffstats
path: root/tmk_core
diff options
context:
space:
mode:
authorGravatar Joel Challis <git@zvecr.com>2019-09-27 21:33:55 +0100
committerGravatar GitHub <noreply@github.com>2019-09-27 21:33:55 +0100
commit17794e0b2502371eaf155328d4e4195aef703163 (patch)
treee3912e2f393e6395a20d26f7dbbf60369837765a /tmk_core
parent92cb0b6f2f9487aff42ad1de5d4a9b81e24e836c (diff)
downloadqmk_firmware-17794e0b2502371eaf155328d4e4195aef703163.tar.gz
ARM split - Add support for dfu-util EE_HANDS flashing (#6543)
* Initial stab at some fake dfu-util-split-left behaviour * Apply suggestions from code review Co-Authored-By: fauxpark <fauxpark@gmail.com> * Clang format fixes * Fake eeprom init for both left and right hand
Diffstat (limited to 'tmk_core')
-rw-r--r--tmk_core/chibios.mk15
-rw-r--r--tmk_core/common/eeconfig.c10
2 files changed, 25 insertions, 0 deletions
diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk
index c25e28707..62e156187 100644
--- a/tmk_core/chibios.mk
+++ b/tmk_core/chibios.mk
@@ -248,6 +248,21 @@ dfu-util: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter
# Legacy alias
dfu-util-wait: dfu-util
+# TODO: Remove once ARM has a way to configure EECONFIG_HANDEDNESS
+# within the emulated eeprom via dfu-util or another tool
+ifneq (,$(filter $(MAKECMDGOALS),dfu-util-split-left))
+ OPT_DEFS += -DINIT_EE_HANDS_LEFT
+endif
+
+ifneq (,$(filter $(MAKECMDGOALS),dfu-util-split-right))
+ OPT_DEFS += -DINIT_EE_HANDS_RIGHT
+endif
+
+dfu-util-split-left: dfu-util
+
+dfu-util-split-right: dfu-util
+
+
st-link-cli: $(BUILD_DIR)/$(TARGET).hex sizeafter
$(ST_LINK_CLI) $(ST_LINK_ARGS) -q -c SWD -p $(BUILD_DIR)/$(TARGET).hex -Rst
diff --git a/tmk_core/common/eeconfig.c b/tmk_core/common/eeconfig.c
index 933ac42bd..4cf4ca3ac 100644
--- a/tmk_core/common/eeconfig.c
+++ b/tmk_core/common/eeconfig.c
@@ -48,6 +48,16 @@ void eeconfig_init_quantum(void) {
eeprom_update_dword(EECONFIG_RGB_MATRIX, 0);
eeprom_update_byte(EECONFIG_RGB_MATRIX_SPEED, 0);
+ // TODO: Remove once ARM has a way to configure EECONFIG_HANDEDNESS
+ // within the emulated eeprom via dfu-util or another tool
+#if defined INIT_EE_HANDS_LEFT
+ #pragma message "Faking EE_HANDS for left hand"
+ eeprom_update_byte(EECONFIG_HANDEDNESS, 1);
+#elif defined INIT_EE_HANDS_RIGHT
+ #pragma message "Faking EE_HANDS for right hand"
+ eeprom_update_byte(EECONFIG_HANDEDNESS, 0);
+#endif
+
eeconfig_init_kb();
}