aboutsummaryrefslogtreecommitdiff
path: root/quantum/painter
diff options
context:
space:
mode:
authorSteve Storck <[email protected]>2025-02-16 16:41:07 -0500
committerGitHub <[email protected]>2025-02-17 08:41:07 +1100
commitc00b0c5bc96b4cd5d096d3c8701e86be9aba4982 (patch)
treea9f1adbbf6c350ee9e602b6035d5baadc8205be8 /quantum/painter
parent164b7331c3b98165e49d38127bee366f9c545513 (diff)
downloadqmk_firmware-c00b0c5bc96b4cd5d096d3c8701e86be9aba4982.tar.gz
qmk_firmware-c00b0c5bc96b4cd5d096d3c8701e86be9aba4982.zip
Created SH1107 driver for quantum painter (#24724)
Co-authored-by: Sergey Vlasov <[email protected]>
Diffstat (limited to 'quantum/painter')
-rw-r--r--quantum/painter/qp.h6
-rw-r--r--quantum/painter/qp_internal.c1
-rw-r--r--quantum/painter/rules.mk25
3 files changed, 32 insertions, 0 deletions
diff --git a/quantum/painter/qp.h b/quantum/painter/qp.h
index 3dc77b42cf..f7fdb02789 100644
--- a/quantum/painter/qp.h
+++ b/quantum/painter/qp.h
@@ -557,6 +557,12 @@ int16_t qp_drawtext_recolor(painter_device_t device, uint16_t x, uint16_t y, pai
# define SH1106_NUM_DEVICES 0
#endif // QUANTUM_PAINTER_SH1106_ENABLE
+#ifdef QUANTUM_PAINTER_SH1107_ENABLE
+# include "qp_sh1107.h"
+#else // QUANTUM_PAINTER_SH1107_ENABLE
+# define SH1107_NUM_DEVICES 0
+#endif // QUANTUM_PAINTER_SH1107_ENABLE
+
#ifdef QUANTUM_PAINTER_LD7032_ENABLE
# include "qp_ld7032.h"
#else // QUANTUM_PAINTER_LD7032_ENABLE
diff --git a/quantum/painter/qp_internal.c b/quantum/painter/qp_internal.c
index 5097edfa07..24b881bd09 100644
--- a/quantum/painter/qp_internal.c
+++ b/quantum/painter/qp_internal.c
@@ -19,6 +19,7 @@ enum {
+ (GC9107_NUM_DEVICES) // GC9107
+ (SSD1351_NUM_DEVICES) // SSD1351
+ (SH1106_NUM_DEVICES) // SH1106
+ + (SH1107_NUM_DEVICES) // SH1107
+ (LD7032_NUM_DEVICES) // LD7032
};
diff --git a/quantum/painter/rules.mk b/quantum/painter/rules.mk
index b773dd091c..10c2698092 100644
--- a/quantum/painter/rules.mk
+++ b/quantum/painter/rules.mk
@@ -18,6 +18,8 @@ VALID_QUANTUM_PAINTER_DRIVERS := \
ssd1351_spi \
sh1106_i2c \
sh1106_spi \
+ sh1107_i2c \
+ sh1107_spi \
ld7032_i2c \
ld7032_spi
@@ -184,6 +186,29 @@ define handle_quantum_painter_driver
$(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \
$(DRIVER_PATH)/painter/sh1106/qp_sh1106.c
+ else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1107_spi)
+ QUANTUM_PAINTER_NEEDS_SURFACE := yes
+ QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes
+ QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes
+ OPT_DEFS += -DQUANTUM_PAINTER_SH1107_ENABLE -DQUANTUM_PAINTER_SH1107_SPI_ENABLE
+ COMMON_VPATH += \
+ $(DRIVER_PATH)/painter/oled_panel \
+ $(DRIVER_PATH)/painter/sh1107
+ SRC += \
+ $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \
+ $(DRIVER_PATH)/painter/sh1107/qp_sh1107.c
+
+ else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1107_i2c)
+ QUANTUM_PAINTER_NEEDS_SURFACE := yes
+ QUANTUM_PAINTER_NEEDS_COMMS_I2C := yes
+ OPT_DEFS += -DQUANTUM_PAINTER_SH1107_ENABLE -DQUANTUM_PAINTER_SH1107_I2C_ENABLE
+ COMMON_VPATH += \
+ $(DRIVER_PATH)/painter/oled_panel \
+ $(DRIVER_PATH)/painter/sh1107
+ SRC += \
+ $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \
+ $(DRIVER_PATH)/painter/sh1107/qp_sh1107.c
+
else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ld7032_spi)
QUANTUM_PAINTER_NEEDS_SURFACE := yes
QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes