diff options
author | lalalademaxiya1 <66767061+lalalademaxiya1@users.noreply.github.com> | 2021-11-02 06:43:53 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-02 09:43:53 +1100 |
commit | f4ea262c17ecd53b18180a19c33a9ba5da70ec9d (patch) | |
tree | a516e7d9c406476c78f6e2472d195db7a8c39c2b /quantum | |
parent | 9d235d4fc5c34f372b0c393f41686b5ef4f8dc13 (diff) |
Add a new led driver for Keychron's keyboards. (#14872)
* Add a new led driver for Keychron's keyboards.
* Update ckled2001.c/ckled2001.h.
* Update ckled2001.c/ckled2001.h.
* Update ckled2001.c/ckled2001.h.
* Update ckled2001.c
* Add a new led driver
* Update ckled2001.c
* Update ckled2001.c
* Update ckled2001.c
* Update ckled2001.c
* Delete ckled2001.c
* Create ckled2001.c
* Update ckled2001.c
* Update chibios-contrib
Co-authored-by: keychron-dev <85598583+keychron-dev@users.noreply.github.com>
Co-authored-by: lokher <lokher@gmail.com>
Diffstat (limited to 'quantum')
-rw-r--r-- | quantum/rgb_matrix/rgb_matrix.h | 2 | ||||
-rw-r--r-- | quantum/rgb_matrix/rgb_matrix_drivers.c | 49 |
2 files changed, 50 insertions, 1 deletions
diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index 112dfaaae5..af5ca9e791 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -33,6 +33,8 @@ # include "is31fl3737.h" #elif defined(IS31FL3741) # include "is31fl3741.h" +#elif defined(CKLED2001) +# include "ckled2001.h" #elif defined(AW20216) # include "aw20216.h" #elif defined(WS2812) diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 949cc36612..130ca47a63 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -23,7 +23,7 @@ * be here if shared between boards. */ -#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3737) || defined(IS31FL3741) +#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3737) || defined(IS31FL3741) || defined(CKLED2001) # include "i2c_master.h" // TODO: Remove this at some later date @@ -80,6 +80,18 @@ static void init(void) { # elif defined(IS31FL3741) IS31FL3741_init(DRIVER_ADDR_1); + +# elif defined(CKLED2001) + CKLED2001_init(DRIVER_ADDR_1); +# if defined(DRIVER_ADDR_2) + CKLED2001_init(DRIVER_ADDR_2); +# if defined(DRIVER_ADDR_3) + CKLED2001_init(DRIVER_ADDR_3); +# if defined(DRIVER_ADDR_4) + CKLED2001_init(DRIVER_ADDR_4); +# endif +# endif +# endif # endif for (int index = 0; index < DRIVER_LED_TOTAL; index++) { @@ -94,6 +106,8 @@ static void init(void) { IS31FL3737_set_led_control_register(index, enabled, enabled, enabled); # elif defined(IS31FL3741) IS31FL3741_set_led_control_register(index, enabled, enabled, enabled); +# elif defined(CKLED2001) + CKLED2001_set_led_control_register(index, enabled, enabled, enabled); # endif } @@ -130,6 +144,18 @@ static void init(void) { # elif defined(IS31FL3741) IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); + +# elif defined(CKLED2001) + CKLED2001_update_led_control_registers(DRIVER_ADDR_1, 0); +# if defined(DRIVER_ADDR_2) + CKLED2001_update_led_control_registers(DRIVER_ADDR_2, 1); +# if defined(DRIVER_ADDR_3) + CKLED2001_update_led_control_registers(DRIVER_ADDR_3, 2); +# if defined(DRIVER_ADDR_4) + CKLED2001_update_led_control_registers(DRIVER_ADDR_4, 3); +# endif +# endif +# endif # endif } @@ -204,6 +230,27 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color = IS31FL3741_set_color, .set_color_all = IS31FL3741_set_color_all, }; + +# elif defined(CKLED2001) +static void flush(void) { + CKLED2001_update_pwm_buffers(DRIVER_ADDR_1, 0); +# if defined(DRIVER_ADDR_2) + CKLED2001_update_pwm_buffers(DRIVER_ADDR_2, 1); +# if defined(DRIVER_ADDR_3) + CKLED2001_update_pwm_buffers(DRIVER_ADDR_3, 2); +# if defined(DRIVER_ADDR_4) + CKLED2001_update_pwm_buffers(DRIVER_ADDR_4, 3); +# endif +# endif +# endif +} + +const rgb_matrix_driver_t rgb_matrix_driver = { + .init = init, + .flush = flush, + .set_color = CKLED2001_set_color, + .set_color_all = CKLED2001_set_color_all, +}; # endif #elif defined(AW20216) |