summaryrefslogtreecommitdiffstats
path: root/quantum/rgb_matrix/rgb_matrix_drivers.c
Commit message (Collapse)AuthorAgeFilesLines
* Use a macro to compute the size of arrays at compile time (#18044)Jeff Epler2022-08-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add ARRAY_SIZE and CEILING utility macros * Apply a coccinelle patch to use ARRAY_SIZE * fix up some straggling items * Fix 'make test:secure' * Enhance ARRAY_SIZE macro to reject acting on pointers The previous definition would not produce a diagnostic for ``` int *p; size_t num_elem = ARRAY_SIZE(p) ``` but the new one will. * explicitly get definition of ARRAY_SIZE * Convert to ARRAY_SIZE when const is involved The following spatch finds additional instances where the array is const and the division is by the size of the type, not the size of the first element: ``` @ rule5a using "empty.iso" @ type T; const T[] E; @@ - (sizeof(E)/sizeof(T)) + ARRAY_SIZE(E) @ rule6a using "empty.iso" @ type T; const T[] E; @@ - sizeof(E)/sizeof(T) + ARRAY_SIZE(E) ``` * New instances of ARRAY_SIZE added since initial spatch run * Use `ARRAY_SIZE` in docs (found by grep) * Manually use ARRAY_SIZE hs_set is expected to be the same size as uint16_t, though it's made of two 8-bit integers * Just like char, sizeof(uint8_t) is guaranteed to be 1 This is at least true on any plausible system where qmk is actually used. Per my understanding it's universally true, assuming that uint8_t exists: https://stackoverflow.com/questions/48655310/can-i-assume-that-sizeofuint8-t-1 * Run qmk-format on core C files touched in this branch Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
* Fix right side ws2812 leds having two indices (#15985)Dasky2022-02-111-3/+8
| | | | | * Fix right side leds having two indices * remove redundant left check
* Add RGB matrix & LED Matrix support for IS31FL3742A, IS31FL3743A, ↵MasterSpoon2022-02-061-1/+51
| | | | | IS31FL3745, IS31FL3746A (#14989) Co-authored-by: Xelus22 <17491233+Xelus22@users.noreply.github.com>
* Add a new led driver for Keychron's keyboards. (#14872)lalalademaxiya12021-11-021-1/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* Add support for ISSI drivers on both sides of a split keyboard (#13842)Vlad K2021-11-021-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Gets RGB working on a split keyboard with IS31FL3733. Currently needs small tweak to re-enable WS2812 * Added helper function * Trying to integrate the function * Moved functionality into a macro * Swapped conditional for a macro everywhere * Tidying up * More code cleanup * Documentation updates * Fixed formatting via linter * Switching to a function from a macro * Fixed compile error * Fixing WS2812 behavior. UNTESTED. * Updated documentation about the driver addresses. * Fixed code for WS2812 * Trying to add in LED_MATRIX support * Updated effects for LED matrix * Updated third-party effect defines. * Ran format-c on modified files * Apply suggestions from code review Co-authored-by: Ryan <fauxpark@gmail.com> * Move to static inline. Avoids issues with gcc v8+ * Move helper function for LED_matrix to static inline to avoid issues with gcc v8+ Co-authored-by: Vlad Kvitnevskiy <vladkvit@outlook.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* Clean up LED/RGB Matrix driver config (#14760)Ryan2021-10-101-53/+74
|
* [Bug] Fix IS31fl3741 driver to accept 1 or 2 addresses (#14451)Drashna Jaelre2021-09-151-1/+6
| | | Co-authored-by: Joel Challis <git@zvecr.com>
* Align AW20216 driver (#13712)Joel Challis2021-07-271-2/+10
| | | | | | | | | | | | | | | | | * Align AW20216 driver * Update drivers/awinic/aw20216.h Co-authored-by: Ryan <fauxpark@gmail.com> * Review comments * formatting fixes * stop if start failed? * review comments Co-authored-by: Ryan <fauxpark@gmail.com>
* Dual RGB Matrix IS31FL3737 driver support to address #13442 (#13457)Chris Cullin2021-07-151-2/+13
| | | | | | | | | | | | | | | | | | | * initial commit * removed changes to write_pwm_buffer * backward compatbility added * fixed issue with backward compatibility * documentation update * removed unneccessary comment. branched from master * updated per comments #13457 * removed blank line * cformat on diff files
* Move LED/RGB Matrix code into their own directories (#13257)Ryan2021-06-221-0/+228