1244 Commits
Author SHA1 Message Date
Joel ChallisandGitHub 05c4322c65 Align Mouse USB descriptor (#26230) 2026-05-27 00:43:26 +01:00
George NortonandGitHub 6ee28ac86f Clip mouse report values to the logical range from the USB descriptor. (#26195) 2026-05-23 04:08:44 +01:00
Scott LambandGitHub 0c5e36d056 Fix make test:all failures seen on macOS Tahoe (#26136) 2026-04-28 19:31:00 +01:00
Marcus OfenhedGitHubMarcus Ofenhed <>
f01698b3f8 Add resolution information to digitizer (#25958)
Co-authored-by: Marcus Ofenhed <>
2026-03-15 21:59:23 +11:00
QMK BotandGitHub 4f7a7873c8 [CI] Format code according to conventions (#26000)
Format code according to conventions
2026-02-11 16:06:13 +00:00
QMK Bot ee60542bd6 Merge remote-tracking branch 'origin/master' into develop 2025-11-30 19:25:52 +00:00
QMK BotandGitHub 6ed61c65dd [CI] Format code according to conventions (#25827)
Format code according to conventions
2025-11-30 19:25:13 +00:00
c68e4dec10 [Core] suspend: suppress wake up keypress (#23389)
* suspend: suppress wake up keypress

Waking the host from suspend is done by pressing any key on the
keyboard, the regular key codes assigned to the keys are not important
and must not be sent - otherwise they usually end up in password prompts
as ghost characters that have to be deleted again. This commit adds
suppression for all keys pressed at the time of wake up. Once a key is
released it functions as a regular key again.

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

* suspend: update wake up matrix after wake up delay

If USB_SUSPEND_WAKEUP_DELAY is set, the keyboard sleeps during wake up -
which can be up to multiple seconds. To handle key presses and releases
in that time frame we have to handle the following cases:

1. Key not pressed before suspend, and not pressed after wakeup → do
   nothing (normal case).
2. Key not pressed before suspend, but pressed after wakeup → set the
   wakeup_matrix bit to 1 (so that the press and release events would be
   suppressed).
3. Key pressed before suspend, but not pressed after wakeup → do nothing
   (the release event will be generated on the first matrix_task() call
   after the wakeup).
4. Key pressed before suspend, and still pressed after wakeup → do
   nothing (the release event will be generated some time later).

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* keyboards: anavi: macropad8: disable snake and rgb_test effects

...to shrink the binary size.
2025-11-11 23:35:03 +11:00
Joel ChallisandGitHub 01952bf39a Implement minimal connection update logic (#25334) 2025-11-06 23:34:23 +00:00
François MagimelandGitHub 09ab67c044 docs: fix misspellings (#25555)
* docs: fix misspellings

* docs: do line breaks with HTML instead of spaces

To remove trailing spaces and to avoid breaking things, line breaks can
be done with the HTML br tag.
2025-09-09 14:51:13 -07:00
Joel ChallisandGitHub bc5c5e3251 Align sleep_led logic (#25395) 2025-06-27 08:17:28 +01:00
Xelus22andGitHub 096696d86d [Bug] Fix usb_endpoint_interface_lut multiple def compile err (#25378) 2025-06-18 10:44:49 +01:00
Pablo MartínezandGitHub 955809bd5a Add compiler_support.h (#25274) 2025-05-22 23:31:15 +10:00
Joel ChallisandGitHub cd95294a25 Remove more USB only branches from NKRO handling (#25263) 2025-05-14 22:01:08 +10:00
Joel ChallisandGitHub 88c094908b Add raw_hid support to host driver (#25255) 2025-05-12 08:38:48 +10:00
Joel ChallisandGitHub ab1332bb6c Remove force disable of NKRO when Bluetooth enabled (#25201) 2025-05-06 06:47:44 +01:00
Joel ChallisandGitHub 842c840145 Bind Bluetooth driver to host_driver_t (#25199) 2025-05-05 04:05:04 +01:00
eynsaiandGitHub 7a2cd0fa96 High resolution scrolling (without feature report parsing) (#24423)
* hires scrolling without feature report parsing

* fix valid range for exponent

* fix incorrect minimum exponent value documentation
2025-04-23 00:04:31 +02:00
Joel ChallisandGitHub b5f8f4d6a2 Align ChibiOS USB_WAIT_FOR_ENUMERATION implementation (#25184) 2025-04-22 14:31:42 +10:00
Joel ChallisandGitHub c7cb7ba976 Implement connection keycode logic (#25176) 2025-04-21 22:27:56 +01:00
Stefan KerkmannandGitHub a7bf8e64a5 [chore]: move and rename mouse/scroll min/max defines (#25141)
* protocol: move {XY/HV}_REPORT_{MIN,MAX} into report.h

..to allow easier re-use in other code implementations.

* protocol: rename {XY/HV}_REPORT_{MIN/MAX} to MOUSE_REPORT_{XY/HV}_{MIN/MAX}

..to avoid naming collisions.
2025-04-13 18:36:13 +02:00
Stefan KerkmannandGitHub 8e6bfbfdc2 [Core] chibios: usb_main: remove OTG sof workaround (#24259)
chibios: usb_main: remove OTG sof workaround

With the update of ChibiOS and ChibiOS-Contrib containing fixes for the
OTGv1 LLD the workaround is not necessarry anymore.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2024-12-15 18:42:43 +01:00
RyanandGitHub a3cfb1dab7 Joystick: add support for 8-way hat switch (#24515) 2024-11-09 14:10:10 -08:00
Stefan KerkmannandGitHub 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
QMK Bot 7e53bb9965 Merge remote-tracking branch 'origin/master' into develop 2024-10-15 14:06:17 +00:00
RyanandGitHub 85a7627641 Digitizer: fix units tag in report descriptor (#24482) 2024-10-15 07:05:43 -07:00
eynsaiandGitHub 2cb35373c6 Extended wheel reports (#24422)
extended wheel reports
2024-10-06 11:26:55 +02:00
Nick BrasselandGitHub 305e7baa71 Allow for get_hardware_id() to be used for serial number. (#24053)
* Allow for `get_hardware_id()` to be used for serial number.

* Length checks.

* Explain length.

* Cleanup.

* Preprocessor magic.

* Use the force, Batman.

* Swap logic; if SERIAL_NUMBER is defined use that, otherwise derive it.

* Cleanup.

* Cleanup.
2024-10-06 21:44:36 +13:00
Nick BrasselandGitHub 9a8f5a80e4 Remove RING_BUFFERED_6KRO_REPORT_ENABLE due to disuse. (#24433) 2024-09-24 12:53:55 +01:00
Joel ChallisandGitHub 3bd303f204 Remove arm_atsam platform (#24337) 2024-09-02 03:48:17 +01:00
IzumemoriandGitHub 40f2575b56 Fix NKRO and Mouse Emulation on arm_atsam (#23945) 2024-08-13 09:06:24 +10:00
Joel ChallisandGitHub d0e89aecca Align LUFA suspend logic (#24055) 2024-07-05 12:02:39 +01:00
Drashna JaelreandGitHub bdca9318f9 Change suspend condition check order on ChibiOS (#24020) 2024-07-04 12:13:00 +10:00
8253697a63 [FIX] ChibiOS: USB Digitizer and Joystick IN endpoint compilation (#23854)
Co-authored-by: Ryan <fauxpark@gmail.com>
2024-06-03 22:35:46 +10:00
Joel ChallisandGitHub 16cca527a6 Fix WAIT_FOR_USB handling (#23598) 2024-04-24 19:33:52 +01:00
42a725e355 Remove midi_ep_task from ChibiOS (#23162)
Co-authored-by: Joel Challis <git@zvecr.com>
2024-03-28 20:40:41 -07:00
Joel ChallisandGitHub 63dd131d81 Refactor vusb to protocol use pre/post task (#14944) 2024-03-14 21:45:12 +11:00
Stefan KerkmannandGitHub 0e02b0c41e [Core] Refactor ChibiOS USB endpoints to be fully async (#21656) 2024-02-28 22:00:27 +11:00
RyanandGitHub 2d1aed78a6 Update GPIO macro usages in core (#23093) 2024-02-18 17:08:27 +11:00
Andre BraitandGitHub 80f3da36e5 [Core] Add OS detection callbacks (#21777) 2024-02-17 01:19:02 +11:00
Joel ChallisandGitHub 79020519b4 Align VUSB suspend protocol logic (#22688) 2024-02-01 15:33:57 +00:00
QMK Bot 61ed48edc3 Merge remote-tracking branch 'origin/master' into develop 2024-01-22 13:18:51 +00:00
RyanandGitHub 3495cbc638 Fix missing joystick.h include (#22946) 2024-01-22 13:18:20 +00:00
Joel ChallisandGitHub b6b3efc14b Remove console out endpoint (#22304) 2024-01-09 14:01:34 +00:00
RyanandGitHub 4601f339e4 V-USB: implement NKRO (#22398) 2023-11-26 22:50:53 +11:00
RyanandGitHub cbf538aaaa V-USB: Add generic send_report() function (#22323) 2023-11-26 22:50:21 +11:00
RyanandGitHub 87d69aebbb Slight refactor of joystick axis type into typedef (#22445) 2023-11-12 18:25:18 +11:00
RyanandGitHub 6979794bac Add "AC Next Keyboard Layout Select" consumer usage entry (macOS Globe key) (#22256) 2023-10-31 02:19:53 +00:00
Stefan KerkmannandGitHub 5856d5e13b [Maintenance] USB HID control packet as struct (#21688)
* ChibiOS: USB HID control request as dedicated struct

Instead of accessing the raw USB setup packet and documenting the values
as the corresponding USB HID control request fields we introduce a
struct that allows direct access to the fields. This is safer and self
documenting.

* Rename usb_request.h to usb_types.h

In the future all shared USB data types can live in this file.
2023-10-27 18:44:58 +02:00
db4e3bb232 V-USB: Fix GET_IDLE/SET_IDLE (#22332)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2023-10-27 12:21:13 +11:00