aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/protocol/lufa
Commit message (Collapse)AuthorAgeFilesLines
* Align sleep_led logic (#25395)Joel Challis5 days1-13/+0
|
* Add raw_hid support to host driver (#25255)Joel Challis2025-05-121-16/+19
|
* [Core] `usb_device_state`: consolidate usb state handling across ↵Stefan Kerkmann2024-10-181-25/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>
* Align LUFA suspend logic (#24055)Joel Challis2024-07-051-1/+1
|
* Fix WAIT_FOR_USB handling (#23598)Joel Challis2024-04-241-1/+6
|
* Refactor vusb to protocol use pre/post task (#14944)Joel Challis2024-03-141-5/+1
|
* Remove console out endpoint (#22304)Joel Challis2024-01-091-33/+13
|
* Separate 6KRO and NKRO report structs (#22267)Ryan2023-10-231-20/+14
|
* tmk_core: remove direct `quantum.h` includes (#21465)Ryan2023-07-071-1/+1
|
* [Bug] Fix non-functional S3 wakeup / resume from suspense (#19780)Stefan Kerkmann2023-06-261-1/+1
| | | | | | | | | | | | | | | | | | | | * Update ChibiOS-Contrib for USB suspend fixes * Remove S3 wakup workaround ChibiOS OTGv1 driver has a remote wakeup bug that prevents the device to resume it's operation. 02516cbc24647f522eee975e69cc0c8a925470eb introduced a hotfix that forcefully restarted the usb driver as a workaround. This workaround broke multiple boards which do not use this driver / peripheral. With the update of ChibiOS this hotfix is now obsolete. * Remove restart_usb_driver overrides they are no longer necessary as the workaround is not needed anymore for stm32f4 * Remove unused RP_USB_USE_SOF_INTR defines The SOF interrupt is enabled dynamically by the RP2040 usb driver
* Move protocol makefiles into their respective folders (#21332)Ryan2023-06-221-0/+52
| | | | | * Move protocol makefiles into their respective folders * Fix USB-USB converter
* Fix functions with empty params (#19647)Ryan2023-01-201-2/+2
| | | | | * Fix functions with empty params * Found a bunch more
* Detect host OS based on USB fingerprint (#18463)Ruslan Sayfutdinov2022-12-091-1/+1
| | | | Co-authored-by: Drashna Jaelre <[email protected]> Co-authored-by: Nick Brassel <[email protected]>
* Joystick feature improvements (#19052)Ryan2022-11-271-1/+1
|
* LUFA: Consolidate report sending code (#18629)Ryan2022-10-151-118/+43
|
* Make MIDI output endpoint use the out direction (#18654)nezumee2022-10-091-1/+1
|
* Refactor `send_extra` (#18615)Ryan2022-10-061-5/+3
|
* Refactor more host code (programmable button & digitizer) (#18565)Ryan2022-10-051-10/+3
|
* Further refactoring of joystick feature (#18437)Ryan2022-09-271-48/+3
|
* Move Bluetooth-related function calls up to host/keyboard level (#18274)Ryan2022-09-071-51/+0
| | | | | | | | | | | * Move Bluetooth-related function calls up to host/keyboard level * Remove pointless set_output() call * Move bluetooth (rn42) init to end of keyboard_init() * Enable SPI/UART for ChibiOS targets * Some more slight tweaks
* 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-28/+7
| | | | | | | | | * Simplify extrakeys sending at the host driver level * There are two arguments here * Wrong syntax * Adjust keyboards which use a custom host driver
* Format code according to conventions (#16322)QMK Bot2022-02-122-20/+41
|
* Rename `AdafruitBLE` to `BluefruitLE` (#16127)Ryan2022-01-301-15/+15
|
* Migrate RN42 to UART driver and refactor (#15492)Ryan2021-12-221-70/+7
|
* Revert to old init order for host driver (#15029)Joel Challis2021-11-021-3/+3
| | | * Partially revert 14888
* Begin to carve out platform/protocol API - Migrate keyboard_* calls (#14888)Joel Challis2021-10-241-15/+4
|
* Remove sysex API (#14723)Ryan2021-10-061-11/+0
|
* Added power tracking api (#12691)Purdea Andrei2021-09-301-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Add power tracking API to lufa and chibios targets * power.c: Pass through power state to the notify function * power: added notify_power_state_change_user too. * making it pass the PR linter * Add a POWER_STATE_NO_INIT state, that we start in before calling power_init(); * Rename *power* to *usb_power* * removing stray newline * Rename usb_power* to usb_device_state* * Update quantum/usb_device_state.h Co-authored-by: Drashna Jaelre <[email protected]> * Fix comment * usb_device_state.h: Don't include quantum.h, only the necessary headers. Co-authored-by: Drashna Jaelre <[email protected]>
* Relocate Adafruit BLE code (#14530)Ryan2021-09-215-939/+0
|
* core: fix compilation issues with USB programmable buttons (#14454)Thomas Weißschuh2021-09-161-0/+2
| | | | Reported here: https://github.com/qmk/qmk_firmware/pull/12950#issuecomment-920329569
* Add Support for USB programmable buttons (#12950)Thomas Weißschuh2021-09-151-10/+23
|
* Backport F_CPU/F_USB hack from system76 (#14286)0.14.13Drashna Jaelre2021-09-081-1/+6
| | | Co-authored-by: Ryan <[email protected]>
* Fix typo (#14118)Dasky2021-08-231-1/+1
|
* Begin to carve out platform/protocol API - Single main loop (#13843)Joel Challis2021-08-181-34/+30
| | | | | * Begin to carve out platform/protocol API * Fix up after rebase
* Digitizer HID interface : absolute coordinates for mouse cursor (#12851)a-chol2021-08-181-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
|
* [Core] ChibiOS fix O3 and LTO breakage of extra keys and joystick (#12819)Stefan Kerkmann2021-06-061-17/+17
|
* Fixup housekeeping from being invoked twice per loop. (#12933)Nick Brassel2021-05-181-2/+1
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2021-04-251-5/+6
|\
| * Fix how USB queue overflow is handled in chibios. (#12576)0.12.39Purdea Andrei2021-04-251-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix how USB queue overflow is handled in chibios. This commit reverts PR 12472 (commit c823fe2d3f23ed090e36ce39beed4c448298bd2f), and it implements the original intent of the commit in a better way. The original intent of the above mentioned commit was to not deadlock the keyboard when console is enabled, and hid_listen is not started. The above mentioned commit had a few drawbacks: 1) When a lot of data was printed to the console, the queue would get full, and drop data, even if hid_listen was running. (For example having matrix debug enabled just didn't work right at all) 2) I believe the function in which this was implemented is used by all other USB endpoints, so with the above change, overflow, and data loss could happen in other important functions of QMK as well. This commit implements deadlock prevention in a slightly similar way to how it's done on AVR. There is an additional static local variable, that memorizes whether the console has timeouted before. If we are in the timeouted=false state, then we send the character normally with a 5ms timeout. If it does time out, then hid_listen is likely not running, and future characters should not be sent with a timeout, but those characters should still be sent if there is space in the queue. The difference between the AVR implementation and this one is that the AVR implementation checks the queue state directly, but this implementation instead attempts to write the character with a zero timeout. If it fails, then we remain in the timeouted=true state, if it succeeds, then hid_listen started removing data from the queue, so we can go out of the timeouted=true state. * Added comment explaining the timeouted logic to console flow control. * Console flow control: refactor chibios flowcontrol code to make it more readable, and rename the timeouted variable to timed_out on both chibios and lufa. Changed comments to says timed_out is an approximation of listener_disconnected, to make it clear that it's not the same thing * fix typo
* | Refactor of USB code within split_common (#11890)Joel Challis2021-02-281-0/+34
|/ | | | | | | | | | | * Initial refactor of usb code within split_common * Add headers * Correct disable condition * Format * Align func name
* Output selection: Remove "USB and BT" option (#11940)Ryan2021-02-202-30/+5
|
* Refactor platform logic within print.h (#11863)Joel Challis2021-02-141-1/+0
| | | | | | | | | | | | | | | | | | | | | | | * 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]>
* Address wake from sleep instability (#11450)Joshua Diamond2021-02-021-4/+20
| | | | | | | | | | | | | | | | | | | | | * resolve race condition between suspend and wake in LUFA * avoid multiple calls to suspend_power_down() / suspend_wakeup_init() * Remove duplicate suspend_power_down_kb() call * pause on wakeup to wait for USB state to settle * need the repeated suspend_power_down() (that's where the sleep is) * more efficient implementation * fine tune the pause after sending wakeup * speculative chibios version of pause-after-wake * make wakeup delay configurable, and adjust value * better location for wakeup delay
* Adafruit BLE cleanups (#11556)0.11.48Ryan2021-01-153-32/+26
|
* Change include guards in tmk_core/ and drivers/ to pragma once (#11240)0.11.22Ryan2020-12-261-4/+1
|
* Normalise include statements in core code (#11153)0.11.5Ryan2020-12-111-1/+1
| | | | | * Normalise include statements in core code * Missed one
* 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
* format code according to conventions [skip ci]0.10.1QMK Bot2020-08-292-14/+18
|