Skip to content

Commit

Permalink
rgblight: driver selection cleanups (qmk#21558)
Browse files Browse the repository at this point in the history
  • Loading branch information
fauxpark authored Aug 15, 2023
1 parent 3ece80f commit 1c069b1
Show file tree
Hide file tree
Showing 43 changed files with 27 additions and 44 deletions.
12 changes: 4 additions & 8 deletions builddefs/common_features.mk
Original file line number Diff line number Diff line change
Expand Up @@ -317,14 +317,10 @@ ifneq ($(strip $(FLASH_DRIVER)), none)
endif

RGBLIGHT_ENABLE ?= no
VALID_RGBLIGHT_TYPES := WS2812 APA102 custom

ifeq ($(strip $(RGBLIGHT_CUSTOM_DRIVER)), yes)
RGBLIGHT_DRIVER ?= custom
endif
VALID_RGBLIGHT_TYPES := ws2812 apa102 custom

ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
RGBLIGHT_DRIVER ?= WS2812
RGBLIGHT_DRIVER ?= ws2812

ifeq ($(filter $(RGBLIGHT_DRIVER),$(VALID_RGBLIGHT_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid RGBLIGHT_DRIVER,RGBLIGHT_DRIVER="$(RGBLIGHT_DRIVER)" is not a valid RGB type)
Expand All @@ -338,11 +334,11 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
RGB_KEYCODES_ENABLE := yes
endif

ifeq ($(strip $(RGBLIGHT_DRIVER)), WS2812)
ifeq ($(strip $(RGBLIGHT_DRIVER)), ws2812)
WS2812_DRIVER_REQUIRED := yes
endif

ifeq ($(strip $(RGBLIGHT_DRIVER)), APA102)
ifeq ($(strip $(RGBLIGHT_DRIVER)), apa102)
APA102_DRIVER_REQUIRED := yes
endif

Expand Down
2 changes: 1 addition & 1 deletion builddefs/show_options.mk
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ HARDWARE_OPTION_NAMES = \
BACKLIGHT_ENABLE \
BACKLIGHT_DRIVER \
RGBLIGHT_ENABLE \
RGBLIGHT_CUSTOM_DRIVER \
RGBLIGHT_DRIVER \
RGB_MATRIX_ENABLE \
RGB_MATRIX_DRIVER \
CIE1931_CURVE \
Expand Down
1 change: 1 addition & 0 deletions data/mappings/info_rules.hjson
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
"PS2_ENABLE": {"info_key": "ps2.enabled", "value_type": "bool"},
"PS2_MOUSE_ENABLE": {"info_key": "ps2.mouse_enabled", "value_type": "bool"},
"RGB_MATRIX_DRIVER": {"info_key": "rgb_matrix.driver"},
"RGBLIGHT_DRIVER": {"info_key": "rgblight.driver"},
"SECURE_ENABLE": {"info_key": "secure.enabled", "value_type": "bool"},
"SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"},
"SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false},
Expand Down
4 changes: 4 additions & 0 deletions data/schemas/keyboard.jsonschema
Original file line number Diff line number Diff line change
Expand Up @@ -477,6 +477,10 @@
}
},
"brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"driver": {
"type": "string",
"enum": ["apa102", "custom", "ws2812"]
},
"hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"layers": {
"type": "object",
Expand Down
2 changes: 1 addition & 1 deletion docs/feature_rgblight.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ For APA102 LEDs, add the following to your `rules.mk`:

```make
RGBLIGHT_ENABLE = yes
RGBLIGHT_DRIVER = APA102
RGBLIGHT_DRIVER = apa102
```

At minimum you must define the data pin your LED strip is connected to, and the number of LEDs in the strip, in your `config.h`. For APA102 LEDs, you must also define the clock pin. If your keyboard has onboard RGB LEDs, and you are simply creating a keymap, you usually won't need to modify these.
Expand Down
1 change: 1 addition & 0 deletions keyboards/capsunlocked/cu75/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"levels": 8
},
"rgblight": {
"driver": "custom",
"hue_steps": 10,
"led_count": 24
},
Expand Down
1 change: 0 additions & 1 deletion keyboards/capsunlocked/cu75/keymaps/default/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ NKRO_ENABLE = yes
BACKLIGHT_ENABLE = yes # Disable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = yes # Disable RGB underlight
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
SLEEP_LED_ENABLE = yes

ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
Expand Down
1 change: 0 additions & 1 deletion keyboards/capsunlocked/cu75/keymaps/iso/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ NKRO_ENABLE = yes
# BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = no # Disable RGB underlight
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
SLEEP_LED_ENABLE = yes

ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled
Expand Down
2 changes: 1 addition & 1 deletion keyboards/handwired/onekey/keymaps/apa102/rules.mk
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
RGBLIGHT_ENABLE = yes
RGBLIGHT_DRIVER = APA102
RGBLIGHT_DRIVER = apa102
1 change: 0 additions & 1 deletion keyboards/handwired/uthol/rev2/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,3 @@ EXTRAKEY_ENABLE = yes
NKRO_ENABLE = yes
LTO_ENABLE = yes
RGBLIGHT_ENABLE = yes
RGBLIGHT_DRIVER = WS2812
1 change: 0 additions & 1 deletion keyboards/handwired/uthol/rev3/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,3 @@ WPM_ENABLE = yes
EXTRAKEY_ENABLE = yes
ENCODER_ENABLE = yes
RGBLIGHT_ENABLE = yes
RGBLIGHT_DRIVER = WS2812
4 changes: 0 additions & 4 deletions keyboards/kprepublic/jj40/keymaps/fun40/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,5 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID

RGBLIGHT_ENABLE = yes
RGBLIGHT_CUSTOM_DRIVER = yes
DISABLE_WS2812 = yes


SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

1 change: 0 additions & 1 deletion keyboards/kprepublic/jj40/keymaps/waples/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,4 @@ CONSOLE_ENABLE = no
COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
RGBLIGHT_CUSTOM_DRIVER = yes
KEY_LOCK_ENABLE = yes
1 change: 0 additions & 1 deletion keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable RGB underlight
RGBLIGHT_CUSTOM_DRIVER = no # RGB code is implemented in lefkeyboards, not WS2812
SLEEP_LED_ENABLE = yes
TAP_DANCE_ENABLE = yes

Expand Down
1 change: 1 addition & 0 deletions keyboards/lfkeyboards/lfk78/revb/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"levels": 8
},
"rgblight": {
"driver": "custom",
"hue_steps": 10,
"led_count": 31
},
Expand Down
1 change: 1 addition & 0 deletions keyboards/lfkeyboards/lfk78/revc/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"levels": 8
},
"rgblight": {
"driver": "custom",
"hue_steps": 10,
"led_count": 27
},
Expand Down
1 change: 1 addition & 0 deletions keyboards/lfkeyboards/lfk78/revj/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"levels": 8
},
"rgblight": {
"driver": "custom",
"hue_steps": 10,
"led_count": 27
},
Expand Down
1 change: 0 additions & 1 deletion keyboards/lfkeyboards/lfk78/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lfkeyboards, not qmk base
SLEEP_LED_ENABLE = yes

ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
Expand Down
3 changes: 3 additions & 0 deletions keyboards/lfkeyboards/lfk87/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
"driver": "custom",
"levels": 10
},
"rgblight": {
"driver": "custom"
},
"ws2812": {
"pin": "F4"
},
Expand Down
1 change: 0 additions & 1 deletion keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ AUDIO_ENABLE = yes # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable RGB underlight
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
SLEEP_LED_ENABLE = yes
TAP_DANCE_ENABLE = yes

Expand Down
1 change: 0 additions & 1 deletion keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ NKRO_ENABLE = yes
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = yes # Audio output
RGBLIGHT_ENABLE = yes # Enable RGB underlight
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
SLEEP_LED_ENABLE = yes

ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
Expand Down
1 change: 0 additions & 1 deletion keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ AUDIO_ENABLE = yes # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes # Enable RGB underlight
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
SLEEP_LED_ENABLE = yes

ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
Expand Down
1 change: 0 additions & 1 deletion keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ NKRO_ENABLE = yes
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = yes # Audio output
RGBLIGHT_ENABLE = yes # Enable RGB underlight
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
SLEEP_LED_ENABLE = yes

ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
Expand Down
1 change: 0 additions & 1 deletion keyboards/lfkeyboards/lfk87/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = yes # Audio output
RGBLIGHT_ENABLE = yes # Enable RGB underlight
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
SLEEP_LED_ENABLE = yes

ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
Expand Down
1 change: 1 addition & 0 deletions keyboards/lfkeyboards/lfkpad/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"device_version": "0.0.1"
},
"rgblight": {
"driver": "custom",
"hue_steps": 10,
"led_count": 28
},
Expand Down
1 change: 0 additions & 1 deletion keyboards/lfkeyboards/lfkpad/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lfkeyboards, not qmk base
AUDIO_ENABLE = no # Audio output
SLEEP_LED_ENABLE = yes

Expand Down
1 change: 1 addition & 0 deletions keyboards/lfkeyboards/mini1800/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
"levels": 10
},
"rgblight": {
"driver": "custom",
"hue_steps": 10,
"led_count": 26
},
Expand Down
3 changes: 0 additions & 3 deletions keyboards/lfkeyboards/mini1800/reva/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = yes # Audio output

# RGB code is implemented in lfkeyboards, not WS2812
RGBLIGHT_CUSTOM_DRIVER = yes
SLEEP_LED_ENABLE = yes

ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
Expand Down
3 changes: 0 additions & 3 deletions keyboards/lfkeyboards/mini1800/revc/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = yes # Audio output

# RGB code is implemented in lfkeyboards, not WS2812
RGBLIGHT_CUSTOM_DRIVER = yes
SLEEP_LED_ENABLE = yes

ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
Expand Down
1 change: 1 addition & 0 deletions keyboards/lfkeyboards/smk65/revb/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"levels": 8
},
"rgblight": {
"driver": "custom",
"hue_steps": 10,
"led_count": 20
},
Expand Down
1 change: 0 additions & 1 deletion keyboards/lfkeyboards/smk65/revb/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
#
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
AUDIO_ENABLE = no # Audio output

# Extra source files for IS3731 lighting
Expand Down
1 change: 1 addition & 0 deletions keyboards/lfkeyboards/smk65/revf/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"processor": "atmega32u4",
"bootloader": "halfkay",
"rgblight": {
"driver": "custom",
"led_count": 28
},
"layouts": {
Expand Down
1 change: 0 additions & 1 deletion keyboards/lfkeyboards/smk65/revf/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,3 @@
# change yes to no to disable
#
RGBLIGHT_ENABLE = no # TODO: Enable keyboard RGB underglow
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
1 change: 1 addition & 0 deletions keyboards/matrix/noah/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"device_version": "0.0.1"
},
"rgblight": {
"driver": "custom",
"led_count": 7
},
"ws2812": {
Expand Down
1 change: 0 additions & 1 deletion keyboards/matrix/noah/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in
RGB_MATRIX_ENABLE = yes

RGBLIGHT_ENABLE = yes
RGBLIGHT_CUSTOM_DRIVER = yes
WS2812_DRIVER_REQUIRED = yes

CUSTOM_MATRIX = yes
Expand Down
1 change: 0 additions & 1 deletion keyboards/pearl/keymaps/cijanzen/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,5 @@ CONSOLE_ENABLE = no
COMMAND_ENABLE = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
RGBLIGHT_CUSTOM_DRIVER = yes
# TAP_DANCE_ENABLE = yes
AUTO_SHIFT_ENABLE = yes
1 change: 0 additions & 1 deletion keyboards/prototypist/oceanographer/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,4 @@ OLED_ENABLE = yes
AUDIO_ENABLE = yes
LTO_ENABLE = yes
RGBLIGHT_ENABLE = yes
RGBLIGHT_DRIVER = WS2812
ENCODER_ENABLE = yes
1 change: 1 addition & 0 deletions keyboards/v60_type_r/info.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"on_state": 0
},
"rgblight": {
"driver": "custom",
"led_count": 1
},
"processor": "atmega32u4",
Expand Down
2 changes: 1 addition & 1 deletion keyboards/v60_type_r/keymaps/ifohancroft/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
- Layer 3: An empty layer in-case I need something on-the-fly so I can remap with VIA.
- Layer 4: An empty layer in-case I need something on-the-fly so I can remap with VIA.

This keymap also sets the polling rate of the keyboard to 1ms, disables the MOUSEKEY, EXTRAKEY, BACKLIGHT, RGBLIGHT and RGBLIGHT_CUSTOM_DRIVER features, and enables the following features:
This keymap also sets the polling rate of the keyboard to 1ms, disables the MOUSEKEY, EXTRAKEY, BACKLIGHT, and RGBLIGHT features, and enables the following features:

- NKRO (forced on)
- VIA
1 change: 0 additions & 1 deletion keyboards/v60_type_r/keymaps/ifohancroft/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@ MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = no
BACKLIGHT_ENABLE = no
RGBLIGHT_ENABLE = no
RGBLIGHT_CUSTOM_DRIVER = no
NKRO_ENABLE = yes
VIA_ENABLE = yes
1 change: 0 additions & 1 deletion keyboards/v60_type_r/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable the RGB Underglow
RGBLIGHT_CUSTOM_DRIVER = yes
AUDIO_ENABLE = no # Audio output

LTO_ENABLE = yes
1 change: 0 additions & 1 deletion keyboards/yandrstudio/buff67v3/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,4 @@ COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
RGBLIGHT_DRIVER = WS2812 # RGB driver support
AUDIO_ENABLE = no # Audio output
2 changes: 1 addition & 1 deletion layouts/community/60_iso/unxmaal/rules.mk
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Only enable RGBLIGHT on avr boards
ifeq ($(strip $(PLATFORM_KEY)),avr)
# ...that are at least prepared for it
ifdef RGBLIGHT_DRIVER
ifeq ($(strip $(RGBLIGHT_SUPPORTED)),yes)
RGBLIGHT_ENABLE = yes # Enable RGB Underglow
endif
endif

0 comments on commit 1c069b1

Please sign in to comment.