aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/protocol/vusb
Commit message (Collapse)AuthorAgeFilesLines
* Joystick: add support for 8-way hat switch (#24515)Ryan2024-11-091-0/+17
|
* [Core] `usb_device_state`: consolidate usb state handling across ↵Stefan Kerkmann2024-10-181-24/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-151-1/+1
|\
| * Digitizer: fix units tag in report descriptor (#24482)Ryan2024-10-151-1/+1
| |
* | Extended wheel reports (#24422)eynsai2024-10-061-8/+22
|/ | | extended wheel reports
* Refactor vusb to protocol use pre/post task (#14944)Joel Challis2024-03-142-25/+15
|
* Align VUSB suspend protocol logic (#22688)Joel Challis2024-02-011-38/+51
|
* Remove console out endpoint (#22304)Joel Challis2024-01-092-18/+0
|
* V-USB: implement NKRO (#22398)Ryan2023-11-261-4/+45
|
* V-USB: Add generic `send_report()` function (#22323)Ryan2023-11-263-92/+53
|
* 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-231-1/+7
|
* Update keyboard report descriptor for USB compliance (#21626)Stefan Kerkmann2023-07-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Move protocol makefiles into their respective folders (#21332)Ryan2023-06-221-0/+17
| | | | | * Move protocol makefiles into their respective folders * Fix USB-USB converter
* Detect host OS based on USB fingerprint (#18463)Ruslan Sayfutdinov2022-12-091-0/+7
| | | | Co-authored-by: Drashna Jaelre <[email protected]> Co-authored-by: Nick Brassel <[email protected]>
* Joystick feature improvements (#19052)Ryan2022-11-271-3/+74
|
* Digitizer feature improvements (#19034)Ryan2022-11-121-13/+11
|
* Refactor `send_extra` (#18615)Ryan2022-10-061-11/+3
|
* Refactor more host code (programmable button & digitizer) (#18565)Ryan2022-10-051-10/+3
|
* Adjust `EXTRAKEY_ENABLE` ifdefs for `send_extra()` (#18249)Ryan2022-09-021-2/+2
|
* Simplify extrakeys sending at the host driver level (#18230)Ryan2022-09-021-15/+2
| | | | | | | | | * Simplify extrakeys sending at the host driver level * There are two arguments here * Wrong syntax * Adjust keyboards which use a custom host driver
* Switch over MANUFACTURER and PRODUCT to string literals (#18183)Ryan2022-08-282-8/+6
|
* Add support for large Mouse Reports (#16371)Drashna Jaelre2022-06-081-1/+15
| | | | Co-authored-by: Sergey Vlasov <[email protected]> Co-authored-by: Ryan <[email protected]>
* VUSB - Use correct endpoint poll for VIA (#16691)0.16.6Joel Challis2022-03-191-1/+1
|
* Format code according to conventions (#16322)QMK Bot2022-02-123-179/+187
|
* Remove Deprecated USB Polling comment from vusb.c (#15420)Drashna Jaelre2021-12-071-1/+0
|
* Revert to old init order for host driver (#15029)Joel Challis2021-11-021-2/+3
| | | * Partially revert 14888
* Fix up issues shown by clang-format of vusb (#15004)Joel Challis2021-11-011-2/+3
|
* Begin to carve out platform/protocol API - Migrate keyboard_* calls (#14888)Joel Challis2021-10-241-7/+0
|
* Add Support for USB programmable buttons (#12950)Thomas Weißschuh2021-09-151-1/+35
|
* Begin to carve out platform/protocol API - Single main loop (#13843)Joel Challis2021-08-181-45/+44
| | | | | * Begin to carve out platform/protocol API * Fix up after rebase
* Digitizer HID interface : absolute coordinates for mouse cursor (#12851)a-chol2021-08-181-1/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add digitizer HID interface for setting the mouse cursor position at absolute screen coordinates. Tested on Pro Micro, Proton C and Blackpill. * Update docs/feature_digitizer.md Co-authored-by: Ryan <[email protected]> * Update tmk_core/protocol/usb_descriptor.c Co-authored-by: Ryan <[email protected]> * Add missing copyrights Add V-USB support * Add support for digitizer dedicated endpoint for lufa and chibios. Fix formatting issues Move digitizer_task definition to the feature's base implementation file * Run cformat on modified files * Change digitizer report usage to Digitizer instead of Pen to avoid pointer disappearing on Windows. * Update tmk_core/protocol/vusb/vusb.c Co-authored-by: Ryan <[email protected]> * Run cformat from docker image * Remove send_digitizer from host_driver_t and instead rely on the declaration being the interface to the implementation in each HW-specific usb implementation. * Fix build : send_digitizer shouldn't be static in vusb and add weak-linkage implementation for tests without usb implementation * Change digitizer user interface to match pointing device's * Update documentation with new API Co-authored-by: a-chol <[email protected]> Co-authored-by: Ryan <[email protected]>
* Avoid LTO conficts on arm_atsam (#13676)Joel Challis2021-07-241-1/+1
|
* Use string literals for `SERIAL_NUMBER` (#13403)Ryan2021-07-161-2/+2
|
* [Core] ChibiOS fix O3 and LTO breakage of extra keys and joystick (#12819)Stefan Kerkmann2021-06-061-1/+2
|
* Fixup housekeeping from being invoked twice per loop. (#12933)Nick Brassel2021-05-181-2/+1
|
* Refactor of USB code within split_common (#11890)Joel Challis2021-02-281-0/+24
| | | | | | | | | | | * Initial refactor of usb code within split_common * Add headers * Correct disable condition * Format * Align func name
* Format code according to conventions (#12046)0.12.3github-actions[bot]2021-02-271-2/+2
| | | Co-authored-by: QMK Bot <[email protected]>
* Fix build for attiny85-based boards. (#12044)0.12.2Nick Brassel2021-02-281-0/+2
|
* Merge remote-tracking branch 'upstream/master' into developfauxpark2021-02-252-17/+40
|\
| * V-USB suspend refactor (#11891)0.11.69Ryan2021-02-252-17/+40
| |
* | Refactor platform logic within print.h (#11863)Joel Challis2021-02-141-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove GCC check from debug * Remove platform logic from common.mk * Refactor platform logic within print.h * restore debug.c format * headers * Rename function pointer type * review comments * Update tmk_core/common/printf.c Co-authored-by: Nick Brassel <[email protected]> * Format Co-authored-by: Nick Brassel <[email protected]>
* | Add support for 8 buttons to mouse report (#10807)Drashna Jaelre2021-01-281-7/+3
|/ | | | | | | | | | | | | | | | | | | | | * Add support for 8 buttons to mouse report This includes support for 8 buttons in mousekeys. However, this does move the keys around due to the fact that the last mousekey keycode is already 0xFF, so any past that would not work with register_code and the like, breaking them for tap hold keys, encoders, and other features. * Update mouse key docs * Add changes based on feedback * Fix VUSB report size comment Because drashna red gud * Fix typo in action.c * Fix IS_MOUSE_BUTTON check * Change start range for mousekeys so that the end is 0xFF properly * condense mousekeys check
* Add support for shared EP on V-USB boards (#11103)0.11.43Ryan2021-01-112-40/+104
|
* V-USB: Fix initial dropped keypress (#11263)0.11.18Ryan2020-12-231-3/+2
|
* Fix small typo in V-USB configuration descriptor (#11253)0.11.15Ryan2020-12-211-1/+1
|
* Omit serial number if not defined (#11104)Ryan2020-12-051-4/+8
|
* 2020 November 28 Breaking Changes Update (#11053)0.11.0James Young2020-11-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
* Update vusb to match 3rd endpoint. (#9020)yiancar2020-08-292-12/+26
| | | | | | | | | | | | | | | | | | | | | | | | | * Update vusb to match 3rd endpoint. - With the addition of https://github.com/qmk/v-usb/pull/1 a 3rd endpoint (endpoint4) becomes available. - We can assign mouse/extrakeys to that endpoint as its a desirable feature and leave rawhid and console to compete for the 2nd endpoint. NOTE: The version of vusb.c in future branch is older than master. Just remember that it will need a #error if both raw_hid and console are enabled at the same time. * Final Fixes * Update tmk_core/protocol/vusb/vusb.c * Update tmk_core/protocol/vusb/vusb.c * Update tmk_core/protocol/vusb/usbconfig.h * Update tmk_core/protocol/vusb/usbconfig.h * Update tmk_core/protocol/vusb/usbconfig.h * Update tmk_core/protocol/vusb/usbconfig.h * Updated vusb submodule to latest commit