keyboard stuff
at master 290 lines 12 kB view raw
1# Quantum Painter Configurables 2QUANTUM_PAINTER_DRIVERS ?= 3QUANTUM_PAINTER_ANIMATIONS_ENABLE ?= yes 4 5QUANTUM_PAINTER_LVGL_INTEGRATION ?= no 6 7# The list of permissible drivers that can be listed in QUANTUM_PAINTER_DRIVERS 8VALID_QUANTUM_PAINTER_DRIVERS := \ 9 surface \ 10 ili9163_spi \ 11 ili9341_spi \ 12 ili9486_spi \ 13 ili9488_spi \ 14 st7735_spi \ 15 st7789_spi \ 16 gc9a01_spi \ 17 gc9107_spi \ 18 ssd1351_spi \ 19 sh1106_i2c \ 20 sh1106_spi \ 21 sh1107_i2c \ 22 sh1107_spi \ 23 ld7032_i2c \ 24 ld7032_spi 25 26#------------------------------------------------------------------------------- 27 28OPT_DEFS += -DQUANTUM_PAINTER_ENABLE 29COMMON_VPATH += $(QUANTUM_DIR)/painter \ 30 $(QUANTUM_DIR)/unicode 31SRC += \ 32 $(QUANTUM_DIR)/unicode/utf8.c \ 33 $(QUANTUM_DIR)/color.c \ 34 $(QUANTUM_DIR)/painter/qp.c \ 35 $(QUANTUM_DIR)/painter/qp_internal.c \ 36 $(QUANTUM_DIR)/painter/qp_stream.c \ 37 $(QUANTUM_DIR)/painter/qgf.c \ 38 $(QUANTUM_DIR)/painter/qff.c \ 39 $(QUANTUM_DIR)/painter/qp_draw_core.c \ 40 $(QUANTUM_DIR)/painter/qp_draw_codec.c \ 41 $(QUANTUM_DIR)/painter/qp_draw_circle.c \ 42 $(QUANTUM_DIR)/painter/qp_draw_ellipse.c \ 43 $(QUANTUM_DIR)/painter/qp_draw_image.c \ 44 $(QUANTUM_DIR)/painter/qp_draw_text.c 45 46# Check if people want animations... enable the defered exec if so. 47ifeq ($(strip $(QUANTUM_PAINTER_ANIMATIONS_ENABLE)), yes) 48 DEFERRED_EXEC_ENABLE := yes 49 OPT_DEFS += -DQUANTUM_PAINTER_ANIMATIONS_ENABLE 50endif 51 52# Comms flags 53QUANTUM_PAINTER_NEEDS_COMMS_DUMMY ?= no 54QUANTUM_PAINTER_NEEDS_COMMS_SPI ?= no 55QUANTUM_PAINTER_NEEDS_COMMS_I2C ?= no 56 57# Handler for each driver 58define handle_quantum_painter_driver 59 CURRENT_PAINTER_DRIVER := $1 60 61 ifeq ($$(filter $$(strip $$(CURRENT_PAINTER_DRIVER)),$$(VALID_QUANTUM_PAINTER_DRIVERS)),) 62 $$(error "$$(CURRENT_PAINTER_DRIVER)" is not a valid Quantum Painter driver) 63 64 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),surface) 65 QUANTUM_PAINTER_NEEDS_SURFACE := yes 66 67 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ili9163_spi) 68 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 69 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 70 OPT_DEFS += -DQUANTUM_PAINTER_ILI9163_ENABLE -DQUANTUM_PAINTER_ILI9163_SPI_ENABLE 71 COMMON_VPATH += \ 72 $(DRIVER_PATH)/painter/tft_panel \ 73 $(DRIVER_PATH)/painter/ili9xxx 74 SRC += \ 75 $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ 76 $(DRIVER_PATH)/painter/ili9xxx/qp_ili9163.c \ 77 78 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ili9341_spi) 79 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 80 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 81 OPT_DEFS += -DQUANTUM_PAINTER_ILI9341_ENABLE -DQUANTUM_PAINTER_ILI9341_SPI_ENABLE 82 COMMON_VPATH += \ 83 $(DRIVER_PATH)/painter/tft_panel \ 84 $(DRIVER_PATH)/painter/ili9xxx 85 SRC += \ 86 $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ 87 $(DRIVER_PATH)/painter/ili9xxx/qp_ili9341.c \ 88 89 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ili9486_spi) 90 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 91 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 92 OPT_DEFS += -DQUANTUM_PAINTER_ILI9486_ENABLE -DQUANTUM_PAINTER_ILI9486_SPI_ENABLE 93 COMMON_VPATH += \ 94 $(DRIVER_PATH)/painter/tft_panel \ 95 $(DRIVER_PATH)/painter/ili9xxx 96 SRC += \ 97 $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ 98 $(DRIVER_PATH)/painter/ili9xxx/qp_ili9486.c \ 99 100 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ili9488_spi) 101 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 102 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 103 OPT_DEFS += -DQUANTUM_PAINTER_ILI9488_ENABLE -DQUANTUM_PAINTER_ILI9488_SPI_ENABLE 104 COMMON_VPATH += \ 105 $(DRIVER_PATH)/painter/tft_panel \ 106 $(DRIVER_PATH)/painter/ili9xxx 107 SRC += \ 108 $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ 109 $(DRIVER_PATH)/painter/ili9xxx/qp_ili9488.c \ 110 111 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),st7735_spi) 112 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 113 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 114 OPT_DEFS += -DQUANTUM_PAINTER_ST7735_ENABLE -DQUANTUM_PAINTER_ST7735_SPI_ENABLE 115 COMMON_VPATH += \ 116 $(DRIVER_PATH)/painter/tft_panel \ 117 $(DRIVER_PATH)/painter/st77xx 118 SRC += \ 119 $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ 120 $(DRIVER_PATH)/painter/st77xx/qp_st7735.c 121 122 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),st7789_spi) 123 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 124 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 125 OPT_DEFS += -DQUANTUM_PAINTER_ST7789_ENABLE -DQUANTUM_PAINTER_ST7789_SPI_ENABLE 126 COMMON_VPATH += \ 127 $(DRIVER_PATH)/painter/tft_panel \ 128 $(DRIVER_PATH)/painter/st77xx 129 SRC += \ 130 $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ 131 $(DRIVER_PATH)/painter/st77xx/qp_st7789.c 132 133 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),gc9a01_spi) 134 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 135 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 136 OPT_DEFS += -DQUANTUM_PAINTER_GC9A01_ENABLE -DQUANTUM_PAINTER_GC9A01_SPI_ENABLE 137 COMMON_VPATH += \ 138 $(DRIVER_PATH)/painter/tft_panel \ 139 $(DRIVER_PATH)/painter/gc9xxx 140 SRC += \ 141 $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ 142 $(DRIVER_PATH)/painter/gc9xxx/qp_gc9a01.c 143 144 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),gc9107_spi) 145 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 146 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 147 OPT_DEFS += -DQUANTUM_PAINTER_GC9107_ENABLE -DQUANTUM_PAINTER_GC9107_SPI_ENABLE 148 COMMON_VPATH += \ 149 $(DRIVER_PATH)/painter/tft_panel \ 150 $(DRIVER_PATH)/painter/gc9xxx 151 SRC += \ 152 $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ 153 $(DRIVER_PATH)/painter/gc9xxx/qp_gc9107.c 154 155 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ssd1351_spi) 156 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 157 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 158 OPT_DEFS += -DQUANTUM_PAINTER_SSD1351_ENABLE -DQUANTUM_PAINTER_SSD1351_SPI_ENABLE 159 COMMON_VPATH += \ 160 $(DRIVER_PATH)/painter/tft_panel \ 161 $(DRIVER_PATH)/painter/ssd1351 162 SRC += \ 163 $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ 164 $(DRIVER_PATH)/painter/ssd1351/qp_ssd1351.c 165 166 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1106_spi) 167 QUANTUM_PAINTER_NEEDS_SURFACE := yes 168 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 169 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 170 OPT_DEFS += -DQUANTUM_PAINTER_SH1106_ENABLE -DQUANTUM_PAINTER_SH1106_SPI_ENABLE 171 COMMON_VPATH += \ 172 $(DRIVER_PATH)/painter/oled_panel \ 173 $(DRIVER_PATH)/painter/sh1106 174 SRC += \ 175 $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ 176 $(DRIVER_PATH)/painter/sh1106/qp_sh1106.c 177 178 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1106_i2c) 179 QUANTUM_PAINTER_NEEDS_SURFACE := yes 180 QUANTUM_PAINTER_NEEDS_COMMS_I2C := yes 181 OPT_DEFS += -DQUANTUM_PAINTER_SH1106_ENABLE -DQUANTUM_PAINTER_SH1106_I2C_ENABLE 182 COMMON_VPATH += \ 183 $(DRIVER_PATH)/painter/oled_panel \ 184 $(DRIVER_PATH)/painter/sh1106 185 SRC += \ 186 $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ 187 $(DRIVER_PATH)/painter/sh1106/qp_sh1106.c 188 189 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1107_spi) 190 QUANTUM_PAINTER_NEEDS_SURFACE := yes 191 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 192 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 193 OPT_DEFS += -DQUANTUM_PAINTER_SH1107_ENABLE -DQUANTUM_PAINTER_SH1107_SPI_ENABLE 194 COMMON_VPATH += \ 195 $(DRIVER_PATH)/painter/oled_panel \ 196 $(DRIVER_PATH)/painter/sh1107 197 SRC += \ 198 $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ 199 $(DRIVER_PATH)/painter/sh1107/qp_sh1107.c 200 201 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1107_i2c) 202 QUANTUM_PAINTER_NEEDS_SURFACE := yes 203 QUANTUM_PAINTER_NEEDS_COMMS_I2C := yes 204 OPT_DEFS += -DQUANTUM_PAINTER_SH1107_ENABLE -DQUANTUM_PAINTER_SH1107_I2C_ENABLE 205 COMMON_VPATH += \ 206 $(DRIVER_PATH)/painter/oled_panel \ 207 $(DRIVER_PATH)/painter/sh1107 208 SRC += \ 209 $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ 210 $(DRIVER_PATH)/painter/sh1107/qp_sh1107.c 211 212 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ld7032_spi) 213 QUANTUM_PAINTER_NEEDS_SURFACE := yes 214 QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes 215 QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes 216 OPT_DEFS += -DQUANTUM_PAINTER_LD7032_ENABLE -DQUANTUM_PAINTER_LD7032_SPI_ENABLE 217 COMMON_VPATH += \ 218 $(DRIVER_PATH)/painter/oled_panel \ 219 $(DRIVER_PATH)/painter/ld7032 220 SRC += \ 221 $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ 222 $(DRIVER_PATH)/painter/ld7032/qp_ld7032.c 223 224 else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ld7032_i2c) 225 QUANTUM_PAINTER_NEEDS_SURFACE := yes 226 QUANTUM_PAINTER_NEEDS_COMMS_I2C := yes 227 OPT_DEFS += -DQUANTUM_PAINTER_LD7032_ENABLE -DQUANTUM_PAINTER_LD7032_I2C_ENABLE 228 COMMON_VPATH += \ 229 $(DRIVER_PATH)/painter/oled_panel \ 230 $(DRIVER_PATH)/painter/ld7032 231 SRC += \ 232 $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \ 233 $(DRIVER_PATH)/painter/ld7032/qp_ld7032.c 234 235 endif 236endef 237 238# Iterate through the listed drivers for the build, including what's necessary 239$(foreach qp_driver,$(QUANTUM_PAINTER_DRIVERS),$(eval $(call handle_quantum_painter_driver,$(qp_driver)))) 240 241# If a surface is needed, set up the required files 242ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_SURFACE)), yes) 243 QUANTUM_PAINTER_NEEDS_COMMS_DUMMY := yes 244 OPT_DEFS += -DQUANTUM_PAINTER_SURFACE_ENABLE 245 COMMON_VPATH += \ 246 $(DRIVER_PATH)/painter/generic 247 SRC += \ 248 $(DRIVER_PATH)/painter/generic/qp_surface_common.c \ 249 $(DRIVER_PATH)/painter/generic/qp_surface_mono1bpp.c \ 250 $(DRIVER_PATH)/painter/generic/qp_surface_rgb565.c \ 251 $(DRIVER_PATH)/painter/generic/qp_surface_rgb888.c 252endif 253 254# If dummy comms is needed, set up the required files 255ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_DUMMY)), yes) 256 OPT_DEFS += -DQUANTUM_PAINTER_DUMMY_COMMS_ENABLE 257 VPATH += $(DRIVER_PATH)/painter/comms 258 SRC += \ 259 $(QUANTUM_DIR)/painter/qp_comms.c \ 260 $(DRIVER_PATH)/painter/comms/qp_comms_dummy.c 261endif 262 263# If SPI comms is needed, set up the required files 264ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_SPI)), yes) 265 OPT_DEFS += -DQUANTUM_PAINTER_SPI_ENABLE 266 SPI_DRIVER_REQUIRED = yes 267 VPATH += $(DRIVER_PATH)/painter/comms 268 SRC += \ 269 $(QUANTUM_DIR)/painter/qp_comms.c \ 270 $(DRIVER_PATH)/painter/comms/qp_comms_spi.c 271 272 ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET)), yes) 273 OPT_DEFS += -DQUANTUM_PAINTER_SPI_DC_RESET_ENABLE 274 endif 275endif 276 277# If I2C comms is needed, set up the required files 278ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_I2C)), yes) 279 OPT_DEFS += -DQUANTUM_PAINTER_I2C_ENABLE 280 I2C_DRIVER_REQUIRED = yes 281 VPATH += $(DRIVER_PATH)/painter/comms 282 SRC += \ 283 $(QUANTUM_DIR)/painter/qp_comms.c \ 284 $(DRIVER_PATH)/painter/comms/qp_comms_i2c.c 285endif 286 287# Check if LVGL needs to be enabled 288ifeq ($(strip $(QUANTUM_PAINTER_LVGL_INTEGRATION)), yes) 289 include $(QUANTUM_DIR)/painter/lvgl/rules.mk 290endif