summaryrefslogtreecommitdiffstats
path: root/common_features.mk
diff options
context:
space:
mode:
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)