aboutsummaryrefslogtreecommitdiff
path: root/tmk_core
Commit message (Collapse)AuthorAgeFilesLines
* Align sleep_led logic (#25395)Joel Challis5 days4-50/+2
|
* [Bug] Fix `usb_endpoint_interface_lut` multiple def compile err (#25378)Xelus2213 days1-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 <[email protected]>
* 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 <[email protected]> * 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 <[email protected]> * keyboards: fix oversize warnings Signed-off-by: Stefan Kerkmann <[email protected]> --------- Signed-off-by: Stefan Kerkmann <[email protected]>
* Merge remote-tracking branch 'origin/master' into developQMK Bot2024-10-152-2/+2
|\
| * Digitizer: fix units tag in report descriptor (#24482)0.26.9Ryan2024-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)0.25.6Stefan Kerkmann2024-06-032-3/+3
| | | | Co-authored-by: Ryan <[email protected]>
* Fix WAIT_FOR_USB handling (#23598)Joel Challis2024-04-243-2/+16
|
* Remove midi_ep_task from ChibiOS (#23162)Robin Carlier2024-03-282-16/+0
| | | Co-authored-by: Joel Challis <[email protected]>
* 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-171-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)0.23.6Ryan2024-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 <[email protected]>
* 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
|
* Revert changes to ChibiOS Suspend Code (#21830)Drashna Jaelre2023-08-272-22/+56
| | | | | | | | | | | | | | | | | | | | | * Partially revert #19780 * Finish * Get teensy 3.5/3.6 board files too * fix lint issue * Revert "[Bug] Restore usb suspend wakeup delay (#21676)" This reverts commit e8e989fd7ad7c10e725e50ae8b0a4426e09f7f30. * Apply suggestions from code review Co-authored-by: Joel Challis <[email protected]> --------- Co-authored-by: Joel Challis <[email protected]>
* [Bug] Restore usb suspend wakeup delay (#21676)Stefan Kerkmann2023-08-022-44/+14
| | | | | | | | | * Respect USB_SUSPEND_WAKEUP_DELAY on wakeup This delay wasn't honored after removing `restart_usb_driver` from the suspend and wakeup handling. It is now re-introduced in the appropriate spot, namely after issuing a remote wakeup to a sleeping host. * Remove old, unused and commented testing code
* Fix mouse-key spamming empty reports (#21663)Stefan Kerkmann2023-08-021-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | Problem: `mousekey_task` spams empty hid reports with when a mouse key is pressed, causing resource exhaustion in the USB mouse endpoint. Cause: The check whether or not to send a new mouse report would always evaluate to true if a mouse key is pressed: 1. `mouse_report` has non-zero fields and `tmpmr` is a copy of this fields. 2. `mouse_report` is set to zero, `tmpmr` has now non-zero fields. 3. `has_mouse_report_changed` compares the two and evaluates to true 4. a mouse report is sent. Fix: The check condition of `has_mouse_report_changed` will evaluate any empty record as unchanged, as mouse report data is relative and doesn't need to return to zero. An empty report will still be send by `register_mouse` on release of all mouse buttons.
* Update keyboard report descriptor for USB compliance (#21626)Stefan Kerkmann2023-07-282-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Running the "HID Tests" suite of the USB 3 Command Verifier (USB3CV) tool resulted in the following error: (HID: 3.2.61) The report descriptor returned in response to a GetDescriptor(Report) must be compliant with the HID specification. Byte Number: 37h ( 55d) Data Field: 91 02 Mnemonic: Output Value: (Variable) Errors: Error: LOGICAL MAX MUST be bounded by Report Size The error stems from the fact that logical minimum and maximum are global items, which means that the next item in a report descriptor inherits the value from the previously set value. In this case the status leds item inherited the logical minimum (=0) and maximum (=255) from the keycodes item. As the status leds set a report size of 1 bit, wich can only hold a boolean, it becomes clear that this range would never fit. The fix is straightforward, we just define a appropriate logical maximum (=1), the mismatch is solved and our keyboard now passes the compliance tests. Defining the logical minimum is redundant in this case but is kept to form a logical block.
* quantum: remove direct `quantum.h` includes (#21507)Ryan2023-07-163-0/+4
|