diff options
Diffstat (limited to 'common_features.mk')
| -rw-r--r-- | common_features.mk | 271 | 
1 files changed, 123 insertions, 148 deletions
diff --git a/common_features.mk b/common_features.mk index f4f79000b3..896fbb0129 100644 --- a/common_features.mk +++ b/common_features.mk @@ -13,8 +13,6 @@  # You should have received a copy of the GNU General Public License  # along with this program.  If not, see <http://www.gnu.org/licenses/>. -SERIAL_PATH := $(QUANTUM_PATH)/serial_link -  QUANTUM_SRC += \      $(QUANTUM_DIR)/quantum.c \      $(QUANTUM_DIR)/send_string.c \ @@ -29,6 +27,7 @@ QUANTUM_SRC += \      $(QUANTUM_DIR)/keyboard.c \      $(QUANTUM_DIR)/keymap_common.c \      $(QUANTUM_DIR)/keycode_config.c \ +    $(QUANTUM_DIR)/sync_timer.c \      $(QUANTUM_DIR)/logging/debug.c \      $(QUANTUM_DIR)/logging/sendchar.c \ @@ -45,19 +44,6 @@ else ifeq ($(strip $(DEBUG_MATRIX_SCAN_RATE_ENABLE)), api)      OPT_DEFS += -DDEBUG_MATRIX_SCAN_RATE  endif -ifeq ($(strip $(API_SYSEX_ENABLE)), yes) -    OPT_DEFS += -DAPI_SYSEX_ENABLE -    OPT_DEFS += -DAPI_ENABLE -    MIDI_ENABLE=yes -    SRC += $(QUANTUM_DIR)/api/api_sysex.c -    SRC += $(QUANTUM_DIR)/api.c -endif - -ifeq ($(strip $(COMMAND_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/command.c -    OPT_DEFS += -DCOMMAND_ENABLE -endif -  AUDIO_ENABLE ?= no  ifeq ($(strip $(AUDIO_ENABLE)), yes)      ifeq ($(PLATFORM),CHIBIOS) @@ -82,7 +68,7 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes)      SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c      SRC += $(QUANTUM_DIR)/process_keycode/process_clicky.c      SRC += $(QUANTUM_DIR)/audio/audio.c ## common audio code, hardware agnostic -    SRC += $(QUANTUM_DIR)/audio/driver_$(PLATFORM_KEY)_$(strip $(AUDIO_DRIVER)).c +    SRC += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/audio_$(strip $(AUDIO_DRIVER)).c      SRC += $(QUANTUM_DIR)/audio/voices.c      SRC += $(QUANTUM_DIR)/audio/luts.c  endif @@ -121,10 +107,43 @@ ifeq ($(strip $(MOUSEKEY_ENABLE)), yes)      SRC += $(QUANTUM_DIR)/mousekey.c  endif +VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick cirque_pinnacle_i2c cirque_pinnacle_spi pmw3360 pimoroni_trackball custom +POINTING_DEVICE_DRIVER ?= custom  ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) -    OPT_DEFS += -DPOINTING_DEVICE_ENABLE -    MOUSE_ENABLE := yes -    SRC += $(QUANTUM_DIR)/pointing_device.c +    ifeq ($(filter $(POINTING_DEVICE_DRIVER),$(VALID_POINTING_DEVICE_DRIVER_TYPES)),) +        $(error POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type) +    else +        OPT_DEFS += -DPOINTING_DEVICE_ENABLE +        MOUSE_ENABLE := yes +        SRC += $(QUANTUM_DIR)/pointing_device.c +        SRC += $(QUANTUM_DIR)/pointing_device_drivers.c +        ifneq ($(strip $(POINTING_DEVICE_DRIVER)), custom) +            SRC += drivers/sensors/$(strip $(POINTING_DEVICE_DRIVER)).c +            OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(shell echo $(POINTING_DEVICE_DRIVER) | tr '[:lower:]' '[:upper:]')) +        endif +        OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(POINTING_DEVICE_DRIVER)) +        ifeq ($(strip $(POINTING_DEVICE_DRIVER)), adns9800) +            OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE +            QUANTUM_LIB_SRC += spi_master.c +        else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick) +            OPT_DEFS += -DSTM32_ADC -DHAL_USE_ADC=TRUE +            LIB_SRC += analog.c +        else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_i2c) +            OPT_DEFS += -DSTM32_I2C -DHAL_USE_I2C=TRUE +            SRC += drivers/sensors/cirque_pinnacle.c +            QUANTUM_LIB_SRC += i2c_master.c +        else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_spi) +            OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE +            SRC += drivers/sensors/cirque_pinnacle.c +            QUANTUM_LIB_SRC += spi_master.c +        else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pimoroni_trackball) +            OPT_DEFS += -DSTM32_SPI -DHAL_USE_I2C=TRUE +            QUANTUM_LIB_SRC += i2c_master.c +        else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pmw3360) +            OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE +            QUANTUM_LIB_SRC += spi_master.c +        endif +    endif  endif  VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi @@ -156,37 +175,18 @@ else      ifeq ($(PLATFORM),AVR)        # Automatically provided by avr-libc, nothing required      else ifeq ($(PLATFORM),CHIBIOS) -      ifeq ($(MCU_SERIES), STM32F3xx) -        SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c -        SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c -        OPT_DEFS += -DEEPROM_EMU_STM32F303xC -        OPT_DEFS += -DSTM32_EEPROM_ENABLE -      else ifeq ($(MCU_SERIES), STM32F1xx) -        SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c -        SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c -        OPT_DEFS += -DEEPROM_EMU_STM32F103xB -        OPT_DEFS += -DSTM32_EEPROM_ENABLE -      else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F072xB) -        SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c -        SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c -        OPT_DEFS += -DEEPROM_EMU_STM32F072xB -        OPT_DEFS += -DSTM32_EEPROM_ENABLE -      else ifeq ($(MCU_SERIES)_$(MCU_LDSCRIPT), STM32F0xx_STM32F042x6) - -        # Stack sizes: Since this chip has limited RAM capacity, the stack area needs to be reduced. -        # This ensures that the EEPROM page buffer fits into RAM -        USE_PROCESS_STACKSIZE = 0x600 -        USE_EXCEPTIONS_STACKSIZE = 0x300 - +      ifneq ($(filter STM32F3xx_% STM32F1xx_% %_STM32F401xC %_STM32F401xE %_STM32F405xG %_STM32F411xE %_STM32F072xB %_STM32F042x6 %_GD32VF103xB %_GD32VF103x8, $(MCU_SERIES)_$(MCU_LDSCRIPT)),) +        OPT_DEFS += -DEEPROM_DRIVER +        COMMON_VPATH += $(DRIVER_PATH)/eeprom +        SRC += eeprom_driver.c          SRC += $(PLATFORM_COMMON_DIR)/eeprom_stm32.c          SRC += $(PLATFORM_COMMON_DIR)/flash_stm32.c -        OPT_DEFS += -DEEPROM_EMU_STM32F042x6 -        OPT_DEFS += -DSTM32_EEPROM_ENABLE        else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)          OPT_DEFS += -DEEPROM_DRIVER          COMMON_VPATH += $(DRIVER_PATH)/eeprom          COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom -        SRC += eeprom_driver.c eeprom_stm32_L0_L1.c +        SRC += eeprom_driver.c +        SRC += eeprom_stm32_L0_L1.c        else          # This will effectively work the same as "transient" if not supported by the chip          SRC += $(PLATFORM_COMMON_DIR)/eeprom_teensy.c @@ -265,7 +265,7 @@ endif  endif  RGB_MATRIX_ENABLE ?= no -VALID_RGB_MATRIX_TYPES := AW20216 IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 WS2812 custom +VALID_RGB_MATRIX_TYPES := AW20216 IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 CKLED2001 WS2812 custom  ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)      ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),) @@ -321,6 +321,13 @@ endif          QUANTUM_LIB_SRC += i2c_master.c      endif +    ifeq ($(strip $(RGB_MATRIX_DRIVER)), CKLED2001) +        OPT_DEFS += -DCKLED2001 -DSTM32_I2C -DHAL_USE_I2C=TRUE +        COMMON_VPATH += $(DRIVER_PATH)/led +        SRC += ckled2001.c +        QUANTUM_LIB_SRC += i2c_master.c +    endif +      ifeq ($(strip $(RGB_MATRIX_DRIVER)), WS2812)          OPT_DEFS += -DWS2812          WS2812_DRIVER_REQUIRED := yes @@ -350,17 +357,6 @@ ifeq ($(strip $(PRINTING_ENABLE)), yes)      SRC += $(TMK_DIR)/protocol/serial_uart.c  endif -ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes) -    SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c) -    SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c) -    SERIAL_DEFS += -DSERIAL_LINK_ENABLE -    COMMON_VPATH += $(SERIAL_PATH) - -    SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC)) -    OPT_DEFS += $(SERIAL_DEFS) -    VAPTH += $(SERIAL_PATH) -endif -  VARIABLE_TRACE ?= no  ifneq ($(strip $(VARIABLE_TRACE)),no)      SRC += $(QUANTUM_DIR)/variable_trace.c @@ -370,8 +366,11 @@ ifneq ($(strip $(VARIABLE_TRACE)),no)      endif  endif -ifeq ($(strip $(LCD_ENABLE)), yes) -    CIE1931_CURVE := yes +ifeq ($(strip $(SLEEP_LED_ENABLE)), yes) +    SRC += $(PLATFORM_COMMON_DIR)/sleep_led.c +    OPT_DEFS += -DSLEEP_LED_ENABLE + +    NO_SUSPEND_POWER_DOWN := yes  endif  VALID_BACKLIGHT_TYPES := pwm timer software custom @@ -437,10 +436,6 @@ ifeq ($(strip $(APA102_DRIVER_REQUIRED)), yes)      SRC += apa102.c  endif -ifeq ($(strip $(VISUALIZER_ENABLE)), yes) -    CIE1931_CURVE := yes -endif -  ifeq ($(strip $(CIE1931_CURVE)), yes)      OPT_DEFS += -DUSE_CIE1931_CURVE      LED_TABLES := yes @@ -456,40 +451,15 @@ ifeq ($(strip $(TERMINAL_ENABLE)), yes)      OPT_DEFS += -DUSER_PRINT  endif -ifeq ($(strip $(WPM_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/wpm.c -    OPT_DEFS += -DWPM_ENABLE -endif - -ifeq ($(strip $(ENCODER_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/encoder.c -    OPT_DEFS += -DENCODER_ENABLE -endif - -ifeq ($(strip $(VELOCIKEY_ENABLE)), yes) -    OPT_DEFS += -DVELOCIKEY_ENABLE -    SRC += $(QUANTUM_DIR)/velocikey.c -endif -  ifeq ($(strip $(VIA_ENABLE)), yes)      DYNAMIC_KEYMAP_ENABLE := yes      RAW_ENABLE := yes -    BOOTMAGIC_ENABLE := lite +    BOOTMAGIC_ENABLE := yes      SRC += $(QUANTUM_DIR)/via.c      OPT_DEFS += -DVIA_ENABLE  endif -ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes) -    OPT_DEFS += -DDYNAMIC_KEYMAP_ENABLE -    SRC += $(QUANTUM_DIR)/dynamic_keymap.c -endif - -ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes) -    OPT_DEFS += -DDIP_SWITCH_ENABLE -    SRC += $(QUANTUM_DIR)/dip_switch.c -endif - -VALID_MAGIC_TYPES := yes lite +VALID_MAGIC_TYPES := yes  BOOTMAGIC_ENABLE ?= no  ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)    ifeq ($(filter $(BOOTMAGIC_ENABLE),$(VALID_MAGIC_TYPES)),) @@ -568,23 +538,19 @@ ifeq ($(strip $(CRC_ENABLE)), yes)      SRC += crc.c  endif -HAPTIC_ENABLE ?= no -ifneq ($(strip $(HAPTIC_ENABLE)),no) +ifeq ($(strip $(HAPTIC_ENABLE)),yes)      COMMON_VPATH += $(DRIVER_PATH)/haptic -    OPT_DEFS += -DHAPTIC_ENABLE -    SRC += $(QUANTUM_DIR)/haptic.c -    SRC += $(QUANTUM_DIR)/process_keycode/process_haptic.c -endif -ifneq ($(filter DRV2605L, $(HAPTIC_ENABLE)), ) -    SRC += DRV2605L.c -    QUANTUM_LIB_SRC += i2c_master.c -    OPT_DEFS += -DDRV2605L -endif +    ifneq ($(filter DRV2605L, $(HAPTIC_DRIVER)), ) +        SRC += DRV2605L.c +        QUANTUM_LIB_SRC += i2c_master.c +        OPT_DEFS += -DDRV2605L +    endif -ifneq ($(filter SOLENOID, $(HAPTIC_ENABLE)), ) -    SRC += solenoid.c -    OPT_DEFS += -DSOLENOID_ENABLE +    ifneq ($(filter SOLENOID, $(HAPTIC_DRIVER)), ) +        SRC += solenoid.c +        OPT_DEFS += -DSOLENOID_ENABLE +    endif  endif  ifeq ($(strip $(HD44780_ENABLE)), yes) @@ -617,8 +583,6 @@ ifeq ($(strip $(ST7565_ENABLE)), yes)      SRC += st7565.c  endif -include $(DRIVER_PATH)/qwiic/qwiic.mk -  ifeq ($(strip $(UCIS_ENABLE)), yes)      OPT_DEFS += -DUCIS_ENABLE      UNICODE_COMMON := yes @@ -641,60 +605,52 @@ ifeq ($(strip $(UNICODE_COMMON)), yes)      SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c  endif -SPACE_CADET_ENABLE ?= yes -ifeq ($(strip $(SPACE_CADET_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c -    OPT_DEFS += -DSPACE_CADET_ENABLE -endif -  MAGIC_ENABLE ?= yes  ifeq ($(strip $(MAGIC_ENABLE)), yes)      SRC += $(QUANTUM_DIR)/process_keycode/process_magic.c      OPT_DEFS += -DMAGIC_KEYCODE_ENABLE  endif -GRAVE_ESC_ENABLE ?= yes -ifeq ($(strip $(GRAVE_ESC_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/process_keycode/process_grave_esc.c -    OPT_DEFS += -DGRAVE_ESC_ENABLE -endif - -ifeq ($(strip $(DYNAMIC_MACRO_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/process_keycode/process_dynamic_macro.c -    OPT_DEFS += -DDYNAMIC_MACRO_ENABLE -endif - -ifeq ($(strip $(COMBO_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c -    OPT_DEFS += -DCOMBO_ENABLE +ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes) +    SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c +    OPT_DEFS += -DAUTO_SHIFT_ENABLE +    ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes) +        OPT_DEFS += -DAUTO_SHIFT_MODIFIERS +    endif  endif -ifeq ($(strip $(KEY_OVERRIDE_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/process_keycode/process_key_override.c -    OPT_DEFS += -DKEY_OVERRIDE_ENABLE +ifeq ($(strip $(PS2_MOUSE_ENABLE)), yes) +    PS2_ENABLE := yes +    SRC += ps2_mouse.c +    OPT_DEFS += -DPS2_MOUSE_ENABLE +    OPT_DEFS += -DMOUSE_ENABLE  endif -ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c -    OPT_DEFS += -DTAP_DANCE_ENABLE +ifeq ($(strip $(PS2_USE_BUSYWAIT)), yes) +    PS2_ENABLE := yes +    SRC += ps2_busywait.c +    SRC += ps2_io_avr.c +    OPT_DEFS += -DPS2_USE_BUSYWAIT  endif -ifeq ($(strip $(KEY_LOCK_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/process_keycode/process_key_lock.c -    OPT_DEFS += -DKEY_LOCK_ENABLE +ifeq ($(strip $(PS2_USE_INT)), yes) +    PS2_ENABLE := yes +    SRC += ps2_interrupt.c +    SRC += ps2_io.c +    OPT_DEFS += -DPS2_USE_INT  endif -ifeq ($(strip $(LEADER_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c -    OPT_DEFS += -DLEADER_ENABLE +ifeq ($(strip $(PS2_USE_USART)), yes) +    PS2_ENABLE := yes +    SRC += ps2_usart.c +    SRC += ps2_io.c +    OPT_DEFS += -DPS2_USE_USART  endif -ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes) -    SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c -    OPT_DEFS += -DAUTO_SHIFT_ENABLE -    ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes) -        OPT_DEFS += -DAUTO_SHIFT_MODIFIERS -    endif +ifeq ($(strip $(PS2_ENABLE)), yes) +    COMMON_VPATH += $(DRIVER_PATH)/ps2 +    COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/ps2 +    OPT_DEFS += -DPS2_ENABLE  endif  JOYSTICK_ENABLE ?= no @@ -717,11 +673,6 @@ ifeq ($(strip $(JOYSTICK_ENABLE)), yes)      endif  endif -DIGITIZER_ENABLE ?= no -ifneq ($(strip $(DIGITIZER_ENABLE)), no) -    SRC += $(QUANTUM_DIR)/digitizer.c -endif -  USBPD_ENABLE ?= no  VALID_USBPD_DRIVER_TYPES = custom vendor  USBPD_DRIVER ?= vendor @@ -745,3 +696,27 @@ ifeq ($(strip $(USBPD_ENABLE)), yes)          endif      endif  endif + +BLUETOOTH_ENABLE ?= no +VALID_BLUETOOTH_DRIVER_TYPES := AdafruitBLE RN42 custom +ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) +    ifeq ($(filter $(strip $(BLUETOOTH_DRIVER)),$(VALID_BLUETOOTH_DRIVER_TYPES)),) +        $(error "$(BLUETOOTH_DRIVER)" is not a valid Bluetooth driver type) +    endif +    OPT_DEFS += -DBLUETOOTH_ENABLE +    NO_USB_STARTUP_CHECK := yes +    COMMON_VPATH += $(DRIVER_PATH)/bluetooth +    SRC += outputselect.c + +    ifeq ($(strip $(BLUETOOTH_DRIVER)), AdafruitBLE) +        OPT_DEFS += -DMODULE_ADAFRUIT_BLE +        SRC += analog.c +        SRC += $(DRIVER_PATH)/bluetooth/adafruit_ble.cpp +        QUANTUM_LIB_SRC += spi_master.c +    endif + +    ifeq ($(strip $(BLUETOOTH_DRIVER)), RN42) +        OPT_DEFS += -DMODULE_RN42 +        SRC += $(TMK_DIR)/protocol/serial_uart.c +    endif +endif  | 
