Commit Graph

340 Commits

Author SHA1 Message Date
0849a5c172 docs: keep the changelog page last in the toctree (maintainers before it)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 14:36:48 +07:00
ae87287f5b Revert MAINTAINERS to .rst and add it to the docs build
- restore MAINTAINERS.rst (drop the .md); make the changelog link absolute so it
  resolves both on GitHub and in the rendered docs
- docs/maintainers.rst includes the root file (same pattern as README) and is
  wired into the Documentation toctree

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 14:33:15 +07:00
461dff5911 Fix code-review findings (changelog rendering, release skill, sidebar)
- changelog: fix 3 silent RST mis-renders carried over from the old monolith
  — Markdown link in 0.7.0, mismatched/single backticks in 0.18.0 / 0.20.0
- make-release skill contributors one-liner: parallelize the gh fetch, anchor
  the bot filter (was a substring that dropped handles like "abbott"), and join
  with ", " (paste -sd cycles the delimiter -> "@a,@b @c"); finalize now stages
  only the reviewed set (git add -A -- ':!.idea'); drop the obsolete CRLF gotcha
- make_release.py: emit LF not CRLF in the repository.yml insertion (fixes the
  gotcha at the source)
- docs sidebar: drop the hardcoded furo component list; override brand.html to
  include furo's own template + the sponsor button (decoupled from furo
  internals, no upper-bound pin needed); move sponsor styles into custom.css
- .pre-commit-config.yaml: drop stale end-of-file-fixer excludes for the
  deleted contributors/CoC include shims

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 10:57:26 +07:00
0657ecf728 Address Codex review: release skill + furo requirement
- make-release skill: stage new files with git add -A in finalize, use
  unprefixed release tags (X.Y.Z), and run validate build steps in subshells
  so the cwd doesn't leak between commands
- docs/requirements.txt: require furo>=2025.12.19 so the sidebar component
  list in conf.py (incl. variant-selector.html) is always available

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 10:23:36 +07:00
ce23b8d72e Address Copilot review; move release process into the make-release skill
- README: restore the separate CH32V103 / CH583,CH582 rows in the Supported
  CPUs table — the merged row wrongly applied "ISO data loss [2]" to CH583/2
- Fix typos in historical changelog entries (santiy, Venndor, dynamnic, bagde,
  masstorage, techinical, walkaround, "Update Update") flagged by Copilot
- Replace the AGENTS.md Release section with a pointer to the make-release
  skill; add a Finalize step (maintainer commit/tag/push + GitHub release) to
  the skill so nothing is lost

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 09:10:50 +07:00
c887bd907c Bump version to 0.21.0; rework changelog, contributors, and docs
Release:
- Bump version to 0.21.0 and regenerate tusb_option.h, library.json,
  repository.yml, sonar-project.properties, boards.rst, dependencies.rst
- Add 0.21.0 release notes and split the changelog into per-release files
  under docs/info/changelog/ (date out of title, driver/class groups as
  sub-headings, DCD & HCD section after Device/Host stacks)

Contributors:
- Credit each release's PR authors in a Contributors section
- Drop the curated contributors page; add MAINTAINERS.rst

Docs:
- Update Code of Conduct to Contributor Covenant 3.0 (keep it in the repo,
  remove it from the built docs)
- Sidebar: add a home entry, rename the group to "Documentation", move
  Changelog into it, add a GitHub Sponsor button, merge external links,
  rename FAQ; hide the inline toctree on the landing page
- Add the make-release skill and update the AGENTS.md release process

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 23:38:01 +07:00
40f4c12c6b Merge pull request #3743 from hathach/claude/build-doc-skill
docs: add build-doc tooling and a README for every example
2026-06-29 12:56:16 +07:00
ba32b46ebd docs: address Copilot review on the example READMEs
- Order CFG_TUH_DEVICE_MAX before CFG_TUH_HID in the host config snippets
  (cdc_msc_hid, hid_controller) so the documented snippet has no forward
  macro reference when copied into tusb_config.h.
- Fix stale `examples.rst` references: the generator now writes per-group
  `docs/examples/<group>/index.rst` pages, so update the conf.py comment and
  the build-doc SKILL.md accordingly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 10:42:41 +07:00
4b1c8d16f7 docs: add build-doc tooling and a README for every example
Documentation tooling:
- Add the `build-doc` skill and `tools/build_doc.py` wrapper for local
  Sphinx builds (clean / -W / open).
- Enable Markdown (MyST) in conf.py and auto-collect
  examples/{device,host,dual}/*/README.md into a 3-level Examples nav
  (Examples > Device/Host/Dual > example), noting each page's source
  location and normalizing headings to a single H1.
- Remove the stale `.claude/commands/build-doc.md`; point the AGENTS.md
  Documentation section at the skill.

Example docs:
- Add a README.md for every device/host/dual example: what it does, USB
  interface table, notable tusb_config.h settings, generic CMake + Make
  build steps, and how to try it.
- Fold each *_freertos variant into its base README, noting the FreeRTOS
  source path and any RTOS-specific behavior.

Generated docs/examples/ output is git-ignored. Builds clean with
`sphinx-build -W`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 10:16:25 +07:00
8ee82a55c9 bsp/stm32h5: fix uart definition
Signed-off-by: HiFiPhile <admin@hifiphile.com>
2026-06-27 12:53:53 +02:00
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