summaryrefslogtreecommitdiff
path: root/src/tusb.h
AgeCommit message (Collapse)Author
2026-07-02license: use SPDX identifiers for src/ headers (#3749)Ha Thach
* license: use SPDX identifiers for src/ headers Replace the full ~20-line MIT license boilerplate on every src/ file with a two-line SPDX tag (SPDX-FileCopyrightText + SPDX-License-Identifier), following the REUSE convention used by CircuitPython and the Linux kernel. Removes ~3500 lines of duplicated boilerplate.
2026-05-12feat: add MIDI 2.0 Device class driver (USB-MIDI 2.0)Saulo Veríssimo
Add native USB-MIDI 2.0 Device class driver to TinyUSB. Implements the USB-MIDI 2.0 specification with both Alt Setting 0 (MIDI 1.0 fallback) and Alt Setting 1 (UMP native) descriptor support. Driver features: - UMP (Universal MIDI Packet) read/write with atomic message framing - Protocol negotiation: Endpoint Discovery, Config Request/Notify, Function Block Discovery (embedded in driver) - Group Terminal Block descriptor via GET_DESCRIPTOR - Alt Setting switch handler with endpoint re-arm - Static allocation, no dynamic memory, ISR-safe Build system: - Register midi2d_* in usbd.c driver table - Add TUD_MIDI2_DESCRIPTOR macros to usbd.h - Add config defaults (CFG_TUD_MIDI2_*) to tusb_option.h - Add midi2_ump_word_count() to midi.h (shared by Device and Host) - Add midi2_device.c/h to family.cmake and CMakeLists.txt - Add midi2_device.h include to tusb.h All changes guarded by #if CFG_TUD_MIDI2 (default 0). Zero impact on existing drivers and examples. Tested: Raspberry Pi Pico (RP2040), Linux ALSA, Windows MIDI Services
2026-03-06update printer class: enhance descriptors, buffer sizes, and callbackshathach
2026-03-06Merge branch 'refs/heads/master' into fork/remiberthoz/device-class-printerhathach
2026-02-28replace board_millis() with tusb_time_millis_api()hathach
2026-02-27add osal_time_millis() to osal requirementhathach
implement tusb_time_millis_api() with osal_time_millis() when OS is not NONE
2026-01-07Adjust printer device class to 0.20.0 and fix compilation warningsRémi Berthoz
2026-01-04Implement Printer Device ClassRémi Berthoz
2025-10-28fix Identifiers that start with '__' or '_[A-Z]' are reserved.hathach
fix compiling with nuc family
2025-09-15Merge branch 'master' into fork/ennebi/mtphathach
2025-09-10Merge pull request #3126 from salkinium/fix/phyc_pllHa Thach
[stm32] Wait until the PHYC PLL is stable
2025-09-10use tusb_time_delay_ms_api for delay, also move tusb_time api to common.hhathach
2025-08-06Add MTP class deviceMaurizio Pesce
2025-07-10rename to tusb_deinit() to match other namingghathach
2025-07-10Merge branch 'master' into fork/roma-jam/feature/add_tusb_teardownhathach
2025-02-12Merge branch 'master' into fork/atoktoto/midihosthathach
# Conflicts: # hw/bsp/rp2040/family.cmake # src/class/midi/midi.h # src/class/midi/midi_device.c # src/device/usbd_control.c # src/host/hcd.h # src/host/usbh.c # src/host/usbh.h
2025-01-15feature(tusb): Added teardown APIRoman Leonov
2024-11-04add tusb_time_millis_api() and default/weak tusb_time_delay_ms_api(). Which ↵hathach
is required for host and some device without RTOS.
2024-10-21add tusb_time_millis(), able to reset and enable dwc2 port and get SOF activehathach
2024-10-14change the tusb_rhport_init_t struct, exclude the rhport to make API more ↵hathach
consistent
2024-10-11change tusb_init(), tusb_rhport_init() to use init struct for expandabilityhathach
2024-10-10add new tusb_int_handler(rhport, in_isr) as common irq handlerhathach
update tusb_init() to take rhport and role, defined as macro with optional argument for backward compatible
2024-04-24Remove redundant header file includes for the hid classtyustli
2023-09-27change hcd_int_handler(rhport, in_isr) signature: add in_isrhathach
change tuh_int_handler() to take in_isr as optional parameter (default = true)
2023-08-18- update nrf52 bsp for cmakehathach
- add empty tuh_int_handler/tud_int_handler if corresponidng stack not enabled - add hcd_template.c
2023-06-14rename typec driverhathach
2023-06-07inital support for usb typec and pd examplehathach
2022-11-13Add MIDI host support to tinyusbrppicomidi
2022-03-19add parse config descriptor to examplehathach
move usbh_edpt_open() to public API, remove rhport from its signature
2022-03-09adding tusb_private.h to implement common edpt claimhathach
2022-02-25rename TUSB_OPT_HOST_ENABLED to CFG_TUH_ENABLEDhathach
2022-02-25rename TUSB_OPT_DEVICE_ENABLED to CFG_TUD_ENABLEDhathach
TUSB_OPT_DEVICE_ENABLED still usable for backward compatible
2021-10-12Merge branch 'master' into add_uvcHa Thach
2021-10-05Merge branch 'j4cbo-ncm' into majbthrd-add_ncmhathach
2021-10-05rename CFG_TUD_NET to CFG_TUD_ECM_RNDIShathach
2021-09-29add files for video class devicekkitayam
2021-07-15rename CFG_TUD_DFU_MODE to simply CFG_TUD_DFUhathach
2021-05-25Merge remote-tracking branch 'official/master'Jeremiah McCarthy
2021-05-18correct hid host mount/unmount callbackhathach
rename HOST_CLASS_HID to CFG_TUH_HID
2021-04-22Replace dfu_mode with dfuJeremiah McCarthy
2021-04-12Remove DFU mode and rtJeremiah McCarthy
2021-04-05Add DFU runtime and mode "class"Jeremiah McCarthy
With the runtime and mode portions in separate classes, a single application should only be building with one or the other enabled. In some applications both might be desired at build time. The CFG_TUD_DFU_RUNTIME_AND_MODE option creates a DFU class, which asks the application which mode to initialize to. This allows a runtime change between RT and DFU mode, by just reinitializing tusb.
2021-04-05Separate DFU RT and Mode. UntestedJeremiah McCarthy
2021-02-11rename dfu_rt to dfu_runtime for easy readinghathach
also rename tud_dfu_rt_reboot_to_dfu to tud_dfu_runtime_reboot_to_dfu_cb
2020-11-04Add CDC NCM driverJacob Potter
2020-07-25Merge remote-tracking branch 'upstream/master' into uac2Reinhard Panhuber
2020-07-23example to call tud_init() after freeRTOS kernel is startedhathach
add note for usb init when using with RTOS
2020-06-20Merge branch 'master' of https://github.com/PanRe/tinyusb.git into uac2Reinhard Panhuber
2020-05-28Add bt hci device classJerzy Kasenberg
Code implements USB transport for bluetooth HCI.
2020-05-22Add basic UAC2 structure - untestedReinhard Panhuber