Commit Graph

513 Commits

Author SHA1 Message Date
Stefan Kerkmann
3f9d464412
[Core] usb_device_state: consolidate usb state handling across implementations (#24258)
* usb_device_state: add idle_rate, led and protocol

Previously all usb drivers and platform implementations (expect for our
oddball atsam) tracked the same two global variables:

- keyboard_protocol: to indicate if we are in report or boot protocol
- keyboard_idle: for the idle_rate of the keyboard endpoint

And a local variable that was exposed trough some indirection:

- keyboard_led_state: for the currently set indicator leds (caps lock etc.)

These have all been moved into the usb_device_state struct wich is
accessible by getters and setters.

This reduces code duplication and centralizes the state management
across platforms and drivers.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* usb_device_state: reset protocol on reset

The usb hid specification section 7.2.6 states:

When initialized, all devices default to report protocol. However the
host should not make any assumptions about the device’s state and should
set the desired protocol whenever initializing a device.

Thus on reset we should always do exactly that.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* keyboards: fix oversize warnings

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

---------

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2024-10-18 09:57:08 +02:00
Ryan
6129af93f4
Rename RGB and HSV structs (#24471) 2024-10-12 00:10:02 +01:00
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
Dasky
43e82ed5c7
Remove binary blobs from optical sensors. (#24428)
* remove pmw srom

* remove adns9800 srom

* Update drivers/sensors/pmw33xx_common.c
2024-10-06 20:41:55 +13:00
QMK Bot
928b5fdf50 Merge remote-tracking branch 'origin/master' into develop 2024-09-26 18:44:11 +00:00
Eric
805cde674d
input_club/ergodox_infinity ST7565 call spi_stop (#24429) 2024-09-26 11:43:39 -07:00
QMK Bot
17be3e4a54 Merge remote-tracking branch 'origin/master' into develop 2024-09-18 14:46:48 +00:00
Dasky
1c03574424
Fix ADNS-9800 read (#24406) 2024-09-18 15:46:13 +01:00
Dasky
49e339ba8d
Add LD7032 support to QP. (#20828)
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2024-09-18 21:44:33 +10:00
Colin Kinloch
cc3bc2af11
Add ability to poweroff ADNS5050 sensor (#24223)
* Add ability to poweroff ADNS5050 sensor

* ploopyco/trackball_nano: Poweroff ADNS5050 on suspend
2024-08-26 14:06:53 -06:00
Ryan
f8596b40a4
Normalise mouse keycodes (#23975) 2024-07-03 18:35:54 +10:00
Ryan
bc0c69570b
Rename encoder pins defines (#24003) 2024-07-03 17:18:27 +10:00
Nick Brassel
7bc3eef8cc
SPI flash API cleanup, add async erase capability. (#23894) 2024-07-02 10:16:41 +10:00
Dasky
a7aa58cc81
Change ADNS9800 and PMW33XX SROM uploads to opt in. (#24001)
Make SROM upload optional
2024-06-27 05:10:13 +01:00
Ryan
55538b2e1e
APA102: API rework (#23355) 2024-06-13 22:19:45 +10:00
Fernando Birra
a82b0628b3
GC9xxx LCD family drivers (GC9107 and GC9A01) (#23091)
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: jack <0x6A73@pm.me>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: フィルターペーパー <76888457+filterpaper@users.noreply.github.com>
Co-authored-by: rookiebwoy <81021475+rookiebwoy@users.noreply.github.com>
Fixup boardsource/equals (#23106)
Fix make clean test:os_detection (#23112)
Fix make clean test:os_detection (#23112)"
Fixup boardsource/equals (#23106)"
2024-06-05 08:41:26 +10:00
Purdea Andrei
267dffda15
EEPROM: Don't erase if we don't have to. Adding eeprom_driver_format abstraction. (#18332) 2024-05-28 12:49:55 +01:00
Michael Büchler
a850f7d695
Fix PS/2 Trackpoint mouse clicks (#22265) (#23694) 2024-05-21 00:36:48 +01:00
Ryan
d0cf7b8519
Update GPIO expander API naming (#23375) 2024-03-29 16:57:21 +00: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
Ryan
c371cb3bc4
IS31FL3729 updates (#23109) 2024-02-22 17:51:49 +11:00
Drashna Jaelre
66780783c7
[Bug] Fix pmw33xx sensor corruption on get-cpi call (#23116) 2024-02-20 11:36:28 +11:00
Nick Brassel
9d9cdaaa2d
Add encoder abstraction. (#21548) 2024-02-18 21:17:15 +11:00
Ryan
2d1aed78a6
Update GPIO macro usages in core (#23093) 2024-02-18 17:08:27 +11:00
Pablo Martínez
5383335717
[Driver] ILI9486 on Quantum Painter (#18521)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2024-02-17 18:36:05 +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
a9f1105f98
LED drivers: add support for shutdown pin (#23058)
* LED drivers: add support for shutdown pin

* Update candidate boards
2024-02-15 07:11:50 +00:00
Ryan
0b7df03ab7
AW20216S: combine EN pin defines (#23067) 2024-02-15 07:05:08 +00:00
Ryan
c8c55e3220
is31fl3741: split PWM and scaling buffers (#23049) 2024-02-14 11:16:27 +11:00
Ryan
3ba88f7798
LED drivers: update PWM register defines for g_<driver>_leds (#23052) 2024-02-12 02:19:45 +00:00
Ryan
66015f1645
LED drivers: create structs to hold PWM/scaling buffers (#22955) 2024-02-10 18:48:13 +11:00
Ryan
a5ea619139
LED drivers: place I2C addresses into an array (#22975) 2024-02-09 22:37:18 +11:00
Drashna Jaelre
b910b1261d
Init pins for Analog Joystick sensor (#22985) 2024-01-30 23:20:30 +00:00
burkfers
f2299ee5f8
Azoteq driver: Remove call to removed i2c function (#22966) 2024-01-26 20:20:04 +01:00
Ryan
728aa576b0
LED drivers: update I2C API usage (#22951) 2024-01-24 12:11:41 +11:00
Ryan
d96ac7084e
LED drivers: remove write_pwm_buffer() from public API (#22884) 2024-01-24 09:18:44 +11:00
Dasky
2c3d0126ba
crique zidle fix (#22948) 2024-01-23 10:05:59 +00:00
David Hoelscher
e9bd7d7ad3
I2C driver cleanup (#21273)
* remove i2c_start and i2c_stop from i2c drivers

* remove static i2c_address variable from chibios i2c driver
2024-01-17 14:05:38 +01:00
Ryan
a522b1f156
i2c: rename read/write register functions (#22905) 2024-01-16 02:26:40 +00:00
Ryan
eb7ecae4b4
LED drivers: remove PWM register offsets (#22897) 2024-01-13 19:21:15 +00:00
JohSchneider
6b52c6d83d
Cirque reachable calibration aide (#22803)
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Johannes <you@example.com>
2024-01-13 00:28:09 -08:00
Ryan
58696a3937
LED drivers: switch to i2c_writeReg() (#22878) 2024-01-10 17:25:34 +11:00
Ryan
7a3183b8c8
LED drivers: change write_pwm_buffer() return type to void (#22869) 2024-01-10 12:48:19 +11:00
Ryan
8b95dc6e00
LED drivers: more formatting (#22865) 2024-01-08 17:28:40 +11:00
Ryan
7467231158
snled27351: change write_register() return type to void (#22825) 2024-01-08 04:54:47 +00:00
Ryan
368a2eb08f
is31fl3733: change write_register() return type to void (#22824) 2024-01-08 04:54:26 +00:00
Ryan
bdede8b2cd
LED drivers: misc formatting and typos (#22857) 2024-01-08 12:24:10 +11:00
Ryan
b3f55cb5b2
apa102: cleanups (#22826) 2024-01-07 17:48:14 +11:00
Ryan
e5203f86e2
is31fl3733: fix driver sync backwards compatibility defines (#22851) 2024-01-07 17:46:12 +11:00