summary refs log tree commit diff
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)