Browse Source

Split out HAPTIC_ENABLE to have separate DRIVER option (#14854)

* DRIVER -> ENABLE

* Update generic_features.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update common_features.mk

Co-authored-by: Ryan <fauxpark@gmail.com>
Joel Challis 3 năm trước cách đây
mục cha
commit
01b702bece

+ 10 - 14
common_features.mk

@@ -495,23 +495,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)

+ 5 - 2
docs/feature_haptic_feedback.md

@@ -4,9 +4,12 @@
 
 The following options are currently available for haptic feedback in `rules.mk`:
 
-`HAPTIC_ENABLE += DRV2605L`
+```
+HAPTIC_ENABLE = yes
 
-`HAPTIC_ENABLE += SOLENOID`
+HAPTIC_DRIVER += DRV2605L
+HAPTIC_DRIVER += SOLENOID
+```
 
 ## Known Supported Hardware
 

+ 5 - 2
docs/ja/feature_haptic_feedback.md

@@ -9,9 +9,12 @@
 
 現在のところ、`rules.mk` で触覚フィードバック用に以下のオプションを利用可能です:
 
-`HAPTIC_ENABLE += DRV2605L`
+```
+HAPTIC_ENABLE = yes
 
-`HAPTIC_ENABLE += SOLENOID`
+HAPTIC_DRIVER += DRV2605L
+HAPTIC_DRIVER += SOLENOID
+```
 
 ## サポートされる既知のハードウェア
 

+ 1 - 0
generic_features.mk

@@ -25,6 +25,7 @@ GENERIC_FEATURES = \
     DYNAMIC_MACRO \
     ENCODER \
     GRAVE_ESC \
+    HAPTIC \
     KEY_LOCK \
     KEY_OVERRIDE \
     LEADER \

+ 2 - 1
keyboards/boston_meetup/2019/rules.mk

@@ -22,6 +22,7 @@ AUDIO_ENABLE = yes          # Audio output
 RGBLIGHT_ENABLE = no
 RGB_MATRIX_ENABLE = no
 RGB_MATRIX_DRIVER = WS2812
-HAPTIC_ENABLE += DRV2605L
+HAPTIC_ENABLE = yes
+HAPTIC_DRIVER = DRV2605L
 OLED_ENABLE = yes
 OLED_DRIVER = SSD1306

+ 2 - 1
keyboards/c39/keymaps/drashna/rules.mk

@@ -13,6 +13,7 @@ COMMAND_ENABLE = yes
 NKRO_ENABLE = yes
 AUDIO_ENABLE = yes
 UNICODE_ENABLE = yes
-HAPTIC_ENABLE = SOLENOID
+HAPTIC_ENABLE = yes
+HAPTIC_DRIVER = SOLENOID
 
 RGBLIGHT_STARTUP_ANIMATION = yes

+ 2 - 1
keyboards/hadron/ver3/rules.mk

@@ -21,7 +21,8 @@ AUDIO_ENABLE = yes
 RGBLIGHT_ENABLE = yes
 RGB_MATRIX_ENABLE = no # once arm_rgb is implemented
 RGB_MATRIX_DRIVER = WS2812
-HAPTIC_ENABLE += DRV2605L
+HAPTIC_ENABLE = yes
+HAPTIC_DRIVER = DRV2605L
 OLED_ENABLE = yes
 OLED_DRIVER = SSD1306
 ENCODER_ENABLER = yes

+ 2 - 1
keyboards/ibm/model_m_4th_gen/overnumpad_1xb/rules.mk

@@ -22,4 +22,5 @@ ENCODER_ENABLE = no         # Enable rotary encoder support
 AUDIO_ENABLE = no           # Audio output
 KEYBOARD_SHARED_EP = yes    # Free up some extra endpoints - needed if console+mouse+extra
 
-HAPTIC_ENABLE += SOLENOID
+HAPTIC_ENABLE = yes
+HAPTIC_DRIVER = SOLENOID

+ 4 - 3
keyboards/splitkb/zima/rules.mk

@@ -7,7 +7,7 @@ BOOTLOADER = atmel-dfu
 # Build Options
 #   change yes to no to disable
 #
-BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
+BOOTMAGIC_ENABLE = no      # Enable Bootmagic Lite
 MOUSEKEY_ENABLE = no       # Mouse keys
 EXTRAKEY_ENABLE = yes      # Audio control and System control
 CONSOLE_ENABLE = no        # Console for debug
@@ -22,7 +22,8 @@ AUDIO_ENABLE = yes         # Audio output
 
 ENCODER_ENABLE = yes       # ENables the use of one or more encoders
 OLED_ENABLE = yes
-OLED_DRIVER = SSD1306   # Enables the use of OLED displays
-HAPTIC_ENABLE += DRV2605L  # Supported but not included by defaut
+OLED_DRIVER = SSD1306      # Enables the use of OLED displays
+HAPTIC_ENABLE = yes        # Supported but not included by defaut
+HAPTIC_DRIVER = DRV2605L
 
 LTO_ENABLE = yes

+ 2 - 1
keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/rules.mk

@@ -22,4 +22,5 @@ ENCODER_ENABLE = no         # Enable rotary encoder support
 AUDIO_ENABLE = no           # Audio output
 KEYBOARD_SHARED_EP = yes    # Free up some extra endpoints - needed if console+mouse+extra
 
-HAPTIC_ENABLE += SOLENOID
+HAPTIC_ENABLE = yes
+HAPTIC_DRIVER = SOLENOID

+ 3 - 1
keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/rules.mk

@@ -22,5 +22,7 @@ ENCODER_ENABLE = no         # Enable rotary encoder support
 AUDIO_ENABLE = no           # Audio output
 KEYBOARD_SHARED_EP = yes    # Free up some extra endpoints - needed if console+mouse+extra
 
-HAPTIC_ENABLE += SOLENOID
+HAPTIC_ENABLE = yes
+HAPTIC_DRIVER = SOLENOID
+
 LAYOUTS = fullsize_ansi fullsize_iso

+ 2 - 1
keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/rules.mk

@@ -22,4 +22,5 @@ ENCODER_ENABLE = no         # Enable rotary encoder support
 AUDIO_ENABLE = no           # Audio output
 KEYBOARD_SHARED_EP = yes    # Free up some extra endpoints - needed if console+mouse+extra
 
-HAPTIC_ENABLE += SOLENOID
+HAPTIC_ENABLE = yes
+HAPTIC_DRIVER = SOLENOID

+ 2 - 1
keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/rules.mk

@@ -22,4 +22,5 @@ ENCODER_ENABLE = no         # Enable rotary encoder support
 AUDIO_ENABLE = no           # Audio output
 KEYBOARD_SHARED_EP = yes    # Free up some extra endpoints - needed if console+mouse+extra
 
-HAPTIC_ENABLE += SOLENOID
+HAPTIC_ENABLE = yes
+HAPTIC_DRIVER = SOLENOID

+ 2 - 1
keyboards/xw60/rules.mk

@@ -17,6 +17,7 @@ NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: ht
 BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 AUDIO_ENABLE = no           # Audio output
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.
-HAPTIC_ENABLE += SOLENOID
+HAPTIC_ENABLE = yes
+HAPTIC_DRIVER = SOLENOID
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend

+ 0 - 1
layouts/community/ortho_4x12/drashna/rules.mk

@@ -28,7 +28,6 @@ ifeq ($(strip $(KEYBOARD)), planck/light)
     RGBLIGHT_ENABLE             = yes
     RGBLIGHT_STARTUP_ANIMATION  = yes
     AUDIO_ENABLE       			= yes
-    # HAPTIC_ENABLE               += SOLENOID
 endif
 ifeq ($(strip $(KEYBOARD)), planck/ez)
     RGBLIGHT_ENABLE             = no

+ 0 - 5
lib/python/qmk/info.py

@@ -112,11 +112,6 @@ def _extract_features(info_data, rules):
     if rules.get('BOOTMAGIC_ENABLE') == 'full':
         rules['BOOTMAGIC_ENABLE'] = 'on'
 
-    # Skip non-boolean features we haven't implemented special handling for
-    for feature in ('HAPTIC_ENABLE',):
-        if rules.get(feature):
-            del rules[feature]
-
     # Process the rest of the rules as booleans
     for key, value in rules.items():
         if key.endswith('_ENABLE'):