summaryrefslogtreecommitdiff
path: root/common_features.mk
diff options
context:
space:
mode:
authorXelus22 <17491233+Xelus22@users.noreply.github.com>2021-08-24 16:28:26 +1000
committerGitHub <noreply@github.com>2021-08-24 16:28:26 +1000
commit4e1c5887c5c08ebd2cf7868c8d9292aa728e7bf0 (patch)
tree24ff5bdf570a6a9f5a77a517005bffbb35e46b22 /common_features.mk
parent6fd20acf4be76e7a2bd82d3dfd0a9bcca8c507eb (diff)
[Core] Refactor OLED to allow easy addition of other types (#13454)
* add docs * core changes * update keyboards to new OLED * updated users to new OLED * update layouts to new OLED * fixup docs * drashna's suggestion * fix up docs * new keyboards with oled * core split changes * remaining keyboard files * Fix The Helix keyboards oled options * reflect develop Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: mtei <2170248+mtei@users.noreply.github.com>
Diffstat (limited to 'common_features.mk')
-rw-r--r--common_features.mk20
1 files changed, 15 insertions, 5 deletions
diff --git a/common_features.mk b/common_features.mk
index 3acc5307ac..c92f98ab7f 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -592,11 +592,21 @@ ifeq ($(strip $(HD44780_ENABLE)), yes)
OPT_DEFS += -DHD44780_ENABLE
endif
-ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
- OPT_DEFS += -DOLED_DRIVER_ENABLE
- COMMON_VPATH += $(DRIVER_PATH)/oled
- QUANTUM_LIB_SRC += i2c_master.c
- SRC += oled_driver.c
+VALID_OLED_DRIVER_TYPES := SSD1306 custom
+OLED_DRIVER ?= SSD1306
+ifeq ($(strip $(OLED_ENABLE)), yes)
+ ifeq ($(filter $(OLED_DRIVER),$(VALID_OLED_DRIVER_TYPES)),)
+ $(error OLED_DRIVER="$(OLED_DRIVER)" is not a valid OLED driver)
+ else
+ OPT_DEFS += -DOLED_ENABLE
+ COMMON_VPATH += $(DRIVER_PATH)/oled
+
+ OPT_DEFS += -DOLED_DRIVER_$(strip $(shell echo $(OLED_DRIVER) | tr '[:lower:]' '[:upper:]'))
+ ifeq ($(strip $(OLED_DRIVER)), SSD1306)
+ SRC += ssd1306_sh1106.c
+ QUANTUM_LIB_SRC += i2c_master.c
+ endif
+ endif
endif
ifeq ($(strip $(ST7565_ENABLE)), yes)