summaryrefslogtreecommitdiff
path: root/common_features.mk
diff options
context:
space:
mode:
authorFlorian Didron <fdidron@users.noreply.github.com>2020-01-21 13:50:53 +0900
committerFlorian Didron <fdidron@users.noreply.github.com>2020-02-26 10:15:12 +0900
commitd3f23ecfbcd2a69714422ab68f346e51fcc2a6de (patch)
treec5c07493f4175738f623ca23f618682cc04b779a /common_features.mk
parent0c676d6e471e3c1eabf3158fab5cb4645abd29ee (diff)
Apollo (#246)
* Add External EEPROM driver * Add keyboard * Fix i2c address * Revert i2c address for eeprom * Reduce page size for 24LC128 * Disable External EEPROM for now * Fix up RGB Matrix and layout * Cleanup moonlander.c file * Fix led array center * Disable External EEPROM for now * Cleanup and optimization of files * Add and clean up mappings * Enable "ZSA" defaults for Moonlander * Update matrix to use i2c_readReg * Disable render limit for rgb matrix * Update pin controls to GPIO Commands * Add proper changed mechanism * Additional cleanup * Run clang-format on moonlander files * Align keymap * Limit brightness for rgb matrix to 200 To prevent power draw issues * Add USB-IF VID/PID * Add RGB Matrix Sleep code * Enable External EEPROM on Moonlander * Port over Ergodox Expander error handling and retry code * Re-init RGB Matrix drivers when half is reconnected * Add threaded LED display * Correct layer state settings after moonlander_led_task * Update Moonlander to include Oryx configuration * Add webUSB Stuff * Update default keymap * fix: merge conflict Co-authored-by: Drashna Jaelre <drashna@live.com>
Diffstat (limited to 'common_features.mk')
-rw-r--r--common_features.mk51
1 files changed, 51 insertions, 0 deletions
diff --git a/common_features.mk b/common_features.mk
index b49b76780c..7687521ced 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -428,6 +428,57 @@ ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
OPT_DEFS += -DDIP_SWITCH_ENABLE
endif
+VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c
+EEPROM_DRIVER ?= vendor
+ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
+ $(error EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver)
+else
+ OPT_DEFS += -DEEPROM_ENABLE
+ ifeq ($(strip $(EEPROM_DRIVER)), custom)
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM
+ COMMON_VPATH += $(DRIVER_PATH)/eeprom
+ SRC += eeprom_driver.c
+ else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
+ COMMON_VPATH += $(DRIVER_PATH)/eeprom
+ QUANTUM_LIB_SRC += i2c_master.c
+ SRC += eeprom_driver.c eeprom_i2c.c
+ else ifeq ($(strip $(EEPROM_DRIVER)), transient)
+ OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
+ COMMON_VPATH += $(DRIVER_PATH)/eeprom
+ SRC += eeprom_driver.c eeprom_transient.c
+ else ifeq ($(strip $(EEPROM_DRIVER)), vendor)
+ OPT_DEFS += -DEEPROM_VENDOR
+ ifeq ($(PLATFORM),AVR)
+ # Automatically provided by avr-libc, nothing required
+ else ifeq ($(PLATFORM),CHIBIOS)
+ ifeq ($(MCU_SERIES), STM32F3xx)
+ SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c
+ SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
+ OPT_DEFS += -DEEPROM_EMU_STM32F303xC
+ OPT_DEFS += -DSTM32_EEPROM_ENABLE
+ else ifeq ($(MCU_SERIES), STM32F1xx)
+ SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c
+ SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
+ OPT_DEFS += -DEEPROM_EMU_STM32F103xB
+ OPT_DEFS += -DSTM32_EEPROM_ENABLE
+ else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F072xB)
+ SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c
+ SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c
+ OPT_DEFS += -DEEPROM_EMU_STM32F072xB
+ OPT_DEFS += -DSTM32_EEPROM_ENABLE
+ else
+ # This will effectively work the same as "transient" if not supported by the chip
+ SRC += $(PLATFORM_COMMON_DIR)/eeprom_teensy.c
+ endif
+ else ifeq ($(PLATFORM),ARM_ATSAM)
+ SRC += $(PLATFORM_COMMON_DIR)/eeprom.c
+ else ifeq ($(PLATFORM),TEST)
+ SRC += $(PLATFORM_COMMON_DIR)/eeprom.c
+ endif
+ endif
+endif
+
ifeq ($(strip $(DYNAMIC_MACRO_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_dynamic_macro.c
OPT_DEFS += -DDYNAMIC_MACRO_ENABLE