~ruther/qmk_firmware

d75ce4862b4fac0605a3757c8e03be8278219cd3 — QMK Bot 3 years ago 9d7f6d1 + e73f8e9
Merge remote-tracking branch 'origin/master' into develop
M keyboards/helix/rev2/config.h => keyboards/helix/rev2/config.h +4 -0
@@ 1,6 1,7 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2018 MakotoKurauchi

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by


@@ 28,6 29,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100

#define SPLIT_LAYER_STATE_ENABLE
#define SPLIT_LED_STATE_ENABLE

/* Use I2C or Serial */
#define USE_SERIAL
//#define USE_MATRIX_I2C

M keyboards/helix/rev2/keymaps/default/keymap.c => keyboards/helix/rev2/keymaps/default/keymap.c +0 -8
@@ 15,14 15,6 @@
 */

#include QMK_KEYBOARD_H
#include "bootloader.h"
#ifdef PROTOCOL_LUFA
#include "lufa.h"
#include "split_util.h"
#endif
#ifdef AUDIO_ENABLE
  #include "audio.h"
#endif

// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.

M keyboards/helix/rev2/keymaps/default/rules.mk => keyboards/helix/rev2/keymaps/default/rules.mk +2 -0
@@ 1,3 1,5 @@
SPLIT_KEYBOARD = yes

LTO_ENABLE = yes  # if firmware size over limit, try this option

# Helix Spacific Build Options

M keyboards/helix/rev2/keymaps/five_rows/keymap.c => keyboards/helix/rev2/keymaps/five_rows/keymap.c +1 -9
@@ 15,15 15,7 @@
 */

#include QMK_KEYBOARD_H
#include "util.h"
#include "bootloader.h"
#ifdef PROTOCOL_LUFA
#include "lufa.h"
#include "split_util.h"
#endif
#ifdef CONSOLE_ENABLE
  #include <print.h>
#endif

#include "layer_number.h"

extern keymap_config_t keymap_config;

M keyboards/helix/rev2/keymaps/five_rows/rules.mk => keyboards/helix/rev2/keymaps/five_rows/rules.mk +2 -0
@@ 1,3 1,5 @@
 SPLIT_KEYBOARD = yes

 CONSOLE_ENABLE = no        # Console for debug
 COMMAND_ENABLE = no        # Commands for debug and configuration
 # CONSOLE_ENABLE and COMMAND_ENABLE

M keyboards/helix/rev2/keymaps/led_test/rules.mk => keyboards/helix/rev2/keymaps/led_test/rules.mk +2 -0
@@ 5,6 5,8 @@
#   See TOP/keyboards/helix/rules.mk for a list of options that can be set.
#   See TOP/docs/config_options.md for more information.
#
SPLIT_KEYBOARD = yes

LTO_ENABLE = no  # if firmware size over limit, try this option

# Helix Spacific Build Options

M keyboards/helix/rev2/local_features.mk => keyboards/helix/rev2/local_features.mk +37 -97
@@ 6,40 6,24 @@
#

KEYBOARD_LOCAL_FEATURES_MK :=

define HELIX_CUSTOMISE_MSG
  $(info Helix Spacific Build Options)
  $(info -  OLED_ENABLE          = $(OLED_ENABLE))
  $(info -  OLED_SELECT          = $(OLED_SELECT))
  $(info -  LED_BACK_ENABLE      = $(LED_BACK_ENABLE))
  $(info -  LED_UNDERGLOW_ENABLE = $(LED_UNDERGLOW_ENABLE))
  $(info -  LED_ANIMATIONS       = $(LED_ANIMATIONS))
  $(info -  IOS_DEVICE_ENABLE    = $(IOS_DEVICE_ENABLE))
  $(info )
endef

define HELIX_HELP_MSG
  $(info Helix keyboard convenient command line option)
  $(info -    make HELIX=<options> helix:<keymap>)
  $(info -    option= oled | core-oled | local-oled | no-oled )
  $(info -            back | no-back   | under      | na   | no-ani )
  $(info -             ios | sc        | split-common | scan | verbose)
  $(info -    eg.)
  $(info -      make HELIX=no-oled       helix:<keymap>)
  $(info -      make HELIX=oled,no-back  helix:<keymap>)
  $(info -      make HELIX=oled,under    helix:<keymap>)
  $(info -      make HELIX=oled,back,na  helix:<keymap>)
  $(info -      make HELIX=oled,back,ios helix:<keymap>)
  $(info )
endef

  ifneq ($(strip $(HELIX)),)
-include $(strip $(HELIX_TOP_DIR)/pico/override_helix_options.mk) ## File dedicated to maintenance

# Parse 'HELIX=xx,yy,zz' option
ifneq ($(strip $(HELIX)),)
    # make HELIX=ios helix/pico:AKEYMAP
    # make HELIX=no-ani helix/pico:AKEYMAP
    # make HELIX=no-oled helix/pico:AKEYMAP
    # make HELIX=ios,no-ani,no-oled helix/pico:AKEYMAP
    define HELIX_OPTION_PARSE
      # parce 'oled' 'back' 'under' 'ios' etc.
      $(if $(SHOW_PARCE),$(info parse .$1.))  #debug
        # parce 'no-ani' 'ios' 'no-oled'
        $(if $(SHOW_PARCE),$(info parse .$1.))  #debug
        $(if $(HELIX_OVERRIDE_PARSE),$(call HELIX_OVERRIDE_PARSE,$1))

      ifeq ($(strip $1),help)
        HELP=on
      ifeq ($(strip $1),ios)
        IOS_DEVICE_ENABLE = yes
      endif
      ifneq ($(filter na no_ani no-ani,$(strip $1)),)
        LED_ANIMATIONS = no
      endif
      ifneq ($(filter nooled no-oled,$(strip $1)),)
        OLED_ENABLE = no


@@ 47,68 31,17 @@ endef
      ifeq ($(strip $1),oled)
        OLED_ENABLE = yes
      endif
      ifneq ($(filter core-oled core_oled newoled new-oled olednew oled-new,$(strip $1)),)
        OLED_ENABLE = yes
        OLED_SELECT = core
      endif
      ifneq ($(filter local-oled local_oled oldoled old-oled oledold oled-old,$(strip $1)),)
        OLED_ENABLE = yes
        OLED_SELECT = local
      endif
      ifneq ($(filter noback no-back nounder no-under,$(strip $1)),)
        LED_BACK_ENABLE = no
        LED_UNDERGLOW_ENABLE = no
      endif
      ifeq ($(strip $1),back)
        LED_BACK_ENABLE = yes
        LED_UNDERGLOW_ENABLE = no
      endif
      ifeq ($(strip $1),under)
        LED_BACK_ENABLE = no
        LED_UNDERGLOW_ENABLE = yes
      endif
      ifneq ($(filter na no_ani no-ani,$(strip $1)),)
        LED_ANIMATIONS = no
      endif
      ifeq ($(strip $1),ios)
        IOS_DEVICE_ENABLE = yes
      endif
      ifneq ($(filter sc split-common split_common,$(strip $1)),)
        SPLIT_KEYBOARD = yes
      endif
      ifneq ($(filter nosc no-sc no-split-common no-split_common,$(strip $1)),)
        SPLIT_KEYBOARD = no
      endif
      ifeq ($(strip $1),scan)
        # use DEBUG_MATRIX_SCAN_RATE
        # see docs/newbs_testing_debugging.md
        OPT_DEFS +=  -DDEBUG_MATRIX_SCAN_RATE
        CONSOLE_ENABLE = yes
        SHOW_VERBOSE_INFO = yes
      endif
      ifeq ($(strip $1),verbose)
        SHOW_VERBOSE_INFO = yes
      endif
      ifeq ($(strip $1),lto)
        LTO_ENABLE = yes
      endif
      ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
        LTO_ENABLE = no
      endif
    endef # end of HELIX_OPTION_PARSE

    COMMA=,
    $(eval $(foreach A_OPTION_NAME,$(subst $(COMMA), ,$(HELIX)),  \
        $(call HELIX_OPTION_PARSE,$(A_OPTION_NAME))))

    ifeq ($(strip $(HELP)),on)
       $(eval $(call HELIX_HELP_MSG))
       $(error )
    endif
    SHOW_HELIX_OPTIONS = yes
  endif
endif

ifneq ($(strip $(SPLIT_KEYBOARD)), yes)
  # In the very near future, all keymaps will be compatible with split_common and this block will be removed.
  SRC += local_drivers/serial.c
  KEYBOARD_PATHS += $(HELIX_TOP_DIR)/local_drivers



@@ 139,7 72,6 @@ ifeq ($(strip $(LED_BACK_ENABLE)), yes)
  RGBLIGHT_ENABLE = yes
  OPT_DEFS += -DRGBLED_BACK
  ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
    $(eval $(call HELIX_CUSTOMISE_MSG))
    $(error LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE both 'yes')
  endif
else ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)


@@ 164,6 96,8 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
           OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
        endif
    else

        # In the very near future, all keymaps will be compatible with QMK standard oled_driver and this block will be removed.
        ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
            $(info Helix/rev2: The following combinations are not supported.)
            $(info - SPLIT_KEYBOARD = $(SPLIT_KEYBOARD)) # yes


@@ 188,15 122,21 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
endif

ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
  $(eval $(call HELIX_CUSTOMISE_MSG))
  ifneq ($(strip $(SHOW_VERBOSE_INFO)),)
     $(info -- RGBLIGHT_ENABLE    = $(RGBLIGHT_ENABLE))
     $(info -- OLED_DRIVER        = $(OLED_DRIVER))
     $(info -- OLED_LOCAL_ENABLE  = $(OLED_LOCAL_ENABLE))
     $(info -- CONSOLE_ENABLE     = $(CONSOLE_ENABLE))
     $(info -- OPT_DEFS           = $(OPT_DEFS))
     $(info -- SPLIT_KEYBOARD     = $(SPLIT_KEYBOARD))
     $(info -- LTO_ENABLE         = $(LTO_ENABLE))
     $(info )
  endif
  $(info Helix Spacific Build Options)
  $(info -  OLED_ENABLE          = $(OLED_ENABLE))
  $(info -  OLED_SELECT          = $(OLED_SELECT))
  $(info -  LED_BACK_ENABLE      = $(LED_BACK_ENABLE))
  $(info -  LED_UNDERGLOW_ENABLE = $(LED_UNDERGLOW_ENABLE))
  $(info -  LED_ANIMATIONS       = $(LED_ANIMATIONS))
  $(info -  IOS_DEVICE_ENABLE    = $(IOS_DEVICE_ENABLE))
  $(info )
  $(info QMK Build Options)
  $(info -- SPLIT_KEYBOARD     = $(SPLIT_KEYBOARD))
  $(info -- RGBLIGHT_ENABLE    = $(RGBLIGHT_ENABLE))
  $(info -- OLED_DRIVER        = $(OLED_DRIVER))
  $(info -- OLED_LOCAL_ENABLE  = $(OLED_LOCAL_ENABLE))
  $(info -- CONSOLE_ENABLE     = $(CONSOLE_ENABLE))
  $(info -- OPT_DEFS           = $(OPT_DEFS))
  $(info -- LTO_ENABLE         = $(LTO_ENABLE))
  $(info )
endif

A keyboards/helix/rev2/override_helix_options.mk => keyboards/helix/rev2/override_helix_options.mk +44 -0
@@ 0,0 1,44 @@
$(info -------------------------)
$(info override_helix_options.mk)
$(info -------------------------)

define HELIX_OVERRIDE_PARSE
      ifeq ($(strip $1),back)
        LED_BACK_ENABLE = yes
        LED_UNDERGLOW_ENABLE = no
      endif
      ifeq ($(strip $1),under)
        LED_BACK_ENABLE = no
        LED_UNDERGLOW_ENABLE = yes
      endif
      ifneq ($(filter led-off led_off noback no-back nounder no-under,$(strip $1)),)
        LED_BACK_ENABLE = no
        LED_UNDERGLOW_ENABLE = no
      endif
      ifneq ($(filter core-oled core_oled newoled new-oled olednew oled-new,$(strip $1)),)
        OLED_ENABLE = yes
        OLED_SELECT = core
      endif
      ifneq ($(filter local-oled local_oled oldoled old-oled oledold oled-old,$(strip $1)),)
        OLED_ENABLE = yes
        OLED_SELECT = local
      endif
      ifneq ($(filter sc split-common split_common,$(strip $1)),)
        SPLIT_KEYBOARD = yes
      endif
      ifneq ($(filter nosc no-sc no-split-common no-split_common,$(strip $1)),)
        SPLIT_KEYBOARD = no
      endif
      ifeq ($(strip $1),scan)
          DEBUG_MATRIX_SCAN_RATE_ENABLE = yes
      endif
      ifeq ($(strip $1),scan-api)
          DEBUG_MATRIX_SCAN_RATE_ENABLE = api
      endif
      ifeq ($(strip $1),lto)
          LTO_ENABLE = yes
      endif
      ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
          LTO_ENABLE = no
      endif
endef # end of HELIX_OVERRIDE_PARSE

M keyboards/helix/rev2/rev2.c => keyboards/helix/rev2/rev2.c +15 -0
@@ 1,3 1,18 @@
/* Copyright 2018 MakotoKurauchi
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#include "helix.h"

// Each keymap.c should use is_keyboard_master() instead of 'is_master'.

M keyboards/helix/rev2/rev2.h => keyboards/helix/rev2/rev2.h +15 -0
@@ 1,3 1,18 @@
/* Copyright 2018 MakotoKurauchi
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#pragma once

#include "helix.h"

M keyboards/helix/rev2/rules.mk => keyboards/helix/rev2/rules.mk +2 -0
@@ 1,5 1,7 @@
KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk

# SPLIT_KEYBOARD = yes

# Helix Spacific Build Options default values
HELIX_ROWS = 5              # Helix Rows is 4 or 5
OLED_ENABLE = yes           # OLED_ENABLE