summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-05-26ch32_usbhs: fix endpoint stall length index and clear-stall responseJie Feng
Fix issue in the stall handling: - dcd_edpt_stall() for an IN endpoint cleared EP_TX_LEN(0) instead of EP_TX_LEN(ep_num), clobbering endpoint 0's transmit length register when stalling any other IN endpoint. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-05-25Merge pull request #3649 from hathach/hathach-fundingHa Thach
Set GitHub Sponsors username in FUNDING.yml
2026-05-25Set GitHub Sponsors username in FUNDING.ymlHa Thach
Updated GitHub Sponsors username for funding.
2026-05-23Merge pull request #3622 from mickabrig7/masterZixun LI
fix(dcd_ch32_usbfs): fix dropped bulk OUT packets by properly re-arming EP_RX_CTRL state
2026-05-23dcd/ch32x: optmize CTRL reg writing, basically revert e14b0e85HiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-23dcd/ch32hs: refactor transfer flowHiFiPhile
Refactor the driver to follow USBFS style for easier maintenance. Replace the old packet/response helpers with explicit queue and update paths for IN and OUT transfers. Introduce transfer validity tracking and per-endpoint data toggle state. Reset toggle state on init, close-all, endpoint close, clear-stall, and bus reset. Initialize endpoint controls consistently in NAK + TOG_0 mode. Tighten EP0 setup/status handling and route transfer IRQ processing through the transfer-flag path. Stop enabling ISO_ACT in INT_EN and clear unhandled interrupt flags explicitly. Signed-off-by: HiFiPhile <[email protected]>
2026-05-23tweak examplesHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-23dcd/ch32fs: do not set EP0 to ACK on status completeHiFiPhile
It would casue race condition, SETUP packet is always acked. Signed-off-by: HiFiPhile <[email protected]>
2026-05-23dcd/ch32fs: clear INT flag after processingHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-23dcd/ch32x : code reformatHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-23dcd/ch32fs: set EP to NAK earlier to reduce spuroius transferHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-23set ch32v20x EP on supported audio examplesHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-22dcd/ch32fs: reset EP on clear stallHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-22dcd/ch32fs: fix ISO IN transferHiFiPhile
OUT is still buggy Signed-off-by: HiFiPhile <[email protected]>
2026-05-22dcd/ch32fs: only enable EP0 ACK if no data stage, reduce raceHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-22dcd/ch32fs: reset EP regs on bus resetHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-22ch32v20x: fix port1 IP selectionHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-22bsp/ch32: fix linker report 100% RAM usageHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-22Merge remote-tracking branch 'tinyusb/master' into mickabrig7/masterHiFiPhile
2026-05-19Merge pull request #3571 from sauloverissimo/feat/midi2-device-host-driverZixun LI
feat: Add USB-MIDI 2.0 Device and Host class drivers
2026-05-19midi2_host: convert TX to raw FIFO mirroring midi2_device refactorSaulo Veríssimo
2026-05-18update exampleHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-18midi2: convert to raw Tx FIFO for better segmentation handling, add count to ↵HiFiPhile
packet api Signed-off-by: HiFiPhile <[email protected]>
2026-05-18midi2: boundary-aware drain in xfer_cb to keep UMP packets intactSaulo Veríssimo
2026-05-17midi2: drain pattern for RX FIFOSaulo Veríssimo
Default RX/TX buffers to EPSIZE for both device and host. Document drain-in-loop on ump_read; example device callback drains until empty.
2026-05-17midi2: scale device buffers with EPSIZESaulo Veríssimo
Match midi2_host pattern. Literal 256 underran HS endpoints (512B).
2026-05-17midi2: per-interface weak callbacks for UMP Stream configSaulo Veríssimo
Lets each instance return different NUM_GROUPS, NUM_FUNCTION_BLOCKS, EP_NAME and PRODUCT_ID. Defaults fall back to the macros.
2026-05-17midi2: peek 4 bytes for MT, restore 256 buffersSaulo Veríssimo
MT is in byte 3 of the UMP word in LE memory, not byte 0. Buffers at mps blocked RX xfer re-arm on partial packets.
2026-05-17midi2: use hwfifo if supportedHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-17midi2: move config to class headerHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-17bsp: fix tcpp0203 lto uninit errorHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-16midi2: skip.txt commentsSaulo Veríssimo
2026-05-16midi2: skip 3 more boards with same tcpp0203 BSP bugSaulo Veríssimo
stm32h573i_dk, stm32n657nucleo and stm32n6570dk have the same pre-existing uninitialized io_ctx.GetTick in their board.h that we already skip on stm32h7s3nucleo. Trips with Make+LTO; CMake passes.
2026-05-16midi2: remove unused ump_noop helperSaulo Veríssimo
arm-clang fails with -Werror=unused-function; arm-gcc was silently omitting it via LTO. The helper was never called.
2026-05-16midi2: add sources to TINYUSB_SRC_C, skip familySaulo Veríssimo
Make build was missing midi2_device.c/midi2_host.c from src/tinyusb.mk. Skip stm32h7s3nucleo board which exposes a pre-existing uninitialized warning in its board.h (board_init2) under Make+LTO.
2026-05-16midi2: fix CI matrix with only.txt and skip.txtSaulo Veríssimo
Restrict midi2_host build to MCUs with USB host support (cloned from midi_rx) and skip SAMD11 from midi2_device (ROM overflow on link).
2026-05-16midi2: host example - simplify and rename to midi2_hostSaulo Veríssimo
Drop Feather-specific scaffolding (SSD1306 display, font, PIO-USB pin override) and rename the directory to midi2_host. The example is now a single main.c + tusb_config.h pair following the midi_rx pattern, with a printf-only UMP decoder for Channel Voice messages. Build-tested on adafruit_feather_rp2040_usb_host, daisyseed (stm32h7), mimxrt1010_evk, stm32f407disco, raspberry_pi_pico2, b_u585i_iot2a, portenta_c33, stm32h503nucleo, stlinkv3mini, feather_stm32f405. Ref #3571
2026-05-16midi2: device example - portable, add protocol fallbackSaulo Veríssimo
Remove the rp2040-only guard; the example now follows the audio_test pattern (only Espressif uses its own build system). Add CMakePresets.json and generic product strings. The runtime fallback picks the path that matches the host state, per message, mirroring the idea behind the UAC examples: Alt 0 USB-MIDI 1.0 32-bit Event Packets (packet_write) Alt 1 + MIDI 1.0 negotiated UMP MT 0x2 (ump_write) Alt 1 + MIDI 2.0 negotiated UMP MT 0x4 (ump_write) Build-tested on rp2040, rp2350, stm32f0/f1/f2/f3/f4/f7/g0/g4/h5/h7/l0/l4/u0/u5/wb/c0, samd2x_l2x, samd5x_e5x, same7x, nrf, imxrt, lpc17, lpc55, mcx, ra, da1469x, efm32. Ref #3571
2026-05-16midi2: prevent UMP packet split across USB transfersSaulo Veríssimo
The edpt_stream auto-flush is byte-oriented and could cut an UMP message in half when the FIFO reached wMaxPacketSize, corrupting the peer's RX context. Pre-flush whole packets before writing one that would cross the boundary on both device (tud_midi2_n_ump_write) and host (tuh_midi2_ump_write) paths. Host write also becomes packet-aware instead of word-by-word. Ref #3571
2026-05-16midi2: reject UMP read/write API on alt setting 0Saulo Veríssimo
Alt 0 carries USB-MIDI 1.0 32-bit Event Packets, not UMP words; calling the UMP API there would misinterpret the stream. Expose MIDI_PROTOCOL_MIDI1 and MIDI_PROTOCOL_MIDI2 in the public header so applications can branch on the negotiated protocol. Ref #3571
2026-05-16Merge pull request #3644 from bdolgov/fix/rp2040-hcd-set-report-pidZixun LI
rp2040 host: fix SET_REPORT (and any OUT-data control xfer) sending DATA0 instead of DATA1
2026-05-15rp2040: fix host SET_REPORT (and any OUT-data control xfer) sending DATA0 ↵Boris Dolgov
instead of DATA1 hcd_edpt_xfer() previously reset ep->next_pid to 1 only when the control endpoint direction changed between stages. That handled IN-data control transfers (e.g. GET_REPORT, GET_DESCRIPTOR) where SETUP is OUT and DATA is IN, but not OUT-data class requests like SET_REPORT, where SETUP and DATA are both OUT and the direction-change check is false. ep->next_pid was left at 0 from hcd_edpt_open(), so the DATA stage went on the wire as DATA0 when the device expected DATA1. Strict devices (observed: Elgato Stream Deck) treat this as a protocol violation and disconnect. Key off "endpoint 0" instead of "direction changed", restoring the previous behavior. Interrupt/bulk endpoints take the ep->interrupt_num > 0 branch above and never reach this code, so they are unaffected.
2026-05-14Merge pull request #3641 from wjklimek1/mtp-get-partial-objectZixun LI
Add GetPartialObject to MTP example
2026-05-13Add GetPartialObject to MTP exampleWojciech Klimek
Added support for GetPartialObject for better compatibility with Linux file explorers.
2026-05-13Merge pull request #3640 from hathach/dwc2_iso_inZixun LI
dcd/dwc2: fix ISO IN endpoint become disabled after incomplete transfer
2026-05-12hil: add audio test, optimize log printHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-12Merge pull request #3639 from michael-membrowse/membrowse_map_supportZixun LI
ci: MemBrowse - add libraries mapping support
2026-05-12dcd/dwc2: fix ISO IN endpoint become disabled after incomplete transferHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-12support map filesMichael Rogov Papernov
2026-05-12midi2: align descriptors with USB-MIDI 2.0 specSaulo Veríssimo
Brings the MIDI 2.0 device driver into full conformance with USB Device Class Definition for MIDI Devices v2.0 (USB-IF, May 2020). - Alt 1 MS Interface Header wTotalLength now reports 0x0007 per Table 5-2 ("set to match bLength"), replacing the prior 0x0011 carried over from USB-MIDI 1.0 conventions. - GET_DESCRIPTOR class request now validates bmRequestType direction, type and recipient plus wIndex and wValue high byte per Section 6. - iBlockItem in the default Group Terminal Block is driven by CFG_TUD_MIDI2_BLOCK_STRIDX so applications can attach a UI string descriptor to the block per Table 5-6. - UMP word byte order assumption (little-endian host per Section 3.2.2) is documented inline so future big-endian ports know where to wrap access with tu_htole32 / tu_le32toh. Validated on RP2040 and ESP32-P4 under Linux kernel 6.17: lsusb -v reports wTotalLength = 0x0007 on Alt 1 MS Header (raw bytes 07 24 01 00 02 07 00). amidi -l enumerates Group Terminals exposed via the class-specific GET_DESCRIPTOR response.