Commit Graph

41 Commits

Author SHA1 Message Date
Ryan
208ebf54a9
WS2812 API rework (#24364)
* Begin WS2812 API rework

* Move RGBW conversion, clean up color.h, fix RGBW for AVR bitbang

* Formatting & update PS2AVRGB I2C driver (untested)

* Tested ARM bitbang RGB+RGBW

* Tested ARM SPI RGB - RGBW not working

* Tested ARM PWM RGB+RGBW

* Tested RP2040 PIO driver RGB+RGBW

* Update RGBLight

* Formatting

* Fix BM60HSRGB rev2

* Fix oddforge/vea

* Fix 1k and XD002 RGBLite

* Fix model_m/mschwingen

* Fix handwired/promethium

* Rename `WS2812_LED_TOTAL` for BM60HSRGB

* Fix work_louder boards

* Fix dawn60

* Fix rgbkb/pan

* Fix neson_design/700e and n6

* Fix ergodox_ez/shine

* ergodox_ez/shine: invert indices for left half

* Fix matrix/abelx

* Fix matrix/m20add

* Remove custom rgblight driver for matrix/noah - should be done with lighting layers

* Fix LED indexes for RGBLight split

* Rename `convert_rgb_to_rgbw()` to `ws2812_rgb_to_rgbw()`

* Update WS2812 API docs

* `ergodox_ez/shine`: simplify LED index calculation

* LED/RGB Matrix: Add weak function for LED index resolution

* Bandaid fix for RGB Matrix splits not using WS2812

* `steelseries/prime_plus`: redo custom RGBLight driver

* Update keyboards/steelseries/prime_plus/rgblight_custom.c

Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>

---------

Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2024-10-06 21:01:07 +13:00
Ryan
a9ba83c7be
Remove useless LED/RGB_MATRIX_ENABLE ifdefs (#23726) 2024-05-16 12:52:15 +01:00
Ryan
0ff53b2498
Rename RGBW define to WS2812_RGBW (#23585) 2024-04-28 00:36:54 +10:00
Ryan
f7cf40fa77
Add init function to RGBLight driver struct (#23076) 2024-03-18 22:03:27 +11:00
Ryan
23b7a02ebe
LED drivers: add support for IS31FL3236 (#23264) 2024-03-17 19:23:14 +11:00
HorrorTroll
f6709e65eb
Add RGB matrix & LED Matrix support for IS31FL3729 (#21944)
Co-authored-by: Xelus22 <preyas22@gmail.com>
Co-authored-by: dexter93 <d3xter93@gmail.com>
2024-02-17 01:41:35 +11:00
Ryan
f583d2fef0
Remove IS31FLCOMMON code (#22800) 2024-01-02 16:26:01 +11:00
Ryan
0a6913b682
LED drivers: extract IS31FL3746A from IS31COMMON (#22637) 2024-01-01 21:44:18 +11:00
Ryan
a88dd675bf
LED drivers: extract IS31FL3745 from IS31COMMON (#22636) 2024-01-01 19:31:44 +11:00
Ryan
ae2d5e2e5a
LED drivers: extract IS31FL3743A from IS31COMMON (#22635) 2024-01-01 17:04:51 +11:00
Ryan
e1c0bd8a7c
LED drivers: extract IS31FL3742A from IS31COMMON (#22620) 2024-01-01 12:40:35 +11:00
Ryan
b9e81c0691
Update keyboard LED driver configs (#22638) 2023-12-18 20:13:08 +00:00
Ryan
24511d31b6
LED/RGB Matrix: add header for drivers (#22628) 2023-12-08 16:54:47 +11:00
Ryan
b52aca0af8
Relocate LED driver init code (#22365) 2023-11-01 00:53:45 +00:00
Ryan
cf7d3435d7
Add _flush() functions to LED drivers (#22308) 2023-10-22 18:32:27 +01:00
Ryan
d56ee70c52
Rename DRIVER_ADDR_n defines (#22200)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-10-21 21:41:59 +10:00
Ryan
c0f16be50f
Rename CKLED2001 driver to SNLED27351 (#22071) 2023-10-04 20:10:05 +11:00
Ryan
f8cea06be3
RGBLight/Backlight: add prefixed driver defines (#22089) 2023-09-21 15:50:01 +10:00
Ryan
db68a95cae
LED/RGB Matrix: prefix driver defines (#22088) 2023-09-21 12:16:17 +10:00
Ryan
1ea54a2d8d
Complete RGB Matrix support for IS31FL3218 (#22004) 2023-09-17 22:11:16 +10:00
Ryan
a0aebe5cd5
aw20216: driver naming cleanups (#21891) 2023-09-13 22:45:17 +10:00
Ryan
41bd4e35a0
Clean up RGB LED type (#21859) 2023-09-04 01:19:59 +01:00
Ryan
37bc949945
RGB Matrix: driver naming cleanups (#21594) 2023-08-23 01:00:03 +01:00
Ryan
da2d2f947d
quantum: remove direct quantum.h includes (#21507) 2023-07-16 23:42:56 +10:00
Xelus22
806b61c2f7
[Core] RGB matrix ws2812 update (#21135)
* ws2812_update boolean to stop update every single cycle

* lint1

Co-authored-by: Joel Challis <git@zvecr.com>

* lint2

Co-authored-by: Joel Challis <git@zvecr.com>

* Update quantum/rgb_matrix/rgb_matrix_drivers.c

---------

Co-authored-by: Joel Challis <git@zvecr.com>
2023-06-09 01:00:22 +01:00
André Greiner-Petter
249fb3c2c2
[BUG] Allow multiple IS31FL3741 drivers per board in rgb_matrix (#20988) 2023-05-27 13:26:14 +10:00
Xelus22
6a619e6403
[Core] Clean up ISSI drivers, Add IS31FL3736 support (#20572)
Co-authored-by: Pablo Martínez <58857054+elpekenin@users.noreply.github.com>
2023-04-30 12:35:27 +10:00
Ryan
647c2835e6
WS2812 driver improvements (#20262) 2023-03-30 12:21:02 +11:00
QMK Bot
e59cb51be0
[CI] Format code according to conventions (#18756) 2022-10-18 08:29:19 +11:00
Jamal Bouajjaj
9d4c4ceee1
4 Driver support for IS31FL3737 (#18750)
* Added 4 driver support for the IS31FL3737 LED driver

* Updated docs for IS31FL3737 to support 4 drivers
2022-10-18 08:26:58 +11:00
Ryan
36c410592d
Change DRIVER_LED_COUNT to {LED,RGB}_MATRIX_LED_COUNT (#18399) 2022-09-23 22:46:23 +10:00
Jeff Epler
9632360caa
Use a macro to compute the size of arrays at compile time (#18044)
* 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>
2022-08-30 10:20:04 +02:00
Dasky
00cc64638c
Fix right side ws2812 leds having two indices (#15985)
* Fix right side leds having two indices

* remove redundant left check
2022-02-11 20:13:22 +00:00
MasterSpoon
0452ad9479
Add RGB matrix & LED Matrix support for IS31FL3742A, IS31FL3743A, IS31FL3745, IS31FL3746A (#14989)
Co-authored-by: Xelus22 <17491233+Xelus22@users.noreply.github.com>
2022-02-06 09:04:43 -08:00
lalalademaxiya1
f4ea262c17
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>
2021-11-02 09:43:53 +11:00
Vlad K
a29ca1e7f1
Add support for ISSI drivers on both sides of a split keyboard (#13842)
* 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>
2021-11-02 09:04:37 +11:00
Ryan
b487e10753
Clean up LED/RGB Matrix driver config (#14760) 2021-10-10 16:57:49 -07:00
Drashna Jaelre
169d5bd21d
[Bug] Fix IS31fl3741 driver to accept 1 or 2 addresses (#14451)
Co-authored-by: Joel Challis <git@zvecr.com>
2021-09-15 10:07:08 -07:00
Joel Challis
3858a784c7
Align AW20216 driver (#13712)
* 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>
2021-07-27 23:55:51 +01:00
Chris Cullin
70267b35c3
Dual RGB Matrix IS31FL3737 driver support to address #13442 (#13457)
* 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
2021-07-15 22:52:05 +01:00
Ryan
d61e5c0027
Move LED/RGB Matrix code into their own directories (#13257) 2021-06-22 18:26:23 +10:00