aboutsummaryrefslogtreecommitdiffstats
path: root/tmk_core
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/master' into developQMK Bot2025-11-304-7/+7
|\
| * [CI] Format code according to conventions (#25827)QMK Bot2025-11-304-7/+7
| | | | | | Format code according to conventions
* | [Core] suspend: suppress wake up keypress (#23389)Stefan Kerkmann2025-11-113-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Implement minimal connection update logic (#25334)Joel Challis2025-11-072-2/+45
|/
* docs: fix misspellings (#25555)François Magimel2025-09-091-1/+1
| | | | | | | | * 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.
* Align sleep_led logic (#25395)Joel Challis2025-06-274-50/+2
|
* [Bug] Fix `usb_endpoint_interface_lut` multiple def compile err (#25378)Xelus222025-06-181-1/+1
|
* Add `compiler_support.h` (#25274)Pablo Martínez2025-05-221-1/+2
|
* Remove more USB only branches from NKRO handling (#25263)Joel Challis2025-05-141-6/+6
|
* Add raw_hid support to host driver (#25255)Joel Challis2025-05-128-36/+65
|
* Remove force disable of NKRO when Bluetooth enabled (#25201)Joel Challis2025-05-063-6/+21
|
* Bind Bluetooth driver to `host_driver_t` (#25199)Joel Challis2025-05-051-29/+54
|
* High resolution scrolling (without feature report parsing) (#24423)eynsai2025-04-233-2/+70
| | | | | | | * hires scrolling without feature report parsing * fix valid range for exponent * fix incorrect minimum exponent value documentation
* Align ChibiOS `USB_WAIT_FOR_ENUMERATION` implementation (#25184)Joel Challis2025-04-221-13/+4
|
* Implement connection keycode logic (#25176)Joel Challis2025-04-211-4/+7
|
* [chore]: move and rename mouse/scroll min/max defines (#25141)Stefan Kerkmann2025-04-131-0/+8
| | | | | | | | | * 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.
* [Core] chibios: usb_main: remove OTG sof workaround (#24259)Stefan Kerkmann2024-12-151-8/+0
| | | | | | | | 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>
* Joystick: add support for 8-way hat switch (#24515)Ryan2024-11-094-0/+43
|
* [Core] `usb_device_state`: consolidate usb state handling across ↵Stefan Kerkmann2024-10-188-101/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/master' into developQMK Bot2024-10-152-2/+2
|\
| * Digitizer: fix units tag in report descriptor (#24482)Ryan2024-10-152-2/+2
| |
* | Extended wheel reports (#24422)eynsai2024-10-063-15/+49
| | | | | | extended wheel reports
* | Allow for `get_hardware_id()` to be used for serial number. (#24053)Nick Brassel2024-10-061-13/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Remove `RING_BUFFERED_6KRO_REPORT_ENABLE` due to disuse. (#24433)Nick Brassel2024-09-242-97/+0
| |
* | Remove `arm_atsam` platform (#24337)Joel Challis2024-09-0257-16283/+0
|/
* Fix NKRO and Mouse Emulation on arm_atsam (#23945)Izumemori2024-08-131-1/+17
|
* Align LUFA suspend logic (#24055)Joel Challis2024-07-051-1/+1
|
* Change suspend condition check order on ChibiOS (#24020)Drashna Jaelre2024-07-041-1/+1
|
* [FIX] ChibiOS: USB Digitizer and Joystick IN endpoint compilation (#23854)Stefan Kerkmann2024-06-032-3/+3
| | | | Co-authored-by: Ryan <fauxpark@gmail.com>
* Fix WAIT_FOR_USB handling (#23598)Joel Challis2024-04-243-2/+16
|
* Remove midi_ep_task from ChibiOS (#23162)Robin Carlier2024-03-292-16/+0
| | | Co-authored-by: Joel Challis <git@zvecr.com>
* Refactor vusb to protocol use pre/post task (#14944)Joel Challis2024-03-144-43/+16
|
* [Core] Refactor ChibiOS USB endpoints to be fully async (#21656)Stefan Kerkmann2024-02-2812-1126/+1303
|
* Update GPIO macro usages in core (#23093)Ryan2024-02-183-18/+18
|
* [Core] Add OS detection callbacks (#21777)Andre Brait2024-02-161-0/+9
|
* Align VUSB suspend protocol logic (#22688)Joel Challis2024-02-011-38/+51
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2024-01-221-0/+4
|\
| * Fix missing joystick.h include (#22946)Ryan2024-01-221-0/+4
| |
* | Remove console out endpoint (#22304)Joel Challis2024-01-097-138/+66
|/
* V-USB: implement NKRO (#22398)Ryan2023-11-261-4/+45
|
* V-USB: Add generic `send_report()` function (#22323)Ryan2023-11-263-92/+53
|
* Slight refactor of joystick axis type into typedef (#22445)Ryan2023-11-121-5/+7
|
* Add "AC Next Keyboard Layout Select" consumer usage entry (macOS Globe key) ↵Ryan2023-10-311-40/+41
| | | | (#22256)
* [Maintenance] USB HID control packet as struct (#21688)Stefan Kerkmann2023-10-272-92/+82
| | | | | | | | | | | | * 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.
* V-USB: Fix `GET_IDLE/SET_IDLE` (#22332)Ryan2023-10-271-16/+12
| | | | Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
* V-USB: Implement `GET_PROTOCOL` and `SET_PROTOCOL` handling (#22324)Ryan2023-10-251-24/+38
|
* Separate 6KRO and NKRO report structs (#22267)Ryan2023-10-2311-140/+122
|
* Prep work for NKRO report separation (#22268)Ryan2023-10-143-15/+16
| | | | | | | | | | | * Clean up some keyboard/userspace code * Rename `KEYBOARD_REPORT_BITS` -> `NKRO_REPORT_BITS` * Add some missing includes * Use `PACKED` define for report types * Fix incorrect function signatures for FlexRAM EEPROM driver
* [Core] Bump mouse endpoint packet size to 16 bytes (#21711)Stefan Kerkmann2023-09-252-2/+2
|
* Remove old `IS_LED_ON/OFF()` macros (#21878)Ryan2023-09-031-3/+0
|