330 Commits

Author SHA1 Message Date
eda704ca1a hw/bsp+wch: rename the CH58x family to ch583 and OPT_MCU_CH58X to OPT_MCU_CH583
The BSP family and MCU option were named "ch58x"/"CH58X", but the supported part is
the CH583/CH582 (and the SDK repo is openwch/ch583); CH585 is a separate MCU family,
so the CH58x umbrella was misleading. Rename to the specific family:

- hw/bsp/ch58x -> hw/bsp/ch583 (dir), and the BSP-local files ch58x_it.* ->
  ch583_it.*, system_ch58x.* -> system_ch583.* (include guards/refs updated). The
  vendor SDK files (CH58x_common.h, CH58x_*.c in hw/mcu/wch/ch583) keep their names.
- OPT_MCU_CH58X -> OPT_MCU_CH583 in tusb_option.h, tusb_mcu.h, and the shared WCH
  USBFS driver (ch32_usbfs_reg.h, dcd_ch32_usbfs.c). OPT_MCU_CH582 is kept as an
  alias (same value), so either name selects the same code.
- FAMILY_MCUS CH58X -> CH583, CFG_TUSB_MCU=OPT_MCU_CH583, mcu:CH58X -> mcu:CH583 in
  the example skip lists, the CI build matrix (ci_set_matrix.py), the get_deps family
  tag, and docs/reference/boards.rst.

Board names (ch582m_evt, yd-ch582m) are unchanged. Verified: make + cmake build for
ch582m_evt, and ci.lan HIL (all device examples pass).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 15:23:08 +07:00
953abfb393 Merge remote-tracking branch 'origin/master' into add-ch58x-usbfs 2026-06-18 15:31:03 +07:00
5145b67f79 Merge remote-tracking branch 'origin/master' into stm32c5
# Conflicts:
#	README.rst
2026-06-11 17:20:15 +07:00
f19c01216f docs: revert USBFS non-ISO transfer qualification in device_issues
Restore original "Other types of transfers are not affected" statement,
removing the conditional USBHS_INT_BUSY_EN / USBFS-unconfirmed wording.

Co-authored-by: Zixun LI <HiFiPhile@users.noreply.github.com>
2026-06-02 16:59:14 +00:00
ff3fef931d docs: fix review issues in device_issues and README
- Remove duplicate toctree entry for reference/device_issues from docs/index.rst
  (already included via docs/reference/index.rst)
- Fix WCH section title: CH32V10X/CH32V20X/CH32V30X → CH32F20x/CH32V20x/CH32V30x
  to match the three actual README table entries (CH32F20x, CH32V20x, CH32V305/307)
- Update README anchor links to match the renamed section
- Qualify USBFS non-ISO transfer safety claim: USBHS is protected by
  USBHS_INT_BUSY_EN but USBFS behavior is not yet confirmed
- Fix LPC54600 note: "read errata" → "see device issues"
- Remove "totally" from LPC54600 description

Co-authored-by: Ha Thach <hathach@users.noreply.github.com>
2026-06-02 16:01:23 +00:00
22c2ece872 try to get render right
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2026-06-02 11:30:33 +02:00
64af21f930 Merge remote-tracking branch 'tinyusb/master' into ch32_warning
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2026-06-02 11:03:50 +02:00
e35b070dae rename to device issues
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2026-06-02 10:43:55 +02:00
72006885c7 add sponsor section 2026-06-02 15:24:31 +07:00
9c316a458c add device errata document
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2026-06-01 22:37:14 +02:00
d4aa0dd653 Merge remote-tracking branch 'tinyusb/master' into stm32c5
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2026-05-24 18:46:26 +02:00
4baf1883c1 midi2: convert to raw Tx FIFO for better segmentation handling, add count to packet api
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2026-05-18 23:07:49 +02:00
fa9edeff9c fix: address PR review feedback for MIDI 2.0 drivers
Host driver (midi2_host.c):
- midih2_open() now returns actual parsed length instead of max_len,
  preventing composite device interface conflicts
- Parsers (alt0/alt1) refactored to return const uint8_t* end pointer
  following midi_host.c switch/case pattern
- Alt 1 CS Endpoint now parses MIDI 2.0 layout (bNumGrpTrmBlk at
  offset 3 with MIDI_CS_ENDPOINT_GENERAL_2_0 subtype check) instead
  of reusing MIDI 1.0 struct (bNumEmbMIDIJack)
- midih2_set_config() now issues SET_INTERFACE control request via
  tuh_interface_set() before completing configuration. Falls back to
  alt 0 if SET_INTERFACE fails
- Extracted midih2_set_config_complete() and midih2_set_interface_cb()
  for async SET_INTERFACE handling

Device driver (midi2_device.c):
- midi2d_open() skip loop now checks bInterfaceNumber, stopping at
  interfaces that belong to other functions in composite devices
- SET_INTERFACE handler now rejects alt > 1 (returns false/stall)
- Named constants for GTB descriptor types and MIDI protocol values

Descriptor macros (usbd.h):
- TUD_MIDI2_DESC_ALT1_HEAD: iInterface set to 0 (consistent with
  Alt 0), wTotalLength now uses TUD_MIDI2_DESC_ALT1_CS_LEN to cover
  all Alt 1 class-specific descriptors
- TUD_MIDI2_DESC_ALT1_EP: now accepts GTB ID list via variadic args,
  emitting complete CS endpoint descriptor

Host example:
- CMakeLists.txt restricted to rp2040 family (display.c requires
  Pico SDK headers)
- display.c: null terminator after strncpy in log scroll

Documentation:
- class_drivers.rst updated to reflect SET_INTERFACE behavior and
  auto-select with fallback

Addresses: Codex P1 (#1, #2, #3), Copilot (#4-#9)
2026-05-12 11:07:44 -03:00
77cef83304 test: add MIDI 2.0 Device and Host unit tests
Add unit tests for MIDI 2.0 drivers:
- Device: UMP word count (all 16 message types), descriptor macro
  validation (length, byte layout, alt settings, endpoints),
  CS endpoint subtypes, traversal integrity
- Host: UMP word count, callback struct validation, CS endpoint
  subtypes

Also add Sphinx documentation for MIDI 2.0 class drivers (Device
and Host API reference, lifecycle, configuration, examples).

Tests: 60/60 PASS (FIFO 26/26, USBD 5/5, MIDI2 Device 18/18,
MIDI2 Host 6/6, USBD internal 5/5)
2026-05-12 11:07:44 -03:00
5ea1979e29 add stm32c5 support
Signed-off-by: HiFiPHile <admin@hifiphile.com>
2026-05-10 14:17:00 +02:00
c1e6b2635f fix(docs): update URL for STM32C071 Nucleo board documentation 2026-04-16 10:40:42 +02:00
a39e9cdf2c Add initial board support for nRF54LM20 DK 2026-04-09 11:08:39 +07:00
ec2d1d7cff Removed readme and modified the getting started doc 2026-03-31 12:39:16 +03:00
d8994a3018 Revert "Make driver init() function optional" 2026-03-23 11:46:16 +07:00
ebd18f5efa Update documentation 2026-03-22 14:20:37 +01:00
20fdaeef6c ch58x: fix MCU macro naming and add get_deps/boards entries 2026-03-18 15:23:28 +08:00
b4e92f63c6 fix windows build
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2026-03-14 09:19:24 +01:00
c5e3098c37 update rx65n_target: correct pin configuration and remove unused USB interrupt definitions 2026-03-14 12:58:41 +07:00
e2ead60107 add ft9xx-gcc toolchain support to CI 2026-03-13 23:07:46 +07:00
7ce1e78204 actual build make/cmake for ft9xx 2026-03-13 18:11:59 +07:00
5794e50c37 rename and migrate kinetis_k32l to new mcux-devices 2026-03-13 11:46:53 +07:00
0427fcfd02 Merge branch 'master' into fork/armusin/threadx_osal 2026-03-05 13:00:45 +07:00
7b934efa0d Merge branch 'refs/heads/master' into copilot/improve-build-steps-rp2040-esp32 2026-02-10 11:43:32 +07:00
e7c71fefa7 update getting_started.rst and get_deps.py for clarity and improved dependency handling 2026-02-10 11:25:46 +07:00
6e675da608 Merge branch 'hathach:master' into threadx_osal 2026-02-09 12:22:20 +04:00
320d0f88bf remove sdk setup instruction for rp2040 and espressif 2026-02-07 21:53:51 +07:00
7a4e3d0821 bsp: add STM32H747-DISCO
Signed-off-by: HiFiPhile <admin@hifiphile.com>
Signed-off-by: Zixun LI <admin@hifiphile.com>
2026-01-14 09:51:11 +01:00
104d3f2545 bsp: add TI EK-TM4C1294XL
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2026-01-14 00:21:52 +01:00
239e20ba73 support for the AT32F45X series 2025-12-30 10:44:03 +08:00
db08f5f3fe Fix trailing whitespace in getting_started.rst
- Removed trailing whitespace from line 37 as detected by pre-commit check
- Documentation builds successfully

Co-authored-by: HiFiPhile <4375114+HiFiPhile@users.noreply.github.com>
2025-12-28 14:26:06 +00:00
1bb1efa820 Use appropriate syntax highlighting for Windows commands
- Changed Windows Command Prompt blocks from bash to bat for proper highlighting
- Changed PowerShell blocks from bash to powershell for proper highlighting
- Improves documentation readability and accuracy

Co-authored-by: HiFiPhile <4375114+HiFiPhile@users.noreply.github.com>
2025-12-28 14:19:52 +00:00
83542ce912 Add detailed build instructions for rp2040 and esp32 to getting_started.rst
- Added dedicated "Building for RP2040" section with pico-sdk installation steps
- Added dedicated "Building for ESP32" section with esp-idf installation steps
- Included platform-specific instructions for Linux/macOS and Windows
- Added PICO_SDK_PATH export steps before cmake for rp2040
- Added esp-idf source/export steps before cmake for esp32
- Updated note section to reference new detailed sections
- Documentation builds successfully without errors

Co-authored-by: HiFiPhile <4375114+HiFiPhile@users.noreply.github.com>
2025-12-28 14:18:17 +00:00
003d6ebac7 ThreadX OSAL header is added. Docs are updated. 2025-12-22 15:16:09 +04:00
308bb956bf Use role TUSB_ROLE_HOST in host stack initialization 2025-12-11 09:05:06 +01:00
e1c218f648 Merge branch 'master' into xfer-fifo
# Conflicts:
#	src/common/tusb_fifo.h
2025-11-26 14:03:56 +07:00
c9b623aa63 edpt stream support xfer_fifo for device CFG_TUD_EDPT_DEDICATED_HWFIFO
cdc device omit ep buffer when hwfifo is supported
2025-11-21 17:02:56 +07:00
a85f29b2ae Doc: Typo in docs/integration.rst
Signed-off-by: Thomas Rubin <tr@andav.de>
2025-11-20 10:26:41 +01:00
551520ddb8 update changelog.rst 2025-11-20 00:09:39 +07:00
f6a77b87f0 Bump version to 0.20.0 2025-11-19 23:23:49 +07:00
6b28a4478c make TUP_DCD_EDPT_ISO_ALLOC i.e dcd_edpt_iso_alloc()/dcd_edpt_iso_activate() as default driver implementation. dcd_edpt_close() is deprecated and will be removed from all driver in the future. 2025-11-17 12:09:30 +07:00
a1ae5b20cc update doc 2025-11-11 10:53:39 +07:00
989acc1528 use CMake in getting_started examples 2025-10-21 14:09:00 +02:00
3cb248f2e5 add note about CMake 2025-10-20 21:14:28 +02:00
418239a216 add missing class driver callbacks 2025-10-20 21:14:28 +02:00
9dd67b19e2 revert unnecessary Sphinx config changes 2025-10-20 21:14:28 +02:00