From fff6208f9857ca8f928a6caa5eed908461b1f0eb Mon Sep 17 00:00:00 2001 From: Tim Crawford Date: Wed, 24 Jan 2024 09:53:07 -0700 Subject: [PATCH] Conditionally compile KBLED support Remove the need for a "none" option by only adding KBLED sources when enabled. The resulting binaries with KBLED enabled (all of them) are identical. Signed-off-by: Tim Crawford --- src/board/system76/addw1/board.mk | 1 + src/board/system76/addw2/board.mk | 1 + src/board/system76/addw3/board.mk | 1 + src/board/system76/bonw14/board.mk | 1 + src/board/system76/bonw15/board.mk | 1 + src/board/system76/common/acpi.c | 2 + src/board/system76/common/common.mk | 6 ++- .../system76/common/include/board/kbled.h | 37 ++++++++++++++++++- .../common/{kbled.c => kbled/common.c} | 0 src/board/system76/common/kbled/none.c | 32 ---------------- src/board/system76/common/kbscan.c | 2 + src/board/system76/darp5/board.mk | 1 + src/board/system76/darp6/board.mk | 1 + src/board/system76/darp7/board.mk | 1 + src/board/system76/darp8/board.mk | 1 + src/board/system76/darp9/board.mk | 1 + src/board/system76/galp3-c/board.mk | 1 + src/board/system76/galp4/board.mk | 1 + src/board/system76/galp5/board.mk | 1 + src/board/system76/galp6/board.mk | 1 + src/board/system76/galp7/board.mk | 1 + src/board/system76/gaze15/board.mk | 1 + src/board/system76/gaze16-3050/board.mk | 1 + src/board/system76/gaze16-3060-b/board.mk | 1 + src/board/system76/gaze16-3060/board.mk | 1 + src/board/system76/gaze17-3050/board.mk | 1 + src/board/system76/gaze17-3060-b/board.mk | 1 + src/board/system76/gaze17-3060/board.mk | 1 + src/board/system76/gaze18/board.mk | 1 + src/board/system76/lemp10/board.mk | 1 + src/board/system76/lemp11/board.mk | 1 + src/board/system76/lemp12/board.mk | 1 + src/board/system76/lemp9/board.mk | 1 + src/board/system76/oryp10/board.mk | 1 + src/board/system76/oryp11/board.mk | 1 + src/board/system76/oryp5/board.mk | 1 + src/board/system76/oryp6/board.mk | 1 + src/board/system76/oryp7/board.mk | 1 + src/board/system76/oryp8/board.mk | 1 + src/board/system76/oryp9/board.mk | 1 + src/board/system76/serw13/board.mk | 1 + 41 files changed, 79 insertions(+), 35 deletions(-) rename src/board/system76/common/{kbled.c => kbled/common.c} (100%) delete mode 100644 src/board/system76/common/kbled/none.c diff --git a/src/board/system76/addw1/board.mk b/src/board/system76/addw1/board.mk index f1a4138..43bf23b 100644 --- a/src/board/system76/addw1/board.mk +++ b/src/board/system76/addw1/board.mk @@ -11,6 +11,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/addw2/board.mk b/src/board/system76/addw2/board.mk index ec310bf..2466b08 100644 --- a/src/board/system76/addw2/board.mk +++ b/src/board/system76/addw2/board.mk @@ -11,6 +11,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/addw3/board.mk b/src/board/system76/addw3/board.mk index baf4d10..d41d7ad 100644 --- a/src/board/system76/addw3/board.mk +++ b/src/board/system76/addw3/board.mk @@ -17,6 +17,7 @@ CONFIG_SECURITY=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/bonw14/board.mk b/src/board/system76/bonw14/board.mk index 34240d7..86a6859 100644 --- a/src/board/system76/bonw14/board.mk +++ b/src/board/system76/bonw14/board.mk @@ -11,6 +11,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=15in_102_nkey # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=bonw14 # Set discrete GPU I2C bus diff --git a/src/board/system76/bonw15/board.mk b/src/board/system76/bonw15/board.mk index 72ee975..c855c02 100644 --- a/src/board/system76/bonw15/board.mk +++ b/src/board/system76/bonw15/board.mk @@ -17,6 +17,7 @@ CONFIG_SECURITY=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=bonw14 # Set discrete GPU I2C bus diff --git a/src/board/system76/common/acpi.c b/src/board/system76/common/acpi.c index 3116e44..df0f746 100644 --- a/src/board/system76/common/acpi.c +++ b/src/board/system76/common/acpi.c @@ -25,6 +25,7 @@ static uint8_t fbuf[4] = { 0, 0, 0, 0 }; void fcommand(void) { switch (fcmd) { +#if CONFIG_HAVE_KBLED // Keyboard backlight case 0xCA: switch (fdat) { @@ -65,6 +66,7 @@ void fcommand(void) { break; } break; +#endif // CONFIG_HAVE_KBLED } } diff --git a/src/board/system76/common/common.mk b/src/board/system76/common/common.mk index f959d20..7c6158f 100644 --- a/src/board/system76/common/common.mk +++ b/src/board/system76/common/common.mk @@ -9,7 +9,6 @@ board-common-$(CONFIG_BUS_ESPI) += espi.c board-common-y += fan.c board-common-y += gctrl.c board-common-y += kbc.c -board-common-y += kbled.c board-common-y += kbscan.c board-common-y += keymap.c board-common-y += lid.c @@ -88,8 +87,11 @@ KEYBOARD_DIR=src/keyboard/system76/$(KEYBOARD) include $(KEYBOARD_DIR)/keyboard.mk # Add kbled -KBLED?=none +ifeq ($(CONFIG_HAVE_KBLED),y) +CFLAGS += -DCONFIG_HAVE_KBLED=1 +board-common-y += kbled/common.c board-common-y += kbled/$(KBLED).c +endif # Add scratch ROM include $(SYSTEM76_COMMON_DIR)/scratch/scratch.mk diff --git a/src/board/system76/common/include/board/kbled.h b/src/board/system76/common/include/board/kbled.h index 1be3acc..f9a5650 100644 --- a/src/board/system76/common/include/board/kbled.h +++ b/src/board/system76/common/include/board/kbled.h @@ -5,6 +5,8 @@ #include +#if CONFIG_HAVE_KBLED + enum KbledKind { KBLED_NONE = 0, KBLED_WHITE = 1, @@ -12,7 +14,7 @@ enum KbledKind { }; extern enum KbledKind kbled_kind; -// Must be specified by board +// Must be specified per mechanism void kbled_init(void); void kbled_reset(void); uint8_t kbled_get(void); @@ -28,4 +30,37 @@ void kbled_hotkey_up(void); void kbled_hotkey_toggle(void); void kbled_hotkey_step(void); +#else // CONFIG_HAVE_KBLED + +static inline void kbled_init(void) {} +static inline void kbled_reset(void) {} + +static inline uint8_t kbled_get(void) { + return 0; +} + +static inline uint8_t kbled_max(void) { + return 0; +} + +static inline void kbled_set(uint8_t level) { + (void)level; +} + +static inline uint32_t kbled_get_color(void) { + return 0; +} + +static inline void kbled_set_color(uint32_t color) { + (void)color; +} + +static inline void kbled_hotkey_color(void) {} +static inline void kbled_hotkey_down(void) {} +static inline void kbled_hotkey_up(void) {} +static inline void kbled_hotkey_toggle(void) {} +static inline void kbled_hotkey_step(void) {} + +#endif // CONFIG_HAVE_KBLED + #endif // _BOARD_KBLED_H diff --git a/src/board/system76/common/kbled.c b/src/board/system76/common/kbled/common.c similarity index 100% rename from src/board/system76/common/kbled.c rename to src/board/system76/common/kbled/common.c diff --git a/src/board/system76/common/kbled/none.c b/src/board/system76/common/kbled/none.c deleted file mode 100644 index ecf5d02..0000000 --- a/src/board/system76/common/kbled/none.c +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-only - -#include - -void kbled_init(void) {} - -void kbled_reset(void) {} - -uint8_t kbled_get(void) { - /* Always off */ - return 0; -} - -uint8_t kbled_max(void) { - /* Always off */ - return 0; -} - -void kbled_set(uint8_t level) { - /* Fix unused variable */ - level = level; -} - -uint32_t kbled_get_color(void) { - /* Always black */ - return 0; -} - -void kbled_set_color(uint32_t color) { - /* Fix unused variable */ - color = color; -} diff --git a/src/board/system76/common/kbscan.c b/src/board/system76/common/kbscan.c index 5b7f89f..27dabe7 100644 --- a/src/board/system76/common/kbscan.c +++ b/src/board/system76/common/kbscan.c @@ -131,6 +131,7 @@ static void hardware_hotkey(uint16_t key) { case K_FAN_TOGGLE: fan_max = !fan_max; break; +#if CONFIG_HAVE_KBLED case K_KBD_BKL: kbled_hotkey_step(); break; @@ -150,6 +151,7 @@ static void hardware_hotkey(uint16_t key) { if (acpi_ecos != EC_OS_FULL) kbled_hotkey_toggle(); break; +#endif // CONFIG_HAVE_KBLED } } diff --git a/src/board/system76/darp5/board.mk b/src/board/system76/darp5/board.mk index 5ea1bf4..c40d600 100644 --- a/src/board/system76/darp5/board.mk +++ b/src/board/system76/darp5/board.mk @@ -11,6 +11,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=darp5 CFLAGS+=-DI2C_KBLED=I2C_1 diff --git a/src/board/system76/darp6/board.mk b/src/board/system76/darp6/board.mk index 29252c6..e0aab8d 100644 --- a/src/board/system76/darp6/board.mk +++ b/src/board/system76/darp6/board.mk @@ -14,6 +14,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=darp5 CFLAGS+=-DI2C_KBLED=I2C_1 diff --git a/src/board/system76/darp7/board.mk b/src/board/system76/darp7/board.mk index 03b6936..c12806f 100644 --- a/src/board/system76/darp7/board.mk +++ b/src/board/system76/darp7/board.mk @@ -14,6 +14,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set battery I2C bus diff --git a/src/board/system76/darp8/board.mk b/src/board/system76/darp8/board.mk index 6a50dc4..e1f0762 100644 --- a/src/board/system76/darp8/board.mk +++ b/src/board/system76/darp8/board.mk @@ -14,6 +14,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set battery I2C bus diff --git a/src/board/system76/darp9/board.mk b/src/board/system76/darp9/board.mk index cd2c0d3..1b1492f 100644 --- a/src/board/system76/darp9/board.mk +++ b/src/board/system76/darp9/board.mk @@ -17,6 +17,7 @@ CONFIG_SECURITY=y KEYBOARD=18H9LHA05 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set battery I2C bus diff --git a/src/board/system76/galp3-c/board.mk b/src/board/system76/galp3-c/board.mk index cb58e3b..1b66347 100644 --- a/src/board/system76/galp3-c/board.mk +++ b/src/board/system76/galp3-c/board.mk @@ -11,6 +11,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=14in_86 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=white_dac CFLAGS+=-DKBLED_DAC=5 diff --git a/src/board/system76/galp4/board.mk b/src/board/system76/galp4/board.mk index e2dc72d..a267cc0 100644 --- a/src/board/system76/galp4/board.mk +++ b/src/board/system76/galp4/board.mk @@ -14,6 +14,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=14in_86 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=white_dac CFLAGS+=-DKBLED_DAC=5 diff --git a/src/board/system76/galp5/board.mk b/src/board/system76/galp5/board.mk index 91e30d8..036f1f3 100644 --- a/src/board/system76/galp5/board.mk +++ b/src/board/system76/galp5/board.mk @@ -14,6 +14,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=14in_83 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=white_dac CFLAGS+=-DKBLED_DAC=2 diff --git a/src/board/system76/galp6/board.mk b/src/board/system76/galp6/board.mk index 55573f1..68c2b1d 100644 --- a/src/board/system76/galp6/board.mk +++ b/src/board/system76/galp6/board.mk @@ -17,6 +17,7 @@ CONFIG_SECURITY=y KEYBOARD=14in_83 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=white_dac CFLAGS+=-DKBLED_DAC=2 diff --git a/src/board/system76/galp7/board.mk b/src/board/system76/galp7/board.mk index 1c1f767..290475f 100644 --- a/src/board/system76/galp7/board.mk +++ b/src/board/system76/galp7/board.mk @@ -20,6 +20,7 @@ CONFIG_SECURITY=y KEYBOARD=14in_83 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=white_dac CFLAGS+=-DKBLED_DAC=2 diff --git a/src/board/system76/gaze15/board.mk b/src/board/system76/gaze15/board.mk index c72cf24..477a57d 100644 --- a/src/board/system76/gaze15/board.mk +++ b/src/board/system76/gaze15/board.mk @@ -11,6 +11,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/gaze16-3050/board.mk b/src/board/system76/gaze16-3050/board.mk index 94bcfb6..c0a9685 100644 --- a/src/board/system76/gaze16-3050/board.mk +++ b/src/board/system76/gaze16-3050/board.mk @@ -14,6 +14,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/gaze16-3060-b/board.mk b/src/board/system76/gaze16-3060-b/board.mk index 7792e4e..f32aa1b 100644 --- a/src/board/system76/gaze16-3060-b/board.mk +++ b/src/board/system76/gaze16-3060-b/board.mk @@ -17,6 +17,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/gaze16-3060/board.mk b/src/board/system76/gaze16-3060/board.mk index 4b1f4ca..d79bf61 100644 --- a/src/board/system76/gaze16-3060/board.mk +++ b/src/board/system76/gaze16-3060/board.mk @@ -14,6 +14,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/gaze17-3050/board.mk b/src/board/system76/gaze17-3050/board.mk index 66c2db3..902e9e1 100644 --- a/src/board/system76/gaze17-3050/board.mk +++ b/src/board/system76/gaze17-3050/board.mk @@ -14,6 +14,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/gaze17-3060-b/board.mk b/src/board/system76/gaze17-3060-b/board.mk index 36b4e53..851e813 100644 --- a/src/board/system76/gaze17-3060-b/board.mk +++ b/src/board/system76/gaze17-3060-b/board.mk @@ -17,6 +17,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/gaze17-3060/board.mk b/src/board/system76/gaze17-3060/board.mk index 5f4740d..8bed3a6 100644 --- a/src/board/system76/gaze17-3060/board.mk +++ b/src/board/system76/gaze17-3060/board.mk @@ -14,6 +14,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/gaze18/board.mk b/src/board/system76/gaze18/board.mk index d28f105..685294b 100644 --- a/src/board/system76/gaze18/board.mk +++ b/src/board/system76/gaze18/board.mk @@ -17,6 +17,7 @@ CONFIG_SECURITY=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/lemp10/board.mk b/src/board/system76/lemp10/board.mk index 77a2ab0..c75a56d 100644 --- a/src/board/system76/lemp10/board.mk +++ b/src/board/system76/lemp10/board.mk @@ -14,6 +14,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=14in_83 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=white_dac CFLAGS+=-DKBLED_DAC=2 diff --git a/src/board/system76/lemp11/board.mk b/src/board/system76/lemp11/board.mk index 8e5ce87..01f3431 100644 --- a/src/board/system76/lemp11/board.mk +++ b/src/board/system76/lemp11/board.mk @@ -14,6 +14,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=14in_83 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=white_dac CFLAGS+=-DKBLED_DAC=2 diff --git a/src/board/system76/lemp12/board.mk b/src/board/system76/lemp12/board.mk index 011bec5..ade7fd3 100644 --- a/src/board/system76/lemp12/board.mk +++ b/src/board/system76/lemp12/board.mk @@ -17,6 +17,7 @@ CONFIG_SECURITY=y KEYBOARD=14in_83 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=white_dac CFLAGS+=-DKBLED_DAC=2 diff --git a/src/board/system76/lemp9/board.mk b/src/board/system76/lemp9/board.mk index a5b38b8..47f3996 100644 --- a/src/board/system76/lemp9/board.mk +++ b/src/board/system76/lemp9/board.mk @@ -11,6 +11,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=14in_83 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=white_dac CFLAGS+=-DKBLED_DAC=2 diff --git a/src/board/system76/oryp10/board.mk b/src/board/system76/oryp10/board.mk index a7d331b..2e37e08 100644 --- a/src/board/system76/oryp10/board.mk +++ b/src/board/system76/oryp10/board.mk @@ -20,6 +20,7 @@ CONFIG_SECURITY=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/oryp11/board.mk b/src/board/system76/oryp11/board.mk index 24857a4..6cf8e3f 100644 --- a/src/board/system76/oryp11/board.mk +++ b/src/board/system76/oryp11/board.mk @@ -19,6 +19,7 @@ CONFIG_SECURITY=y KEYBOARD=18H9LHA04 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/oryp5/board.mk b/src/board/system76/oryp5/board.mk index ebf14da..464c0b5 100644 --- a/src/board/system76/oryp5/board.mk +++ b/src/board/system76/oryp5/board.mk @@ -11,6 +11,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=oryp5 CFLAGS+=-DI2C_KBLED=I2C_1 diff --git a/src/board/system76/oryp6/board.mk b/src/board/system76/oryp6/board.mk index 6b3f9e6..8cef633 100644 --- a/src/board/system76/oryp6/board.mk +++ b/src/board/system76/oryp6/board.mk @@ -11,6 +11,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/oryp7/board.mk b/src/board/system76/oryp7/board.mk index 6b3f9e6..8cef633 100644 --- a/src/board/system76/oryp7/board.mk +++ b/src/board/system76/oryp7/board.mk @@ -11,6 +11,7 @@ CONFIG_EC_FLASH_SIZE_128K = y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/oryp8/board.mk b/src/board/system76/oryp8/board.mk index 8dedb9d..e70992b 100644 --- a/src/board/system76/oryp8/board.mk +++ b/src/board/system76/oryp8/board.mk @@ -14,6 +14,7 @@ CONFIG_BUS_ESPI=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/oryp9/board.mk b/src/board/system76/oryp9/board.mk index 73a4d6d..b6d7034 100644 --- a/src/board/system76/oryp9/board.mk +++ b/src/board/system76/oryp9/board.mk @@ -17,6 +17,7 @@ CONFIG_SECURITY=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus diff --git a/src/board/system76/serw13/board.mk b/src/board/system76/serw13/board.mk index e357c0a..4ec2781 100644 --- a/src/board/system76/serw13/board.mk +++ b/src/board/system76/serw13/board.mk @@ -17,6 +17,7 @@ CONFIG_SECURITY=y KEYBOARD=15in_102 # Set keyboard LED mechanism +CONFIG_HAVE_KBLED = y KBLED=rgb_pwm # Set discrete GPU I2C bus