mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-28 20:18:49 +06:00
f70f45ee67
* rgb_matrix: use a driver ops struct This is intended to avoid #ifdef proliferation on adding more drivers, eg. model01, which use different architectures. * rgb_matrix: document driver struct members * rgb_matrix: remove unused LED testing code * rgb_matrix: don't build into IS31x drivers unless being used * rgb_matrix: refactor make config options This ensures that the necessary files are included for any custom RGB_MATRIX_ENABLE value, without having to add entries here for specific boards. This particularly affects model01 because its controller is integrated and won't be used anywhere else, so it's preferable not to put it in common_features.mk. This now validates the value of RGB_MATRIX_ENABLE. It was necessary to fix an error in ergodox_ez rules.mk using the wrong comment separator, yielding an invalid value. * IS31x drivers: don't write the control registers all the time This is only needed when they are changed. This is done in init() and board- or keymap-specific code is free to make further changes. * rgb_matrix: move structs from chip drivers to rgb_matrix_drivers.c This approach is specific to the rgb_matrix functionality, so keep it neatly separated from the raw chip drivers.
89 lines
3.3 KiB
Makefile
89 lines
3.3 KiB
Makefile
#----------------------------------------------------------------------------
|
|
# On command line:
|
|
#
|
|
# make = Make software.
|
|
#
|
|
# make clean = Clean out built project files.
|
|
#
|
|
# That's pretty much all you need. To compile, always go make clean,
|
|
# followed by make.
|
|
#
|
|
# For advanced users only:
|
|
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
|
# (must have teensy_loader_cli installed).
|
|
#
|
|
#----------------------------------------------------------------------------
|
|
|
|
# # project specific files
|
|
SRC = matrix.c \
|
|
i2c_master.c
|
|
|
|
# MCU name
|
|
MCU = atmega32u4
|
|
|
|
# Processor frequency.
|
|
# This will define a symbol, F_CPU, in all source code files equal to the
|
|
# processor frequency in Hz. You can then use this symbol in your source code to
|
|
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
|
# automatically to create a 32-bit value in your source code.
|
|
#
|
|
# This will be an integer division of F_USB below, as it is sourced by
|
|
# F_USB after it has run through any CPU prescalers. Note that this value
|
|
# does not *change* the processor frequency - it should merely be updated to
|
|
# reflect the processor speed set externally so that the code can use accurate
|
|
# software delays.
|
|
F_CPU = 16000000
|
|
|
|
|
|
#
|
|
# LUFA specific
|
|
#
|
|
# Target architecture (see library "Board Types" documentation).
|
|
ARCH = AVR8
|
|
|
|
# Input clock frequency.
|
|
# This will define a symbol, F_USB, in all source code files equal to the
|
|
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
|
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
|
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
|
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
|
# at the end, this will be done automatically to create a 32-bit value in your
|
|
# source code.
|
|
#
|
|
# If no clock division is performed on the input clock inside the AVR (via the
|
|
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
|
F_USB = $(F_CPU)
|
|
|
|
# Bootloader
|
|
# This definition is optional, and if your keyboard supports multiple bootloaders of
|
|
# different sizes, comment this out, and the correct address will be loaded
|
|
# automatically (+60). See bootloader.mk for all options.
|
|
BOOTLOADER = halfkay
|
|
|
|
# Interrupt driven control endpoint task(+60)
|
|
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
|
|
|
# If you have Left LEDs (see
|
|
# https://geekhack.org/index.php?topic=22780.msg873819#msg873819 for
|
|
# details), include the following define:
|
|
# OPT_DEFS += -DLEFT_LEDS
|
|
|
|
# Build Options
|
|
# comment out to disable the options.
|
|
#
|
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
|
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
|
CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ
|
|
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
UNICODE_ENABLE = yes # Unicode
|
|
SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard
|
|
SLEEP_LED_ENABLE = no
|
|
API_SYSEX_ENABLE = no
|
|
RGBLIGHT_ENABLE = yes
|
|
RGB_MATRIX_ENABLE = no # enable later
|
|
|
|
LAYOUTS = ergodox
|