summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/_templates/sidebar/sponsor.html8
-rwxr-xr-xdocs/conf.py13
-rw-r--r--docs/faq.rst6
-rw-r--r--docs/index.rst22
-rw-r--r--docs/info/changelog.rst1483
-rw-r--r--docs/info/changelog/0.10.0.rst83
-rw-r--r--docs/info/changelog/0.10.1.rst20
-rw-r--r--docs/info/changelog/0.11.0.rst107
-rw-r--r--docs/info/changelog/0.12.0.rst35
-rw-r--r--docs/info/changelog/0.13.0.rst45
-rw-r--r--docs/info/changelog/0.14.0.rst79
-rw-r--r--docs/info/changelog/0.15.0.rst86
-rw-r--r--docs/info/changelog/0.16.0.rst165
-rw-r--r--docs/info/changelog/0.17.0.rst184
-rw-r--r--docs/info/changelog/0.18.0.rst62
-rw-r--r--docs/info/changelog/0.19.0.rst247
-rw-r--r--docs/info/changelog/0.20.0.rst107
-rw-r--r--docs/info/changelog/0.21.0.rst213
-rw-r--r--docs/info/changelog/0.5.0.rst15
-rw-r--r--docs/info/changelog/0.6.0.rst70
-rw-r--r--docs/info/changelog/0.7.0.rst159
-rw-r--r--docs/info/changelog/0.8.0.rst101
-rw-r--r--docs/info/changelog/0.9.0.rst126
-rw-r--r--docs/info/changelog/index.rst27
-rw-r--r--docs/info/code_of_conduct.rst1
-rw-r--r--docs/info/contributors.rst1
-rw-r--r--docs/info/index.rst13
-rw-r--r--docs/reference/boards.rst28
-rw-r--r--docs/reference/dependencies.rst19
29 files changed, 1994 insertions, 1531 deletions
diff --git a/docs/_templates/sidebar/sponsor.html b/docs/_templates/sidebar/sponsor.html
new file mode 100644
index 000000000..db066a76c
--- /dev/null
+++ b/docs/_templates/sidebar/sponsor.html
@@ -0,0 +1,8 @@
+{# GitHub Sponsors button, shown just below the logo in the sidebar. #}
+<div class="sidebar-sponsor" style="display: flex; justify-content: center; padding: 0.4rem var(--sidebar-item-spacing-horizontal) 0.6rem;">
+ <iframe src="https://github.com/sponsors/hathach/button"
+ title="Sponsor TinyUSB"
+ height="32" width="114"
+ style="border: 0; border-radius: 6px;"
+ loading="lazy"></iframe>
+</div>
diff --git a/docs/conf.py b/docs/conf.py
index c6d04bff5..7f670f082 100755
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -43,6 +43,19 @@ html_favicon = 'assets/logo.svg'
html_theme_options = {
'sidebar_hide_name': True,
}
+# Furo default sidebar with a Sponsor button inserted just below the logo.
+html_sidebars = {
+ '**': [
+ 'sidebar/brand.html',
+ 'sidebar/sponsor.html',
+ 'sidebar/search.html',
+ 'sidebar/scroll-start.html',
+ 'sidebar/navigation.html',
+ 'sidebar/ethical-ads.html',
+ 'sidebar/scroll-end.html',
+ 'sidebar/variant-selector.html',
+ ]
+}
html_static_path = ['_static']
html_css_files = ['custom.css']
diff --git a/docs/faq.rst b/docs/faq.rst
index 97e8e72ff..d4ed59e1c 100644
--- a/docs/faq.rst
+++ b/docs/faq.rst
@@ -1,6 +1,6 @@
-**************************
-Frequently Asked Questions
-**************************
+****
+FAQs
+****
General Questions
=================
diff --git a/docs/index.rst b/docs/index.rst
index 6d212d8cb..6ac0c922b 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,34 +1,36 @@
.. include:: ../README_processed.rst
.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ self
+
+.. toctree::
:maxdepth: 2
- :caption: Information
+ :caption: Documentation
+ :hidden:
getting_started
integration
porting
reference/index
- faq
troubleshooting
+ faq
+ info/changelog/index
.. toctree::
:maxdepth: 2
:caption: Examples
+ :hidden:
examples/device/index
examples/host/index
examples/dual/index
.. toctree::
- :maxdepth: 1
- :caption: Project Info
-
- info/index
-
-.. toctree::
:caption: External Links
:hidden:
- Source Code <https://github.com/hathach/tinyusb>
- Issue Tracker <https://github.com/hathach/tinyusb/issues>
+ GitHub <https://github.com/hathach/tinyusb>
Discussions <https://github.com/hathach/tinyusb/discussions>
diff --git a/docs/info/changelog.rst b/docs/info/changelog.rst
deleted file mode 100644
index 35c8515cc..000000000
--- a/docs/info/changelog.rst
+++ /dev/null
@@ -1,1483 +0,0 @@
-*********
-Changelog
-*********
-
-0.20.0
-======
-
-*November 19, 2025*
-
-General
--------
-
-- New MCUs and Boards:
-
- - Add STM32U3 device support (adjusted from STM32U0)
- - Add nRF54H20 support with initial board configuration
- - Rename board names: pca10056→nrf52840dk, pca10059→nrf52840dongle, pca10095→nrf5340dk
- - Improve CMake: Move startup and linker files from board target to executable. Enhance target warning flags and fix various build warnings
-
-- Code Quality and Static Analysis:
-
- - Add PVS-Studio static analysis to CI
- - Add SonarQube scan support
- - Add IAR C-Stat analysis capability
- - Add ``.clang-format`` for consistent code formatting
- - Fix numerous alerts and warnings found by static analysis tools
-
-- Documentation:
-
- - Improve Getting Started documentation structure and flow
- - Add naming conventions and buffer handling documentation
-
-Controller Driver (DCD & HCD)
------------------------------
-
-- DWC2
-
- - Fix incorrect handling of Zero-Length Packets (ZLP) in the DWC2 driver when receiving data (OUT transfers)
- - Improve EP0 multi-packet logic
- - Support EP0 with max packet size = 8
- - For IN endpoint, write initial packet directly to FIFO and only use TXFE interrupt for subsequent packets
- - Fix ISO with bInterval > 2 using incomplete IN interrupt handling.
- - Fix compile issues when enabling both host and device
- - Clear pending suspend interrupt after USB reset (enum end)
- - Improve host closing endpoint and channel handling when device is unplugged
-
-- FSDEV (STM32)
-
- - Fix AT32 USB interrupt remapping in ``dcd_int_enable()``
-
-- OHCI
-
- - Add initial LPC55 OHCI support
- - Improve data cache support
-
-Device Stack
-------------
-
-- USBD Core
-
- - Support configurable EP0 buffer size CFG_TUD_ENDPOINT0_BUFSIZE
- - Make dcd_edpt_iso_alloc/activate as default API for ISO endpoint
-
-- Audio
-
- - Add UAC1 support
- - Implement RX FIFO threshold adjustment with `tud_audio_get/set_ep_in_fifo_threshold()`
-
-- CDC
-
- - Migrate to endpoint stream API
-
-- HID
-
- - Fix HID stylus descriptor
-
-- MIDI
-
- - Migrate to endpoint stream API
- - Add ``tud_midi_n_packet_write_n()`` and ``tud_midi_n_packet_read_n()``
-
-- MTP
-
- - Fix incorrect MTP xact_len calculation
-
-- Video
-
- - Add bufferless operation callback for dynamic frame generation with tud_video_prepare_payload_cb()
-
-Host Stack
-----------
-
-No changes
-
-0.19.0
-======
-
-General
--------
-
-- New MCUs and Boards:
-
- - Add ESP32-H4, ESP32-C5, ESP32-C61 support
- - Add STM32U0, STM32WBA, STM32N6
- - Add AT32F405, AT32F403A, AT32F415, AT32F423 support
- - Add CH32V305 support and CH32V20x USB host support
- - Add MCXA156 SDK 2.16 support and FRDM-MCXA156 board
-
-API Changes
------------
-
-- Core APIs
-
- - Add weak callbacks with new syntax for better compiler compatibility
- - Add ``tusb_deinit()`` to cleanup stack
- - Add time functions: ``tusb_time_millis_api()`` and ``tusb_time_delay_ms_api()``
- - Add ``osal_critical`` APIs for critical section handling
- - Introduce ``xfer_isr()`` callback for ISO transfer optimization in device classes
-
-- Device APIs
-
- - CDC: Add notification support ``tud_cdc_configure()``, ``tud_cdc_n_notify_uart_state()``,
- ``tud_cdc_n_notify_conn_speed_change()``, ``tud_cdc_notify_complete_cb()``
- - MSC: Add ``tud_msc_inquiry2_cb()`` with bufsize parameter, update ``tud_msc_async_io_done()``
- with ``in_isr`` parameter
- - Audio: Add ``tud_audio_n_mounted()`` and various FIFO access functions
- - MTP: Add ``tud_mtp_mounted()``, ``tud_mtp_data_send()``, ``tud_mtp_data_receive()``,
- ``tud_mtp_response_send()``, ``tud_mtp_event_send()``
-
-- Host APIs
-
- - Core: Add ``tuh_edpt_close()``, ``tuh_address_set()``, ``tuh_descriptor_get_device_local()``,
- ``tuh_descriptor_get_string_langid()``, ``tuh_connected()``, ``tuh_bus_info_get()``
- - Add enumeration callbacks: ``tuh_enum_descriptor_device_cb()``,
- ``tuh_enum_descriptor_configuration_cb()``
- - CDC: Add ``tuh_cdc_get_control_line_state_local()``, ``tuh_cdc_get/set_dtr/rts()``,
- ``tuh_cdc_connect/disconnect()`` and sync versions of all control APIs
- - MIDI: Add ``tuh_midi_itf_get_info()``, ``tuh_midi_packet_read_n()``,
- ``tuh_midi_packet_write_n()``, ``tuh_midi_read_available()``, ``tuh_midi_write_flush()``,
- ``tuh_midi_descriptor_cb()``
-
-Controller Driver (DCD & HCD)
------------------------------
-
-- DWC2
-
- - Support DWC2 v4.30a with improved reset procedure
- - Fix core reset: wait for AHB idle before reset
- - Add STM32 DWC2 data cache support with proper alignment
- - Host improvements:
- - Fix disconnect detection and SOF flag handling
- - Fix HFIR timing off-by-one error
- - Retry IN token immediately for bInterval=1
- - Proper attach debouncing (200ms)
- - Fix all retry intervals
- - Resume OUT transfer when PING ACKed
- - Fix enumeration racing conditions
- - Refactor bitfields for better code generation
-
-- FSDEV (STM32)
-
- - Fix AT32 compile issues after single-buffered endpoint changes
- - Add configurable single-buffered isochronous endpoints
- - Fix STM32H7 recurrent suspend ISR
- - Fix STM32L4 GPIOD clock enable for variants without GPIOD
- - Fix STM32 PHYC PLL stability wait
- - Improve PMA size handling for STM32U0
-
-- EHCI
-
- - Fix removed QHD getting reused
- - Fix NXP USBPHY disconnection detection
-
-- Chipidea/NXP
-
- - Fix race condition with spinlock
- - Improve iMXRT support: fix build, disable BOARD_ConfigMPU, fix attach debouncing on port1 highspeed
- - Fix iMXRT1064 and add to HIL test pool
-
-- MAX3421E
-
- - Use spinlock for thread safety instead of atomic flag
- - Implement ``hcd_edpt_close()``
-
-- RP2040
-
- - Fix audio ISO transfer: reset state before notifying stack
- - Fix CMake RTOS cache variable
- - Abort transfer if active in ``iso_activate()``
-
-- SAMD
-
- - Add host controller driver support
-
-Device Stack
-------------
-
-- USBD Core
-
- - Introduce ``xfer_isr()`` callback for interrupt-time transfer handling
- - Add ``usbd_edpt_xfer_fifo()`` stub
- - Revert endpoint busy/claim status if ``xfer_isr()`` defers to ``xfer_cb()``
-
-- Audio
-
- - Major simplification of UAC driver and alt settings management
- - Move ISO transfers into ``xfer_isr()`` for better performance
- - Remove FIFO mutex (single producer/consumer optimization)
- - Add implicit feedback support for data IN endpoints
- - Fix alignment issues
- - Update buffer macros with cache line size alignment
-
-- CDC
-
- - Add notification support: ``CFG_TUD_CDC_NOTIFY``, ``tud_cdc_n_notify_conn_speed_change()``, ``tud_cdc_notify_complete_cb()``
- - Reduce default bInterval from 16ms to 1ms for better responsiveness
- - Rename ``tud_cdc_configure_fifo()`` to ``tud_cdc_configure()`` and add ``tx_overwritable_if_not_connected`` option
- - Fix web serial robustness with major overhaul and logic cleanup
-
-- HID
-
- - Add Usage Page and Table for Power Devices (0x84 - 0x85)
- - Fix HID descriptor parser variable size and 4-byte item handling
- - Add consumer page configurations
-
-- MIDI
-
- - Fix MIDI interface descriptor handling after audio streaming interface
- - Skip RX data with all zeroes
-
-- MSC
-
- - Add async I/O support for MSC using ``tud_msc_async_io_done()``
- - Add ``tud_msc_inquiry2_cb()`` with bufsize for full inquiry response
-
-- MTP
-
- - Add new Media Transfer Protocol (MTP) device class driver
- - Support MTP operations: GetDeviceInfo, SendObjectInfo, SendObject
- - Add MTP event support with ``tud_mtp_event_send()``
- - Implement filesystem example with callbacks
- - Add hardware-in-the-loop testing support
-
-- NCM
-
- - Add USB NCM link state control support
- - Fix DHCP offer/ACK destination
-
-- USBTMC
-
- - Add vendor-specific message support
-
-- Vendor
-
- - Fix vendor device reset and open issues
- - Fix descriptor parsing for ``CFG_TUD_VENDOR > 1``
- - Fix vendor FIFO argument calculation
-
-Host Stack
-----------
-
-- USBH Core
-
- - Major enumeration improvements:
- - Fix enumeration racing conditions
- - Add proper attach debouncing with hub/rootport handling (200ms delay)
- - Reduce ``ENUM_DEBOUNCING_DELAY_MS`` to 200ms
- - Always get language ID, manufacturer, product, and serial strings during enumeration
- - Always get first 2 bytes of string descriptor to determine length (prevents buffer overflow)
- - Support devices with multiple configurations
- - Add ``tuh_enum_descriptor_device_cb()`` and ``tuh_enum_descriptor_configuration_cb()`` callbacks
- - Add ``tuh_descriptor_get_string_langid()`` API
- - Hub improvements:
- - Check status before getting first device descriptor
- - Properly handle port status and change detection
- - Queue status endpoint for detach/remove events
- - Fix hub status change endpoint handling
- - Fix endpoint management:
- - ``hcd_edpt_open()`` returns false if endpoint already opened
- - Add ``hcd_edpt_close()`` implementation
- - Abort pending transfers on close
- - Add roothub debouncing flag to ignore attach/remove during debouncing
- - Move address setting and bus info management to separate structures
- - Force removed devices in same bus info before setting address
-
-- CDC Serial Host
-
- - Major refactor to generalize CDC serial drivers (FTDI, CP210x, CH34x, PL2303, ACM)
- - Add explicit ``sync()`` API with ``TU_API_SYNC()`` returning ``tusb_xfer_result_t``
- - Rename ``tuh_cdc_get_local_line_coding()`` to ``tuh_cdc_get_line_coding_local()``
- - Add ``tuh_cdc_get_control_line_state_local()``
- - Implement ``tuh_cdc_get/set_dtr/rts()`` as inline functions
-
-- MIDI Host
-
- - Major API changes:
- - Rename ``tuh_midi_stream_flush()`` to ``tuh_midi_write_flush()``
- - Add ``tuh_midi_packet_read_n()`` and ``tuh_midi_packet_write_n()``
- - Add ``CFG_TUH_MIDI_STREAM_API`` to opt out of stream API
- - Change API to use index instead of device address (supports multiple MIDI per device)
- - Rename ``tuh_midi_get_num_rx/tx_cables()`` to ``tuh_midi_get_rx/tx_cable_count()``
- - Add ``tuh_midi_descriptor_cb()`` and ``tuh_midi_itf_get_info()``
-
-- MSC Host
-
- - Continue async I/O improvements
-
-- HID Host
-
- - Fix version string to actually show version
-
-0.18.0
-======
-
-General
--------
-
-- New MCUs:
-
- - Add esp32p4 OTG highspeed support
- - Add stm32 u0, c0, h7rs
-
-- Better support dcache, make sure all usb-transferred buffer are cache line aligned and occupy full cache line
-- Build ARM IAR with CircleCI
-- Improve HIL with `dual/host_info_to_device_cdc`` optional for pico/pico2, enable dwc2 dma test
-
-API Changes
------------
-
-- Change signature of ``tusb_init(rhport, tusb_rhport_init_t*)``, ``tusb_init(void)`` is now deprecated but still available for backward compatibility
-- Add new ``tusb_int_handler(rhport, in_isr)``
-- Add time-related APIs: ``tusb_time_millis_api()`` and ``tusb_time_delay_ms_api()`` for non-RTOS, required for some ports/configuration
-- New configuration macros:
-
- - ``CFG_TUD/TUH_MEM_DCACHE_ENABLE`` enable data cache sync for endpoint buffer
- - ``CFG_TUD/TUH_MEM_DCACHE_LINE_SIZE`` set cache line size
- - ``CFG_TUD/TUH_DWC2_SLAVE_ENABLE`` enable dwc2 slave mode
- - ``CFG_TUD/TUH_DWC2_DMA_ENABLE`` enable dwc2 dma mode
-
-Controller Driver (DCD & HCD)
------------------------------
-
-- DWC2
-
- - Add DMA support for both device and host controller
- - Add host driver support including: full/high speed, control/bulk/interrupt (CBI) transfer, split CBI i.e FS/LS attached via highspeed hub, hub support
-
-- RP2: implement ``dcd_edpt_iso_alloc()`` and ``dcd_edpt_iso_activate()`` for isochronous endpoint
-- iMXRT1170 support M4 core
-
-Device Stack
-------------
-
-- Vendor Fix class reset
-- NCM fix recursions in ``tud_network_recv_renew()``
-- Audio fix align issue of ``_audiod_fct.alt_setting``
-- UVC support format frame based
-- Change ``dcd_dcache_()`` return type from void to bool
-- HID add Usage Table for Physical Input Device Page (0x0F)
-
-Host Stack
-----------
-
-- Fix an duplicated attach issue which cause USBH Defer Attach until current enumeration complete message
-
-0.17.0
-======
-
-General
--------
-
-- Improved CI: build both cmake and make. Make use of CircleCI for part of build process to speed up CI
-- Add CodeQL Workflow for Code Security Analysis
-- Add Clang compiler support
-- Add default implementation for weak callbacks functions for better Keil compatibility
-- Upgrade hardware-in-the-loop (HIL) testing with more boards and examples: including dual stack example
-
-Controller Driver (DCD & HCD)
------------------------------
-
-- Chipidea
-
- - Support MCXA
-
-- DWC2
-
- - Fix tickless issue with stm32f7: disable ULPI clock during sleep when using internal phy
- - Fix SOF interrupt handling
- - Fix fifo level half/empty issue
- - Add DWC2 Test Mode support.
- - for esp32 force disconnect/connect using USB_WRAP otg pad override
-
-- FSDEV
-
- - Rewrite and Generalize driver to support non-stm32 mcu such as wch
- - Simplify PMA, HW FIFO access and bit manipulation for different access scheme 1x16, 2x16 and 32 bit
- - Add support for ch32 usbd e.g ch32v203
- - Add support for STM32G4 and STM32U5 microcontrollers.
- - Fix h5 (32-bit) errata 2.15.1: Buffer description table update completes after CTR interrupt triggers
- - ISO EP buffer allocation improvements, implement ``dcd_edpt_close_all()``
-
- - Fix ch32v203 race condition and stability issue with
-
- - fix ch32v203 seems to unconditionally accept ZLP on EP0 OUT.
- - fix v203 race condition between rx bufsize and RX_STAT which cause PMAOVR, occurs with WRITE10
- - correctly handle setup prepare at ``dcd_edpt0_status_complete()``, which fixes the race condition with windows where we could miss setup packet (setup bit set, but count = 0)
-
-- MAX3421E
-
- - Add support for rp2040, esp32 (c3, c6, h2, etc..)
- - Add ``hcd_deinit()`` for max3421
- - Retry NAK handling next frame to reduce CPU and SPI bus usage
- - add ``cpuctl`` and ``pinctl`` to ``tuh_configure()`` option for max3421
- - Implement hcd abort transfer for Max3421
- - Properly Handle NAK Response in MAX3421E driver: correctly switch and skip writing to 2 FIFOs when NAK received. Otherwise, the driver may hang in certain conditions.
-
-- MSP430: support non-bus-powered
-
-- MUSB
-
- - Add support for Analoog devices: max32650, max32666, max32690, max3278002
-
-- nRF
-
- - Fix ``dcd_edpt_open()`` for iso endpoint
- - Handle ISOOUT CRC errors
- - Add compile support with old nordic sdk
- - Fix a few race conditions
-
-- OHCI
-
- - Allow more than 16 devices
-
-- RP2040
-
- - Correctly abort control transfer when new setup arrived. Due to RP2040-E2 only able to fix B2 or later
- - Implement hcd abort transfer for rp2040
- - Add support for rp2350
-
-- RUSB2
-
- - Support ra2a1 pipe number scheme
-
-- WCH CH32
-
- - Added support for USB OTG/FS and FSDev Driver. Update CH32V307 to allow manual select FS or HS driver.
- - Fixed various bugs in CH32v307 usbhs driver: endpoint handling and data transfer management.
-
-Device Stack
-------------
-
-- Add ``tud_deinit()`` and ``class driver deinit()`` to deinitialize TinyUSB device stack.
-- Add support for generic SOF callback.
-- Add set address recovery time 2ms per USB spec.
-
-- Audio
-
- - Add audio_test_freertos & audio_4_channel_mic_freertos
- - Improved support for Audio Class 2.0 (UAC2) with various bug fixes.
- - Add feedback by fifo counting.
-
-- Bluetooth HCI
-
- - Issue ZLP on ACL IN ep when transfer is multiple of endpoint max packet size
-
-- CDC
-
- - Add ``tud_cdc_configure_fifo()`` to make RX/TX buffer persistent (not clear when disconnected)
- - Add missing capability bit for CDC ACM serial break support
- - Enhanced CDC class with better handling of large data transmissions.
- - Add missing capability bit for CDC ACM serial break support
-
-- HID
-
- - Added missing key codes for keypad
- - Added HID Lighting and Illumination functionality
- - Fixed issues in the HID class for more reliable device enumeration.
- - Support HID Mouse with absolute positioning
- - Use separate buffer for control SET_REPORT, fix conflict with interrupt endpoint out
-
-- MSC: Added support for SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL
-
-- Net
-
- - Rewrite of NCM device driver to improve throughput
- - removed obsolete ``tud_network_link_state_cb()``
-
-- USBTMC Added notification support
-
-- Vendor
-
- - Migrate to new endpoint stream API, support non-buffered TX/RX
- - Add ZLP for ``write()`` when needed
-
-- Video
-
- - Enhance UVC descriptors and example
- - Video Added support for USB Video Class (UVC) with MJPEG.
- - Fix multiple interfaces, add an example of 2ch video capture.
- - Fix race for ``tud_video_n_streaming()`` check
-
-Host Stack
-----------
-
-- Added ``tuh_deinit()`` to de-initialize TinyUSB host stack.
-- Added support for new USB mass storage class APIs.
-- Improved error handling and retry mechanisms for unstable devices.
-
-- CDC Serial
-
- - Add support for ch34x
- - Allow to overwrite ``CFG_TUH_CDC_FTDI/CP210X/CH32X_VID_PID_LIST``
- - Enhanced stability of CDC-ACM devices during enumeration.
-
-- HID
-
- - Add ``tuh_hid_receive_abort()``
- - Add ``tuh_hid_get_report()``
-
-- Hub
-
- - Prevent status request to invalid ep_num
- - Fix double status xfer
- - unroll hub removal
-
-0.16.0
-======
-
-- New controller driver: MAX3421e (usb host shield), rusb2 (Renesas USB2.0), ChipIdea fullspeed
-- New MCUs: MCXn9, nRF5340, STM32: G0, G4, L5, U575, U5A5, RA6m5, CH32F20x
-- Add initial TypeC PowerDelivery support with STM32G4
-- Remove submodules and use python script to manage repo dependencies #1947
-- Add CMake support for most families and boards, move build file from tools/ to examples/build_system
-- Add ETM trace support with JTrace for nrf52840, nrf5340, mcb1857, stm32h743eval, ra6m5
-- [osal] Make it possible to override the ``osal_task_delay()`` in osal_none
-- Add CDC+UAC2 composite device example
-- Enhance Hardware-in-the-loop (HIL) testing with more boards: rp2040, stm32l412nucleo, stm32f746disco, lpcxpresso43s67
-
-Controller Driver (DCD & HCD)
------------------------------
-
-- Add new ISO endpoint API: ``dcd_edpt_iso_alloc()`` and ``dcd_edpt_iso_activate()``
-- Remove legacy driver st/synopsys
-
-- EHCI
-
- - [iMXRT] Add dache clean/invalidate when memory is in cacheable memory
- - Fix portsc write issue which cause problem with enumeration
- - Fix an issue when doing port reset write to portsc
- - Fix port change detect is not recognized when power on with attached device
- - Fix xfer failed with disconnected device as stalled
- - Fix error on EHCI causes xfer error in non-queued qhd which cause memory fault
- - Un-roll recursive hub removal with usbh queue
- - Fix issue when removing queue head
- - Implement ``hcd_edpt_abort_xfer()``
- - use standard USB complete interrupt instead of custom chipidea async/period interrupt to be more compatible with other ehci implementation
- - refactor usb complete & error isr processing, merge, update. Fix EHCI QHD reuses QTD on wrong endpoint
- - Improve bus reset, fix ``send_setup()`` not carried out if halted previously
- - Fix clear qhd halted bit if not caused by STALL protocol to allow for next transfer
-
-- ChipIdea Highspeed
-
- - Fix control transfer issue when previous status and new setup complete in the same isr frame
- - [imxrt] Add dcache support for cache region
-
-- ChipIdea Fullspeed
-
- - Generalize ChipIdea Fullspeed driver for mcxn9 (port 0), kinetis
-
-- nrf
-
- - Fix DMA race condition with ISO OUT transfer #1946
- - Add support for nRF5340 with pca10095 board
-
-- Renesas rusb2
-
- - Generalize rusb2 driver for ra, rx mcus
- - rework both dcd and hcd for better multiple ports support
- - Add support for board with HS USB port: ra6m5 port1
-
-- rp2040
-
- - [dcd] Make writes to SIE_CTRL aware of concurrent access
- - [hcd] add ``hcd_frame_number()``, ``hcd_edpt_abort_xfer()`` for pio-usb host
-
-- stm32 fsdev:
-
- - Add STM32L5 support
- - Implement ``dcd_edpt_iso_alloc()`` and ``dcd_edpt_iso_activate()``
-
-- OHCI
-
- - Allows configurable root hub ports, handles SMM mode (Ref OHCI spec 5.1.1.3.3) and Bios mode (Ref OHCI spec 5.1.1.3.4)
- - Fix FrameIntervalToggle must be toggled after we write the FrameInterval (Ref OHCI Spec 7.3.1)
- - Wait PowerOnToPowerGoodTime after we enable power of the RH ports (Ref OHCI Spec 7.4.1)
- - Generate port interrupts for devices already connected during init.
- - Fix issue when removing queue head
- - Disable MIE during IRQ processing and clear HccaDoneHead on completion as per OCHI Spec Page 80
-
-Device Stack
-------------
-
-- Add optional hooks ``tud_event_hook_cb()``
-- Audio (UAC2)
-
- - Fix feedback EP buffer alignment.
- - Fix encoding, update example
- - Improve IN transfer
-
-- Bluetooth
-
- - Add historical EP compatibility for Bluetooth HCI
-
-- CDC
-
- - Fix line_coding alignment
- - Fix typo in cdc line coding enum
-
-- MIDI
-
- - Fix ``stream_write()`` always writes system messages to cable 0
- - Fix incorrect NOTE_ON, NOTE_OFF definitions
-
-- USBTMC: Fix tmc488 bit order
-
-- Vendor: fix ``read()``/``write()`` race condition
-
-- Video (UVC)
-
- - Add the capability for video class to handle a bulk endpoint in the streaming interface.
-
-Host Stack
-----------
-
-- USBH
-
- - Add new APIs: ``tuh_interface_set()``, ``tuh_task_event_ready()``, ``tuh_edpt_abort_xfer()``, ``tuh_rhport_reset_bus()``, ``tuh_rhport_is_active()``
- - Fix issue when device generate multiple attach/detach/attach when plugging in
- - Prefer application callback over built-in driver on transfer complete event
- - Correct ``hcd_edpt_clear_stall()`` API signature
- - Separate bus reset delay and contact debouncing delay in enumeration
- - Support ``usbh_app_driver_get_cb()`` for application drivers
- - Fix usbh enumeration removal race condition
- - Add optional hooks ``tuh_event_hook_cb()``
-
-- CDC
-
- - Breaking: change ``tuh_cdc_itf_get_info()`` to use tuh_itf_info_t instead of tuh_cdc_info_t
- - Fix cdc host enumeration issue when device does not support line request
- - Add support for vendor usb2uart serial: ftdi, cp210x, ch9102f
- - Improve sync control API e.g ``tuh_cdc_set_control_line_state()``, ``tuh_cdc_set_line_coding()``
-
-- HID
-
- - Add new APIs ``tuh_hid_send_report()``, ``tuh_hid_itf_get_info()``, ``tuh_hid_receive_ready()``, ``tuh_hid_send_ready()``, ``tuh_hid_set_default_protocol()``
- - Change meaning of CFG_TUH_HID to total number of HID interfaces supported. Previously ``CFG_TUH_HID`` is max number of interfaces per device which is rather limited and consume more resources than needed.
-
-- HUB
-
- - Fix handling of empty "status change" interrupt
- - Fix issue with hub status_change is not aligned
-
-- MSC
-
- - Fix bug in ``tuh_msc_ready()``
- - Fix host msc get maxlun not using aligned section memory
-
-0.15.0
-======
-
-- Add codespell to detect typo
-- Add support for fuzzing and bagde for oss-fuzz
-- [osal]
-
- - Allow the use of non-static allocation for FreeRTOS
- - Fix FreeRTOS wrong task switch in some cases
-
-- Fix tu_fifo memory overflown when repeatedly write to overwritable fifo (accumulated more than 2 depths)
-- Better support for IAR (ARM) with ci build check for stm32 mcus.
-- Fix Windows build for some mingw gnu make situations
-
-Controller Driver (DCD & HCD)
------------------------------
-
-- Add new port support (WIP) for WCH CH32V307 USB Highspeed
-- Add new port support (WIP) for PIC32MM/MX & PIC24
-
-- [nRF]
-
- - Fix endpoint internal state when closed
- - Fix reception of large ISO packets
-
-- [rp2040]
-
- - [dcd] Implement workaround for Errata 15. This enable SOF when bulk-in endpoint is in use and reduce its bandwidth to only 80%
- - [hcd] Fix shared irq slots filling up when ``hcd_init()`` is called multiple times
- - [hcd] Support host bulk endpoint using hw "interrupt" endpoint. Note speed limit is 64KB/s
-
-- [samd][dcd] Add support for ISO endpoint
-- [dwc2][dcd] Add support for stm32u5xx
-- [esp32sx] Fix Isochronous transfers only transmitted on even frame
-- [lpc_ip3511][dcd] Add isochronous support and fix endpoint accidental write
-- [ft90x] Improve and enhance support for FT9xx MCU, tested with more examples
-
-Device Stack
-------------
-
-- [Video]
-
- - Add support for MJPEG
- - Fix probe on macOS
-
-- [MIDI]
-
- - Support port name strings
- - fix MS Header wTotalLength computation
-
-- [HID]
-
- - Add FIDO descriptor template
- - change length in ``tud_hid_report_complete_cb()`` from ``uint8_t`` to ``uint16_t``
-
-- [CDC]
-
- - Fix autoflush for FIFO < MPS
- - Fix tx fifo memory overflown when DTR is not set and ``tud_cdc_write()`` is called repeatedly with large enough data
-
-- [USBTMC] Fix packet size with highspeed
-
-Host Stack
-----------
-
-- Retry a few times with transfers in enumeration since device can be unstable when starting up
-- [MSC] Rework host masstorage API. Add new ``host/msc_file_explorer`` example
-- [CDC]
-
- - Add support for host cdc
- - Fix host cdc with device without IAD e.g Arduino Due
-
-0.14.0
-======
-
-- Improve compiler support for CCRX and IAR
-- Add timeout to ``osal_queue_receive()``
-- Add ``tud_task_ext(timeout, in_isr)`` as generic version of ``tud_task()``. Same as ``tuh_task_ext()``, ``tuh_task()``
-- Enable more warnings ``-Wnull-dereference -Wuninitialized -Wunused -Wredundant-decls -Wconversion``
-- Add new examples
-
- - ``host/bare_api`` to demonstrate generic (app-level) enumeration and endpoint transfer
- - ``dual/host_hid_to_device_cdc`` to run both device and host stack concurrently, get HID report from host and print out to device CDC. This example only work with multiple-controller MCUs and rp2040 with the help of pio-usb as added controller.
-
-Controller Driver (DCD & HCD)
------------------------------
-
-- Enhance rhports management to better support dual roles
-
- - ``CFG_TUD_ENABLED``/``CFG_TUH_ENABLED``, ``CFG_TUD_MAX_SPEED``/``CFG_TUH_MAX_SPEED`` can be used to replace ``CFG_TUSB_RHPORT0_MODE``/``CFG_TUSB_RHPORT1_MODE``
- - ``tud_init(rphort)``, ``tuh_init(rhport)`` can be used to init stack on specified roothub port (controller) instead of ``tusb_init(void)``
-- Add dcd/hcd port specific defines ``TUP_`` (stand for tinyusb port-specific)
-- [dwc2]
-
- - Update to support stm32 h72x, h73x with only 1 otg controller
- - Fix overwrite with grstctl when disable endpoint
-- [EHCI] Fix an issue with EHCI driver
-- [msp430] Fix for possible bug in msp430-elf-gcc 9.3.0
-- [nrf5x] Fix DMA access race condition using atomic function
-- [pic32] Fix PIC32 santiy
-- [rp2040]
-
- - Add PICO-PIO-USB as controller (device/host) support for rp2040
- - Use shared IRQ handlers, so user can also hook the USB IRQ
- - Fix resumed signal not reported to device stack
-- [stm32fsdev] Add support for stm32wb55
-
-Device Stack
-------------
-
-- [Audio] Add support for feedback endpoint computation
-
- - New API ``tud_audio_feedback_params_cb()``, ``tud_audio_feedback_interval_isr()``.
- - Supported computation method are: frequency with fixed/float or power of 2. Feedback with fifo count is not yet supported.
- - Fix nitfs (should be 3) in ``TUD_AUDIO_HEADSET_STEREO_DESCRIPTOR``
- - Fix typo in ``audiod_rx_done_cb()``
-
-- [DFU] Fix coexistence with other interfaces BTH, RNDIS
-- [MSC] Fix inquiry response additional length field
-- [Venndor] Improve write performance
-
-Host Stack
-----------
-
-- Add new API ``tuh_configure(rhport, cfg_id, cfg_param)`` for dynamnic port specific behavior configuration
-- [HID] Open OUT endpoint if available
-- [Hub] hub clear port and device interrupts
-- [USBH] Major improvement
-
- - Rework usbh control transfer with complete callback. New API ``tuh_control_xfer()`` though still only carry 1 usbh (no queueing) at a time.
- - Add generic endpoint transfer with ``tuh_edpt_open()``, ``tuh_edpt_xfer()``. Require ``CFG_TUH_API_EDPT_XFER=1``
- - Support app-level enumeration with new APIs
-
- - ``tuh_descriptor_get()``, ``tuh_descriptor_get_device()``, ``tuh_descriptor_get_configuration()``, ``tuh_descriptor_get_hid_report()``
- - ``tuh_descriptor_get_string()``, ``tuh_descriptor_get_manufacturer_string()``, ``tuh_descriptor_get_product_string()``, ``tuh_descriptor_get_serial_string()``
- - Also add ``_sync()`` as sync/blocking version for above APIs
-
-0.13.0
-======
-
-- [tu_fifo] Fix locked mutex when full, and return type in ``peek_n()``
-
-Controller Driver (DCD & HCD)
------------------------------
-
-- [DWC2] Generalize synopsys dwc2 with synopsys/dwc2 which support both FS and HS phy (UTMI and ULPI) for various MCUs.
-
- - Broadcom 28/27xx on raspberrypi SBC
- - Silicon Labs EFM32
- - Espressif ESP32 Sx
- - GigaDevice GD32
- - ST STM32
- - Infineon XMC
-- [KL25] Add new HCD for NXP KL25
-- [MUSB] Add new DCD and HCD for Mentor musb with TI MSP432E4
-- [F1C100s] Add new DCD for Allwinner F1C100s family
-- [PIC32MZ] Add new DCD for PIC32MZ
-- [nRF] Fix/Enhance various race condition with: EASY DMA, request HFXO, EPOUT
-- [ChipIdea] rename Transdimension to more popular ChipIdea Highspeed,
-- [RP2040] various update/fix for hcd/dcd
-- [FT9XX] new DCD port for Bridgetek FT90x and FT93x devices
-- [DA1469X] Fix resume
-- [OHCI] Fix device array out of bound
-
-Note: legacy drivers such as st/synopsys, nxp/transdimension are still present in this release but won't receive more update and could be removed in the future.
-
-Device Stack
-------------
-
-- [Audio] Support disabling feedback format correction (16.16 <-> 10.14 format)
-- [MSC] Add ``tud_msc_request_sense_cb()`` callback, change most default sense error to medium not present (0x02, 0x3A, 0x00)
-- [Video] Fix video_capture example fails enumeration when 8FPS
-
-Host Stack
-----------
-
-No notable changes
-
-0.12.0
-======
-
-- add ``CFG_TUSB_OS_INC_PATH`` for os include path
-
-Device Controller Driver (DCD)
-------------------------------
-
-- Getting device stack to pass USB Compliance Verification test (chapter9, HID, MSC). Ports are tested:
- nRF, SAMD 21/51, rp2040, stm32f4, Renesas RX, iMXRT, ESP32-S2/3, Kinetic KL25/32, DA146xx
-- Added ``dcd_edpt_close_all()`` for switching configuration
-- [Transdimension] Support ``dcd_edpt_xfer_fifo()`` with auto wrap over if fifo buffer is 4K aligned and size is multiple of 4K.
-- [DA146xx] Improve vbus, reset, suspend, resume detection, and remote wakeup.
-
-Device Stack
-------------
-
-- Add new network driver Network Control Model (CDC-NCM), update ``net_lwip_webserver`` to work with NCM (need re-configure example)
-- Add new USB Video Class UVC 1.5 driver and video_capture example (work in progress)
-- Fix potential buffer overflow for HID, bluetooth drivers
-
-Host Controller Driver (HCD)
-----------------------------
-
-No notable changes
-
-Host Stack
-----------
-
-No notable changes
-
-0.11.0 (2021-08-29)
-===================
-
-- Add host/hid_controller example: only worked/tested with Sony PS4 DualShock controller
-- Add device/hid_boot_interface example
-- Add support for Renesas CCRX toolchain for RX mcu
-
-Device Controller Driver (DCD)
-------------------------------
-
-- Add new DCD port for SAMx7x (E70, S70, V70, V71)
-- Add new mcu K32L2Bxx
-- Add new mcu GD32VF103
-- Add new mcu STM32l151
-- Add new mcu SAML21
-- Add new mcu RX65n RX72n
-- Fix NUC120/121/126 USBRAM can only be accessed in byte manner. Also improve set_address & disable sof
-- Add Suspend/Resume handling for Renesas RX family.
-- Fix DA1469x no VBUS startup
-
-Synopsys
-^^^^^^^^
-
-- Fix Synopsys set address bug which could cause re-enumeration failed
-- Fix ``dcd_synopsys`` driver integer overflow in HS mode (issue #968)
-
-nRF5x
-^^^^^
-
-- Add nRF5x suspend, resume and remote wakeup
-- Fix nRF5x race condition with ``TASKS_EP0RCVOUT``
-
-RP2040
-^^^^^^
-
-- Add RP2040 suspend & resume support
-- Implement double buffer for both host and device (#891). However device EPOUT is still single buffered due to techinical issue with short packet
-
-Device Stack
-------------
-
-USBD
-^^^^
-
-- Better support big endian mcu
-- Add ``tuh_inited()`` and ``tud_inited()``, will separate ``tusb_init/inited()`` to ``tud/tuh_init/inited()``
-- Add ``dcd_attr.h`` for defining common controller attribute such as max endpoints
-
-Bluetooth
-^^^^^^^^^
-
-- Fix stridx error in descriptor template
-
-DFU
-^^^
-
-- Enhance DFU implementation to support multiple alternate interface and better support ``bwPollTimeout``
-- Rename ``CFG_TUD_DFU_MODE`` to simply ``CFG_TUD_DFU``
-
-HID
-^^^
-
-- Fix newline usage keyboard (ENTER 0x28)
-- Better support Hid Get/Set report
-- Change max gamepad support from 16 to 32 buttons
-
-MIDI
-^^^^
-
-- Fix midi available
-- Fix midi data
-- Fix an issue when calling midi API when not enumerated yet
-
-UAC2
-^^^^
-
-- Fix bug and enhance of UAC2
-
-Vendor
-^^^^^^
-
-- Fix vendor fifo deadlock in certain case
-- Add ``tud_vendor_n_read_flush()``
-
-Host Controller Driver (HCD)
-----------------------------
-
-RP2040
-^^^^^^
-
-- Implement double buffered to fix E4 errata and boost performance
-- Lots of rp2040 update and enhancement
-
-Host Stack
-----------
-
-- Major update and rework most of host stack, still needs more improvement
-- Lots of improvement and update in parsing configuration and control
-- Rework and major update to HID driver. Will default to enable boot interface if available
-- Separate ``CFG_TUH_DEVICE_MAX`` and ``CFG_TUH_HUB`` for better management and reduce SRAM usage
-
-0.10.1 (2021-06-03)
-===================
-
-- rework rp2040 examples and CMake build, allow better integration with pico-sdk
-
-Host Controller Driver (HCD)
-----------------------------
-
-- Fix rp2040 host driver: incorrect PID with low speed device with max packet size of 8 bytes
-- Improve hub driver
-- Remove obsolete ``hcd_pipe_queue_xfer()``/``hcd_pipe_xfer()``
-- Use ``hcd_frame_number()`` instead of micro frame
-- Fix OHCI endpoint address and ``xferred_bytes`` in xfer complete event
-
-0.10.0 (2021-05-28)
-===================
-
-- Rework tu_fifo_t with separated mutex for read and write, better support DMA with read/write buffer info. And constant address mode
-- Improve audio_test example and add audio_4_channel_mic example
-- Add new dfu example
-- Remove pico-sdk from submodule
-
-Device Controller Driver (DCD)
-------------------------------
-
-- Add new DCD port for Silabs EFM32GG12 with board Thunderboard Kit (SLTB009A)
-- Add new DCD port Renesas RX63N, board GR-CITRUS
-- Add new (optional) endpoint API dcd_edpt_xfer_fifo
-- Fix build with nRF5340
-- Fix build with lpc15 and lpc54
-- Fix build with lpc177x_8x
-- STM32 Synopsys: greatly improve Isochronous transfer with ``edpt_xfer_fifo()`` API
-- Support LPC55 port1 highspeed
-- Add support for Espressif esp32s3
-- nRF: fix race condition that could cause drop packet of Bulk OUT transfer
-
-USB Device Driver (USBD)
-------------------------
-
-- Add new (optional) endpoint ADPI ``usbd_edpt_xfer_fifo()``
-
-Device Class Driver
--------------------
-
-CDC
-
-- [Breaking] ``tud_cdc_peek()``, ``tud_vendor_peek()`` no longer support random offset and dropped position parameter.
-
-DFU
-
-- Add new DFU 1.1 class driver (WIP)
-
-HID
-
-- Fix keyboard report descriptor template
-- Add more hid keys constant from 0x6B to 0xA4
-
-- [Breaking] rename API
-
- - ``HID_PROTOCOL_NONE/KEYBOARD/MOUSE`` to ``HID_ITF_PROTOCOL_NONE/KEYBOARD/MOUSE``
- - ``tud_hid_boot_mode()`` to ``tud_hid_get_protocol()``
- - ``tud_hid_boot_mode_cb()`` to ``tud_hid_set_protocol_cb()``
-
-MIDI
-
-- Fix MIDI buffer overflow issue
-
-- [Breaking] rename API
-
- - Rename ``tud_midi_read()`` to ``tud_midi_stream_read()``
- - Rename ``tud_midi_write()`` to ``tud_midi_stream_write()``
- - Rename ``tud_midi_receive()`` to ``tud_midi_packet_read()``
- - Rename ``tud_midi_send()`` to ``tud_midi_packet_write()``
-
-Host Controller Driver (HCD)
-----------------------------
-
-- No noticeable changes
-
-USB Host Driver (USBH)
-----------------------
-
-- No noticeable changes
-
-Host Class Driver
------------------
-
-- HID: Rework host hid driver, basically everything changes
-
-
-0.9.0 (2021-03-12)
-==================
-
-Device Stack
-------------
-
-Device Controller Driver (DCD)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-RP2040
-
-- Fix endpoint buffer reallocation overrun problem
-- Fix osal_pico queue overflow in initialization
-- Fix Isochronous endpoint buffer size in transfer
-- Optimize hardware endpoint struct to reduce RAM usage
-- Fix enum walkaround forever check for SE0 when pull up is disabled
-
-Sony CXD56
-
-- Pass the correct speed on Spresense
-- Fix setup processed flag
-
-NXP Transdimention
-
-- Update dcd_init() to reset controller to device mode
-
-USB Device Driver (USBD)
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-- Fix issue with status zlp (``tud_control_status()``) is returned by class driver with SET/CLEAR_FEATURE for endpoint.
-- Correct endpoint size check for fullspeed bulk, can be 8, 16, 32, 64
-- Ack SET_INTERFACE even if it is not implemented by class driver.
-
-Device Class Driver
-^^^^^^^^^^^^^^^^^^^
-
-DFU Runtime
-
-- rename ``dfu_rt()`` to ``dfu_runtime()`` for easy reading
-
-CDC
-
-- Add ``tud_cdc_send_break_cb()`` to support break request
-- Improve CDC receive, minor behavior changes: when ``tud_cdc_rx_wanted_cb()`` is invoked wanted_char may not be the last byte in the fifo
-
-HID
-
-- [Breaking] Add itf argument to hid API to support multiple instances, follow API has signature changes
-
- - ``tud_hid_descriptor_report_cb()``
- - ``tud_hid_get_report_cb()``
- - ``tud_hid_set_report_cb()``
- - ``tud_hid_boot_mode_cb()``
- - ``tud_hid_set_idle_cb()``
-
-- Add report complete callback ``tud_hid_report_complete_cb()`` API
-- Add DPad/Hat support for HID Gamepad
-
- - ``TUD_HID_REPORT_DESC_GAMEPAD()`` now support 16 buttons, 2 joysticks, 1 hat/dpad
- - Add ``hid_gamepad_report_t`` along with ``GAMEPAD_BUTTON_`` and ``GAMEPAD_HAT_`` enum
- - Add Gamepad to ``hid_composite`` / ``hid_composite_freertos`` example
-
-MIDI
-
-- Fix dropping MIDI sysex message when fifo is full
-- Fix typo in ``tud_midi_write24()``, make example less ambiguous for cable and channel
-- Fix incorrect endpoint descriptor length, MIDI v1 use Audio v1 which has 9-byte endpoint descriptor (instead of 7)
-
-Host Stack
-----------
-
-Host Controller Driver (HCD)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-- Add rhport to ``hcd_init()``
-- Improve EHCI/OHCI driver abstraction
-
- - Move echi/ohci files to portable/
- - Rename ``hcd_lpc18_43`` to ``hcd_transdimension``
- - Sub hcd API with ``hcd_ehci_init()``, ``hcd_ehci_register_addr()``
-
-- Update NXP transdimension ``hcd_init()`` to reset controller to host mode
-
- - Ported hcd to rt10xx
-
-USB Host Driver (USBH)
-^^^^^^^^^^^^^^^^^^^^^^
-
-- No noticeable changes to usbh
-
-Host Class Driver
-^^^^^^^^^^^^^^^^^
-
-MSC
-
-- Rename ``tuh_msc_scsi_inquiry()`` to ``tuh_msc_inquiry()``
-- Rename ``tuh_msc_mounted_cb()``/``tuh_msc_unmounted_cb()`` to ``tuh_msc_mount_cb()``/``tuh_msc_unmount_cb()`` to match device stack naming
-- Change ``tuh_msc_is_busy()`` to ``tuh_msc_ready()``
-- Add read10 and write10 function: ``tuh_msc_read10()``, ``tuh_msc_write10()``
-- Read_Capacity is invoked as part of enumeration process
-- Add ``tuh_msc_get_block_count()``, ``tuh_msc_get_block_size()``
-- Add ``CFG_TUH_MSC_MAXLUN`` (default to 4) to hold lun capacities
-
-Others
-------
-
-- Add basic support for rt-thread OS
-- Change zero bitfield length to more explicit padding
-- Build example now fetch required submodules on the fly while running ``make`` without prior submodule init for mcu drivers
-- Update pico-sdk to v1.1.0
-
-**New Boards**
-
-- Microchip SAM E54 Xplained Pro
-- LPCXpresso 55s28
-- LPCXpresso 18s37
-
-
-0.8.0 (2021-02-05)
-==================
-
-Device Controller Driver
-------------------------
-
-- Added new device support for Raspberry Pi RP2040
-- Added new device support for NXP Kinetis KL25ZXX
-- Use ``dcd_event_bus_reset()`` with link speed to replace bus_signal
-
-- ESP32-S2:
-
- - Add bus suspend and wakeup support
-
-- SAMD21:
-
- - Fix (walkaround) samd21 setup_packet overflow by USB DMA
-
-- STM32 Synopsys:
-
- - Rework USB FIFO allocation scheme and allow RX FIFO size reduction
-
-- Sony CXD56
-
- - Update Update Spresense SDK to 2.0.2
- - Fix dcd issues with setup packets
- - Correct EP number for cdc_msc example
-
-USB Device
-----------
-
-**USBD**
-
-- Rework usbd control transfer to have additional stage parameter for setup, data, status
-- Fix ``tusb_init()`` return true instead of ``TUSB_ERROR_NONE``
-- Added new API ``tud_connected()`` that return true after device got out of bus reset and received the very first setup packet
-
-**Class Driver**
-
-- CDC
-
- - Allow to transmit data, even if the host does not support control line states i.e set DTR
-
-- HID
-
- - change default ``CFG_TUD_HID_EP_BUFSIZE`` from 16 to 64
-
-- MIDI
-
- - Fix midi sysex sending bug
-
-- MSC
-
- - Invoke only scsi complete callback after status transaction is complete.
- - Fix ``scsi_mode_sense6_t`` padding, which cause IAR compiler internal error.
-
-- USBTMC
-
- - Change interrupt endpoint example size to 8 instead of 2 for better compatibility with mcu
-
-**Example**
-
-- Support make from windows ``cmd.exe``
-- Add HID Consumer Control (media keys) to ``hid_composite`` & ``hid_composite_freertos`` examples
-
-
-USB Host
---------
-
-No noticeable changes to host stack
-
-New Boards
-----------
-
-- NXP/Freescale Freedom FRDM-KL25Z
-- Feather Double M33 express
-- Raspberry Pi Pico
-- Adafruit Feather RP2040
-- Adafruit Itsy Bitsy RP2040
-- Adafruit QT RP2040
-- Adfruit Feather ESP32-S2
-- Adafruit Magtag 29" Eink
-- Adafruit Metro ESP32-S2
-- Adafruit PyBadge
-- Adafruit PyPortal
-- Great Scott Gadgets' LUNA D11 & D21
-
-
-0.7.0 (2020-11-08)
-==================
-
-Device Controller Driver
-------------------------
-
-- Added new support for Espressif ESP32-S2
-- Added new support for Dialog DA1469x
-- Enhance STM32 Synopsys
-
-- Support bus events disconnection/suspend/resume/wakeup
-
- - Improve transfer performance with optimizing xfer and fifo size
- - Support Highspeed port (OTG_HS) with both internal and external PHY
- - Support multiple usb ports with rhport=1 is highspeed on selected MCUs e.g H743, F23. It is possible to have OTG_HS to run on Fullspeed PHY (e.g lacking external PHY)
- - Add ISO transfer, fix odd/even frame
- - Fix FIFO flush during stall
- - Implement ``dcd_edpt_close()`` API
- - Support F105, F107
-
-- Enhance STM32 fsdev
-
- - Improve dcd fifo allocation
- - Fix ISTR race condition
- - Support remap USB IRQ on supported MCUs
- - Implement ``dcd_edpt_close()`` API
-
-- Enhance NUC 505: enhance set configure behavior
-
-- Enhance SAMD
-
- - Fix race condition with setup packet
- - Add SAMD11 option ``OPT_MCU_SAMD11``
- - Add SAME5x option ``OPT_MCU_SAME5X``
-
-- Fix SAMG control data toggle and stall race condition
-
-- Enhance nRF
-
- - Fix hanged when ``tud_task()`` is called within critical section (disabled interrupt)
- - Fix disconnect bus event not submitted
- - Implement ISO transfer and ``dcd_edpt_close()``
-
-
-USB Device
-----------
-
-**USBD**
-
-- Add new class driver for **Bluetooth HCI** class driver with example can be found in [mynewt-tinyusb-example](https://github.com/hathach/mynewt-tinyusb-example) since it needs mynewt OS to run with.
-- Fix USBD endpoint usage racing condition with ``usbd_edpt_claim()``/``usbd_edpt_release()``
-- Added ``tud_task_event_ready()`` and ``osal_queue_empty()``. This API is needed to check before enter low power mode with WFI/WFE
-- Rename USB IRQ Handler to ``dcd_int_handler()``. Application must define IRQ handler in which it calls this API.
-- Add ``dcd_connect()`` and ``dcd_disconnect()`` to enable/disable internal pullup on D+/D- on supported MCUs.
-- Add ``usbd_edpt_open()``
-- Remove ``dcd_set_config()``
-- Add ``OPT_OS_CUMSTOM`` as hook for application to overwrite and/or add their own OS implementation
-- Support SET_INTERFACE, GET_INTERFACE request
-- Add Logging for debug with optional uart/rtt/swo printf retarget or ``CFG_TUSB_DEBUG_PRINTF`` hook
-- Add IAR compiler support
-- Support multiple configuration descriptors. ``TUD_CONFIG_DESCRIPTOR()`` template has extra config_num as 1st argument
-- Improve USB Highspeed support with actual link speed detection with ``dcd_event_bus_reset()``
-
-- Enhance class driver management
-
- - ``usbd_driver_open()`` add max length argument, and return length of interface (0 for not supported). Return value is used for finding appropriate driver
- - Add application implemented class driver via ``usbd_app_driver_get_cb()``
- - IAD is handled to assign driver id
-
-- Added ``tud_descriptor_device_qualifier_cb()`` callback
-- Optimize ``tu_fifo`` bulk write/read transfer
-- Forward non-std control request to class driver
-- Let application handle Microsoft OS 1.0 Descriptors (the 0xEE index string)
-- Fix OSAL FreeRTOS yield from ISR
-
-**Class Drivers**
-
-- USBNET: remove ACM-EEM due to lack of support from host
-- USBTMC: fix descriptors when INT EP is disabled
-
-- CDC:
-
- - Send zero length packet for end of data when needed
- - Add ``tud_cdc_tx_complete_cb()`` callback
- - Change ``tud_cdc_n_write_flush()`` return number of bytes forced to transfer, and flush when writing enough data to fifo
-
-- MIDI:
-
- - Add packet interface
- - Add multiple jack descriptors
- - Fix MIDI driver for sysex
-
-- DFU Runtime: fix response to SET_INTERFACE and DFU_GETSTATUS request
-
-- Rename some configure macro to make it clear that those are used directly for endpoint transfer
-
- - ``CFG_TUD_HID_BUFSIZE`` to ``CFG_TUD_HID_EP_BUFSIZE``
- - ``CFG_TUD_CDC_EPSIZE`` to ``CFG_TUD_CDC_EP_BUFSIZE``
- - ``CFG_TUD_MSC_BUFSIZE`` to ``CFG_TUD_MSC_EP_BUFSIZE``
- - ``CFG_TUD_MIDI_EPSIZE`` to ``CFG_TUD_MIDI_EP_BUFSIZE``
-
-- HID:
-
- - Fix gamepad template descriptor
- - Add multiple HID interface API
- - Add extra comma to HID_REPORT_ID
-
-USB Host
---------
-
-- Rework USB host stack (still work in progress)
- - Fix compile error with pipehandle
- - Rework usbh control and enumeration as non-blocking
-
-- Improve Hub, MSC, HID host driver
-
-Examples
---------
-
-- Add new ``hid_composite_freertos``
-- Add new ``dynamic_configuration`` to demonstrate how to switch configuration descriptors
-- Add new ``hid_multiple_interface``
-
-- Enhance ``net_lwip_webserver`` example
-
- - Add multiple configuration: RNDIS for Windows, CDC-ECM for macOS (Linux will work with both)
- - Update lwip to STABLE-2_1_2_RELEASE for ``net_lwip_webserver``
-
-- Added new Audio example: ``audio_test`` ``uac2_headsest``
-
-New Boards
-----------
-
-- Espressif ESP32-S2: saola_1, kaluga_1
-- STM32: F746 Nucleo, H743 Eval, H743 Nucleo, F723 discovery, stlink v3 mini, STM32L4r5 Nucleo
-- Dialog DA1469x dk pro and dk usb
-- Microchip: Great Scoot Gadgets' LUNA, samd11_xplained, D5035-01, atsamd21 xplained pro
-- nRF: ItsyBitsy nRF52840
-
-
-0.6.0 (2020-03-30)
-==================
-
-Added **CONTRIBUTORS.md** to give proper credit for contributors to the stack. Special thanks to `Nathan Conrad <https://github.com/pigrew>`__ , `Peter Lawrence <https://github.com/majbthrd>`__ , `William D. Jones <https://github.com/cr1901>`__ and `Sean Cross <https://github.com/xobs>`__ and others for spending their precious time to add lots of features and ports for this release.
-
-Added
------
-
-**MCU**
-
-- Added support for Microchip SAMG55
-- Added support for Nordic nRF52833
-- Added support for Nuvoton: NUC120, NUC121/NUC125, NUC126, NUC505
-- Added support for NXP LPC: 51Uxx, 54xxx, 55xx
-- Added support for NXP iMXRT: RT1011, RT1015, RT1021, RT1052, RT1062, RT1064
-- Added support for Sony CXD56 (Spresense)
-- Added support for STM32: L0, F0, F1, F2, F3, F4, F7, H7
-- Added support for TI MSP430
-- Added support for ValentyUSB's eptri
-
-**Class Driver**
-
-- Added DFU Runtime class driver
-- Added Network class driver with RNDIS, CDC-ECM, CDC-EEM (work in progress)
-- Added USBTMC class driver
-- Added WebUSB class driver using vendor-specific class
-- Added multiple instances support for CDC and MIDI
-- Added a handful of unit test with Ceedling.
-- Added LOG support for debugging with CFG_TUSB_DEBUG
-- Added ``tud_descriptor_bos_cb()`` for BOS descriptor (required for USB 2.1)
-- Added ``dcd_edpt0_status_complete()`` as optional API for DCD
-
-**Examples**
-
-Following examples are added:
-
-- ``board_test``
-- ``cdc_dual_ports``
-- ``dfu_rt``
-- ``hid_composite``
-- ``net_lwip_webserver``
-- ``usbtmc``
-- ``webusb_serial``
-
-Changed
--------
-
-- Changed ``tud_descriptor_string_cb()`` to have additional Language ID argument
-- Merged ``hal_nrf5x.c`` into ``dcd_nrf5x.c``
-- Merged ``dcd_samd21.c`` and ``dcd_samd51.c`` into ``dcd_samd.c``
-- Generalized ``dcd_stm32f4.c`` to ``dcd_synopsys.c``
-- Changed ``cdc_msc_hid`` to ``cdc_msc`` (drop hid) due to limited endpoints number of some MCUs
-- Improved DCD SAMD stability, fix missing setup packet occasionally
-- Improved ``usbd/usbd_control`` with proper handling of zero-length packet (ZLP)
-- Improved STM32 DCD FSDev
-- Improved STM32 DCD Synopsys
-- Migrated CI from Travis to Github Action
-- Updated nrfx submodule to 2.1.0
-- Fixed mynewt osal queue definition
-- Fixed ``cdc_msc_freertos`` example build for all MCUs
-
-
-0.5.0 (2019-06)
-===============
-
-First release, device stack works great, host stack works but still need improvement.
-
-- Special thanks to @adafruit team, especially @tannewt to help out immensely to rework device stack: simplify osal & control transfer, adding SAMD21/SAMD51 ports, writing porting docs, adding MIDI class support etc...
-- Thanks to @cr1901 for adding STM32F4 port.
-- Thanks to @PTS93 and @todbot for HID raw API
diff --git a/docs/info/changelog/0.10.0.rst b/docs/info/changelog/0.10.0.rst
new file mode 100644
index 000000000..7c11dd176
--- /dev/null
+++ b/docs/info/changelog/0.10.0.rst
@@ -0,0 +1,83 @@
+0.10.0
+======
+
+*2021-05-28*
+
+- Rework tu_fifo_t with separated mutex for read and write, better support DMA with read/write buffer info. And constant address mode
+- Improve audio_test example and add audio_4_channel_mic example
+- Add new dfu example
+- Remove pico-sdk from submodule
+
+Device Controller Driver (DCD)
+------------------------------
+
+- Add new DCD port for Silabs EFM32GG12 with board Thunderboard Kit (SLTB009A)
+- Add new DCD port Renesas RX63N, board GR-CITRUS
+- Add new (optional) endpoint API dcd_edpt_xfer_fifo
+- Fix build with nRF5340
+- Fix build with lpc15 and lpc54
+- Fix build with lpc177x_8x
+- STM32 Synopsys: greatly improve Isochronous transfer with ``edpt_xfer_fifo()`` API
+- Support LPC55 port1 highspeed
+- Add support for Espressif esp32s3
+- nRF: fix race condition that could cause drop packet of Bulk OUT transfer
+
+USB Device Driver (USBD)
+------------------------
+
+- Add new (optional) endpoint ADPI ``usbd_edpt_xfer_fifo()``
+
+Device Class Driver
+-------------------
+
+CDC
+^^^
+
+- [Breaking] ``tud_cdc_peek()``, ``tud_vendor_peek()`` no longer support random offset and dropped position parameter.
+
+DFU
+^^^
+
+- Add new DFU 1.1 class driver (WIP)
+
+HID
+^^^
+
+- Fix keyboard report descriptor template
+- Add more hid keys constant from 0x6B to 0xA4
+- [Breaking] rename API
+
+ - ``HID_PROTOCOL_NONE/KEYBOARD/MOUSE`` to ``HID_ITF_PROTOCOL_NONE/KEYBOARD/MOUSE``
+ - ``tud_hid_boot_mode()`` to ``tud_hid_get_protocol()``
+ - ``tud_hid_boot_mode_cb()`` to ``tud_hid_set_protocol_cb()``
+
+MIDI
+^^^^
+
+- Fix MIDI buffer overflow issue
+- [Breaking] rename API
+
+ - Rename ``tud_midi_read()`` to ``tud_midi_stream_read()``
+ - Rename ``tud_midi_write()`` to ``tud_midi_stream_write()``
+ - Rename ``tud_midi_receive()`` to ``tud_midi_packet_read()``
+ - Rename ``tud_midi_send()`` to ``tud_midi_packet_write()``
+
+Host Controller Driver (HCD)
+----------------------------
+
+- No noticeable changes
+
+USB Host Driver (USBH)
+----------------------
+
+- No noticeable changes
+
+Host Class Driver
+-----------------
+
+- HID: Rework host hid driver, basically everything changes
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @alisitsyn, @corvus-ossifragus, @hathach, @jgressmann, @joeycastillo, @kapacuk, @kasjer, @kkitayam, @ned-pcs, @noodlefighter, @ogatatsu, @PanRe, @perigoso, @pigrew, @sjanc, @xmos-jmccarthy.
diff --git a/docs/info/changelog/0.10.1.rst b/docs/info/changelog/0.10.1.rst
new file mode 100644
index 000000000..30f1bbd98
--- /dev/null
+++ b/docs/info/changelog/0.10.1.rst
@@ -0,0 +1,20 @@
+0.10.1
+======
+
+*2021-06-03*
+
+- rework rp2040 examples and CMake build, allow better integration with pico-sdk
+
+Host Controller Driver (HCD)
+----------------------------
+
+- Fix rp2040 host driver: incorrect PID with low speed device with max packet size of 8 bytes
+- Improve hub driver
+- Remove obsolete ``hcd_pipe_queue_xfer()``/``hcd_pipe_xfer()``
+- Use ``hcd_frame_number()`` instead of micro frame
+- Fix OHCI endpoint address and ``xferred_bytes`` in xfer complete event
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @hathach, @kilograham.
diff --git a/docs/info/changelog/0.11.0.rst b/docs/info/changelog/0.11.0.rst
new file mode 100644
index 000000000..b6330de6e
--- /dev/null
+++ b/docs/info/changelog/0.11.0.rst
@@ -0,0 +1,107 @@
+0.11.0
+======
+
+*2021-08-29*
+
+- Add host/hid_controller example: only worked/tested with Sony PS4 DualShock controller
+- Add device/hid_boot_interface example
+- Add support for Renesas CCRX toolchain for RX mcu
+
+Device Controller Driver (DCD)
+------------------------------
+
+- Add new DCD port for SAMx7x (E70, S70, V70, V71)
+- Add new mcu K32L2Bxx
+- Add new mcu GD32VF103
+- Add new mcu STM32l151
+- Add new mcu SAML21
+- Add new mcu RX65n RX72n
+- Fix NUC120/121/126 USBRAM can only be accessed in byte manner. Also improve set_address & disable sof
+- Add Suspend/Resume handling for Renesas RX family.
+- Fix DA1469x no VBUS startup
+
+Synopsys
+^^^^^^^^
+
+- Fix Synopsys set address bug which could cause re-enumeration failed
+- Fix ``dcd_synopsys`` driver integer overflow in HS mode (issue #968)
+
+nRF5x
+^^^^^
+
+- Add nRF5x suspend, resume and remote wakeup
+- Fix nRF5x race condition with ``TASKS_EP0RCVOUT``
+
+RP2040
+^^^^^^
+
+- Add RP2040 suspend & resume support
+- Implement double buffer for both host and device (#891). However device EPOUT is still single buffered due to techinical issue with short packet
+
+Device Stack
+------------
+
+USBD
+^^^^
+
+- Better support big endian mcu
+- Add ``tuh_inited()`` and ``tud_inited()``, will separate ``tusb_init/inited()`` to ``tud/tuh_init/inited()``
+- Add ``dcd_attr.h`` for defining common controller attribute such as max endpoints
+
+Bluetooth
+^^^^^^^^^
+
+- Fix stridx error in descriptor template
+
+DFU
+^^^
+
+- Enhance DFU implementation to support multiple alternate interface and better support ``bwPollTimeout``
+- Rename ``CFG_TUD_DFU_MODE`` to simply ``CFG_TUD_DFU``
+
+HID
+^^^
+
+- Fix newline usage keyboard (ENTER 0x28)
+- Better support Hid Get/Set report
+- Change max gamepad support from 16 to 32 buttons
+
+MIDI
+^^^^
+
+- Fix midi available
+- Fix midi data
+- Fix an issue when calling midi API when not enumerated yet
+
+UAC2
+^^^^
+
+- Fix bug and enhance of UAC2
+
+Vendor
+^^^^^^
+
+- Fix vendor fifo deadlock in certain case
+- Add ``tud_vendor_n_read_flush()``
+
+Host Controller Driver (HCD)
+----------------------------
+
+RP2040
+^^^^^^
+
+- Implement double buffered to fix E4 errata and boost performance
+- Lots of rp2040 update and enhancement
+
+Host Stack
+----------
+
+- Major update and rework most of host stack, still needs more improvement
+- Lots of improvement and update in parsing configuration and control
+- Rework and major update to HID driver. Will default to enable boot interface if available
+- Separate ``CFG_TUH_DEVICE_MAX`` and ``CFG_TUH_HUB`` for better management and reduce SRAM usage
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @a-h, @BennyEvans, @ctag-fh-kiel, @DuMaM, @hathach, @HiFiPhile, @KarlK90, @kasjer, @kilograham, @kkitayam, @majbthrd, @mmosca, @mws-rmain, @ned-pcs, @nxf58843, @perigoso, @sabas1080, @salkinium, @tringis, @Wini-Buh, @xcguang, @xmos-jmccarthy, @zhangslice.
diff --git a/docs/info/changelog/0.12.0.rst b/docs/info/changelog/0.12.0.rst
new file mode 100644
index 000000000..65ac4741f
--- /dev/null
+++ b/docs/info/changelog/0.12.0.rst
@@ -0,0 +1,35 @@
+0.12.0
+======
+
+- add ``CFG_TUSB_OS_INC_PATH`` for os include path
+
+Device Controller Driver (DCD)
+------------------------------
+
+- Getting device stack to pass USB Compliance Verification test (chapter9, HID, MSC). Ports are tested:
+ nRF, SAMD 21/51, rp2040, stm32f4, Renesas RX, iMXRT, ESP32-S2/3, Kinetic KL25/32, DA146xx
+- Added ``dcd_edpt_close_all()`` for switching configuration
+- [Transdimension] Support ``dcd_edpt_xfer_fifo()`` with auto wrap over if fifo buffer is 4K aligned and size is multiple of 4K.
+- [DA146xx] Improve vbus, reset, suspend, resume detection, and remote wakeup.
+
+Device Stack
+------------
+
+- Add new network driver Network Control Model (CDC-NCM), update ``net_lwip_webserver`` to work with NCM (need re-configure example)
+- Add new USB Video Class UVC 1.5 driver and video_capture example (work in progress)
+- Fix potential buffer overflow for HID, bluetooth drivers
+
+Host Controller Driver (HCD)
+----------------------------
+
+No notable changes
+
+Host Stack
+----------
+
+No notable changes
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @Daft-Freak, @dshadoff, @hansfbaier, @hathach, @HiFiPhile, @kamtom480, @kasjer, @kkitayam, @majbthrd, @szymonh, @unlimitedcodeworks.
diff --git a/docs/info/changelog/0.13.0.rst b/docs/info/changelog/0.13.0.rst
new file mode 100644
index 000000000..a860918d0
--- /dev/null
+++ b/docs/info/changelog/0.13.0.rst
@@ -0,0 +1,45 @@
+0.13.0
+======
+
+- [tu_fifo] Fix locked mutex when full, and return type in ``peek_n()``
+
+Controller Driver (DCD & HCD)
+-----------------------------
+
+- [DWC2] Generalize synopsys dwc2 with synopsys/dwc2 which support both FS and HS phy (UTMI and ULPI) for various MCUs.
+
+ - Broadcom 28/27xx on raspberrypi SBC
+ - Silicon Labs EFM32
+ - Espressif ESP32 Sx
+ - GigaDevice GD32
+ - ST STM32
+ - Infineon XMC
+- [KL25] Add new HCD for NXP KL25
+- [MUSB] Add new DCD and HCD for Mentor musb with TI MSP432E4
+- [F1C100s] Add new DCD for Allwinner F1C100s family
+- [PIC32MZ] Add new DCD for PIC32MZ
+- [nRF] Fix/Enhance various race condition with: EASY DMA, request HFXO, EPOUT
+- [ChipIdea] rename Transdimension to more popular ChipIdea Highspeed,
+- [RP2040] various update/fix for hcd/dcd
+- [FT9XX] new DCD port for Bridgetek FT90x and FT93x devices
+- [DA1469X] Fix resume
+- [OHCI] Fix device array out of bound
+
+Note: legacy drivers such as st/synopsys, nxp/transdimension are still present in this release but won't receive more update and could be removed in the future.
+
+Device Stack
+------------
+
+- [Audio] Support disabling feedback format correction (16.16 <-> 10.14 format)
+- [MSC] Add ``tud_msc_request_sense_cb()`` callback, change most default sense error to medium not present (0x02, 0x3A, 0x00)
+- [Video] Fix video_capture example fails enumeration when 8FPS
+
+Host Stack
+----------
+
+No notable changes
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @alisitsyn, @brtchip-gdm, @cr1901, @EmergReanimator, @hathach, @HiFiPhile, @JayToltTech, @jgressmann, @kasjer, @kkitayam, @leptun, @liamfraser, @majbthrd, @mkj, @mysterywolf, @NexusXe, @nxf58843, @perigoso, @rppicomidi, @Ryzee119, @scoudreau, @sharpie7, @suda-morris, @t123yh, @tannewt, @vmilea, @ZenithalHourlyRate.
diff --git a/docs/info/changelog/0.14.0.rst b/docs/info/changelog/0.14.0.rst
new file mode 100644
index 000000000..dca587cf9
--- /dev/null
+++ b/docs/info/changelog/0.14.0.rst
@@ -0,0 +1,79 @@
+0.14.0
+======
+
+- Improve compiler support for CCRX and IAR
+- Add timeout to ``osal_queue_receive()``
+- Add ``tud_task_ext(timeout, in_isr)`` as generic version of ``tud_task()``. Same as ``tuh_task_ext()``, ``tuh_task()``
+- Enable more warnings ``-Wnull-dereference -Wuninitialized -Wunused -Wredundant-decls -Wconversion``
+
+Add new examples
+^^^^^^^^^^^^^^^^
+
+- ``host/bare_api`` to demonstrate generic (app-level) enumeration and endpoint transfer
+- ``dual/host_hid_to_device_cdc`` to run both device and host stack concurrently, get HID report from host and print out to device CDC. This example only work with multiple-controller MCUs and rp2040 with the help of pio-usb as added controller.
+
+Controller Driver (DCD & HCD)
+-----------------------------
+
+- Enhance rhports management to better support dual roles
+
+ - ``CFG_TUD_ENABLED``/``CFG_TUH_ENABLED``, ``CFG_TUD_MAX_SPEED``/``CFG_TUH_MAX_SPEED`` can be used to replace ``CFG_TUSB_RHPORT0_MODE``/``CFG_TUSB_RHPORT1_MODE``
+ - ``tud_init(rphort)``, ``tuh_init(rhport)`` can be used to init stack on specified roothub port (controller) instead of ``tusb_init(void)``
+- Add dcd/hcd port specific defines ``TUP_`` (stand for tinyusb port-specific)
+
+dwc2
+^^^^
+
+- Update to support stm32 h72x, h73x with only 1 otg controller
+- Fix overwrite with grstctl when disable endpoint
+
+- [EHCI] Fix an issue with EHCI driver
+- [msp430] Fix for possible bug in msp430-elf-gcc 9.3.0
+- [nrf5x] Fix DMA access race condition using atomic function
+- [pic32] Fix PIC32 santiy
+
+rp2040
+^^^^^^
+
+- Add PICO-PIO-USB as controller (device/host) support for rp2040
+- Use shared IRQ handlers, so user can also hook the USB IRQ
+- Fix resumed signal not reported to device stack
+
+- [stm32fsdev] Add support for stm32wb55
+
+Device Stack
+------------
+
+- [Audio] Add support for feedback endpoint computation
+
+ - New API ``tud_audio_feedback_params_cb()``, ``tud_audio_feedback_interval_isr()``.
+ - Supported computation method are: frequency with fixed/float or power of 2. Feedback with fifo count is not yet supported.
+ - Fix nitfs (should be 3) in ``TUD_AUDIO_HEADSET_STEREO_DESCRIPTOR``
+ - Fix typo in ``audiod_rx_done_cb()``
+
+- [DFU] Fix coexistence with other interfaces BTH, RNDIS
+- [MSC] Fix inquiry response additional length field
+- [Venndor] Improve write performance
+
+Host Stack
+----------
+
+- Add new API ``tuh_configure(rhport, cfg_id, cfg_param)`` for dynamnic port specific behavior configuration
+- [HID] Open OUT endpoint if available
+- [Hub] hub clear port and device interrupts
+
+[USBH] Major improvement
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Rework usbh control transfer with complete callback. New API ``tuh_control_xfer()`` though still only carry 1 usbh (no queueing) at a time.
+- Add generic endpoint transfer with ``tuh_edpt_open()``, ``tuh_edpt_xfer()``. Require ``CFG_TUH_API_EDPT_XFER=1``
+- Support app-level enumeration with new APIs
+
+ - ``tuh_descriptor_get()``, ``tuh_descriptor_get_device()``, ``tuh_descriptor_get_configuration()``, ``tuh_descriptor_get_hid_report()``
+ - ``tuh_descriptor_get_string()``, ``tuh_descriptor_get_manufacturer_string()``, ``tuh_descriptor_get_product_string()``, ``tuh_descriptor_get_serial_string()``
+ - Also add ``_sync()`` as sync/blocking version for above APIs
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @alexandre-perrin, @ccrome, @cr1901, @Daft-Freak, @Firefishy, @hathach, @iabdalkader, @Iktek, @kasjer, @kilograham, @liamfraser, @M3gaFr3ak, @maddyaby, @majbthrd, @mingpepe, @Nikitarc, @perigoso, @phryniszak, @pigrew, @Qianhao2579, @robert-hh, @Ryzee119, @sjanc, @sknebel, @tannewt, @tfx2001, @Wini-Buh, @yoyopod.
diff --git a/docs/info/changelog/0.15.0.rst b/docs/info/changelog/0.15.0.rst
new file mode 100644
index 000000000..07b7a0d7b
--- /dev/null
+++ b/docs/info/changelog/0.15.0.rst
@@ -0,0 +1,86 @@
+0.15.0
+======
+
+- Add codespell to detect typo
+- Add support for fuzzing and bagde for oss-fuzz
+
+osal
+^^^^
+
+- Allow the use of non-static allocation for FreeRTOS
+- Fix FreeRTOS wrong task switch in some cases
+
+- Fix tu_fifo memory overflown when repeatedly write to overwritable fifo (accumulated more than 2 depths)
+- Better support for IAR (ARM) with ci build check for stm32 mcus.
+- Fix Windows build for some mingw gnu make situations
+
+Controller Driver (DCD & HCD)
+-----------------------------
+
+- Add new port support (WIP) for WCH CH32V307 USB Highspeed
+- Add new port support (WIP) for PIC32MM/MX & PIC24
+
+nRF
+^^^
+
+- Fix endpoint internal state when closed
+- Fix reception of large ISO packets
+
+rp2040
+^^^^^^
+
+- [dcd] Implement workaround for Errata 15. This enable SOF when bulk-in endpoint is in use and reduce its bandwidth to only 80%
+- [hcd] Fix shared irq slots filling up when ``hcd_init()`` is called multiple times
+- [hcd] Support host bulk endpoint using hw "interrupt" endpoint. Note speed limit is 64KB/s
+
+- [samd][dcd] Add support for ISO endpoint
+- [dwc2][dcd] Add support for stm32u5xx
+- [esp32sx] Fix Isochronous transfers only transmitted on even frame
+- [lpc_ip3511][dcd] Add isochronous support and fix endpoint accidental write
+- [ft90x] Improve and enhance support for FT9xx MCU, tested with more examples
+
+Device Stack
+------------
+
+Video
+^^^^^
+
+- Add support for MJPEG
+- Fix probe on macOS
+
+MIDI
+^^^^
+
+- Support port name strings
+- fix MS Header wTotalLength computation
+
+HID
+^^^
+
+- Add FIDO descriptor template
+- change length in ``tud_hid_report_complete_cb()`` from ``uint8_t`` to ``uint16_t``
+
+CDC
+^^^
+
+- Fix autoflush for FIFO < MPS
+- Fix tx fifo memory overflown when DTR is not set and ``tud_cdc_write()`` is called repeatedly with large enough data
+
+- [USBTMC] Fix packet size with highspeed
+
+Host Stack
+----------
+
+- Retry a few times with transfers in enumeration since device can be unstable when starting up
+- [MSC] Rework host masstorage API. Add new ``host/msc_file_explorer`` example
+
+CDC
+^^^
+
+- Add support for host cdc
+- Fix host cdc with device without IAD e.g Arduino Due
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @battlesnake, @benishor, @brtchip-gdm, @DRNadler, @gregdavill, @hadess, @hathach, @hfegran, @HiFiPhile, @jbruneaux31, @jmark1m, @kasjer, @kaysievers, @kilograham, @kkitayam, @kripton, @Lan-Hekary, @LynnL4, @maddyaby, @mingpepe, @nathaniel-brough, @P33M, @pete-pjb, @ReimuNotMoe, @rppicomidi, @scoudreau, @Skyler84, @Staacks, @tore-espressif, @tswan-quasi, @tyustli.
diff --git a/docs/info/changelog/0.16.0.rst b/docs/info/changelog/0.16.0.rst
new file mode 100644
index 000000000..7065f18ff
--- /dev/null
+++ b/docs/info/changelog/0.16.0.rst
@@ -0,0 +1,165 @@
+0.16.0
+======
+
+- New controller driver: MAX3421e (usb host shield), rusb2 (Renesas USB2.0), ChipIdea fullspeed
+- New MCUs: MCXn9, nRF5340, STM32: G0, G4, L5, U575, U5A5, RA6m5, CH32F20x
+- Add initial TypeC PowerDelivery support with STM32G4
+- Remove submodules and use python script to manage repo dependencies #1947
+- Add CMake support for most families and boards, move build file from tools/ to examples/build_system
+- Add ETM trace support with JTrace for nrf52840, nrf5340, mcb1857, stm32h743eval, ra6m5
+- [osal] Make it possible to override the ``osal_task_delay()`` in osal_none
+- Add CDC+UAC2 composite device example
+- Enhance Hardware-in-the-loop (HIL) testing with more boards: rp2040, stm32l412nucleo, stm32f746disco, lpcxpresso43s67
+
+Controller Driver (DCD & HCD)
+-----------------------------
+
+- Add new ISO endpoint API: ``dcd_edpt_iso_alloc()`` and ``dcd_edpt_iso_activate()``
+- Remove legacy driver st/synopsys
+
+EHCI
+^^^^
+
+- [iMXRT] Add dache clean/invalidate when memory is in cacheable memory
+- Fix portsc write issue which cause problem with enumeration
+- Fix an issue when doing port reset write to portsc
+- Fix port change detect is not recognized when power on with attached device
+- Fix xfer failed with disconnected device as stalled
+- Fix error on EHCI causes xfer error in non-queued qhd which cause memory fault
+- Un-roll recursive hub removal with usbh queue
+- Fix issue when removing queue head
+- Implement ``hcd_edpt_abort_xfer()``
+- use standard USB complete interrupt instead of custom chipidea async/period interrupt to be more compatible with other ehci implementation
+- refactor usb complete & error isr processing, merge, update. Fix EHCI QHD reuses QTD on wrong endpoint
+- Improve bus reset, fix ``send_setup()`` not carried out if halted previously
+- Fix clear qhd halted bit if not caused by STALL protocol to allow for next transfer
+
+ChipIdea Highspeed
+^^^^^^^^^^^^^^^^^^
+
+- Fix control transfer issue when previous status and new setup complete in the same isr frame
+- [imxrt] Add dcache support for cache region
+
+ChipIdea Fullspeed
+^^^^^^^^^^^^^^^^^^
+
+- Generalize ChipIdea Fullspeed driver for mcxn9 (port 0), kinetis
+
+nrf
+^^^
+
+- Fix DMA race condition with ISO OUT transfer #1946
+- Add support for nRF5340 with pca10095 board
+
+Renesas rusb2
+^^^^^^^^^^^^^
+
+- Generalize rusb2 driver for ra, rx mcus
+- rework both dcd and hcd for better multiple ports support
+- Add support for board with HS USB port: ra6m5 port1
+
+rp2040
+^^^^^^
+
+- [dcd] Make writes to SIE_CTRL aware of concurrent access
+- [hcd] add ``hcd_frame_number()``, ``hcd_edpt_abort_xfer()`` for pio-usb host
+
+stm32 fsdev
+^^^^^^^^^^^
+
+- Add STM32L5 support
+- Implement ``dcd_edpt_iso_alloc()`` and ``dcd_edpt_iso_activate()``
+
+OHCI
+^^^^
+
+- Allows configurable root hub ports, handles SMM mode (Ref OHCI spec 5.1.1.3.3) and Bios mode (Ref OHCI spec 5.1.1.3.4)
+- Fix FrameIntervalToggle must be toggled after we write the FrameInterval (Ref OHCI Spec 7.3.1)
+- Wait PowerOnToPowerGoodTime after we enable power of the RH ports (Ref OHCI Spec 7.4.1)
+- Generate port interrupts for devices already connected during init.
+- Fix issue when removing queue head
+- Disable MIE during IRQ processing and clear HccaDoneHead on completion as per OCHI Spec Page 80
+
+Device Stack
+------------
+
+- Add optional hooks ``tud_event_hook_cb()``
+
+Audio (UAC2)
+^^^^^^^^^^^^
+
+- Fix feedback EP buffer alignment.
+- Fix encoding, update example
+- Improve IN transfer
+
+Bluetooth
+^^^^^^^^^
+
+- Add historical EP compatibility for Bluetooth HCI
+
+CDC
+^^^
+
+- Fix line_coding alignment
+- Fix typo in cdc line coding enum
+
+MIDI
+^^^^
+
+- Fix ``stream_write()`` always writes system messages to cable 0
+- Fix incorrect NOTE_ON, NOTE_OFF definitions
+
+- USBTMC: Fix tmc488 bit order
+
+- Vendor: fix ``read()``/``write()`` race condition
+
+Video (UVC)
+^^^^^^^^^^^
+
+- Add the capability for video class to handle a bulk endpoint in the streaming interface.
+
+Host Stack
+----------
+
+USBH
+^^^^
+
+- Add new APIs: ``tuh_interface_set()``, ``tuh_task_event_ready()``, ``tuh_edpt_abort_xfer()``, ``tuh_rhport_reset_bus()``, ``tuh_rhport_is_active()``
+- Fix issue when device generate multiple attach/detach/attach when plugging in
+- Prefer application callback over built-in driver on transfer complete event
+- Correct ``hcd_edpt_clear_stall()`` API signature
+- Separate bus reset delay and contact debouncing delay in enumeration
+- Support ``usbh_app_driver_get_cb()`` for application drivers
+- Fix usbh enumeration removal race condition
+- Add optional hooks ``tuh_event_hook_cb()``
+
+CDC
+^^^
+
+- Breaking: change ``tuh_cdc_itf_get_info()`` to use tuh_itf_info_t instead of tuh_cdc_info_t
+- Fix cdc host enumeration issue when device does not support line request
+- Add support for vendor usb2uart serial: ftdi, cp210x, ch9102f
+- Improve sync control API e.g ``tuh_cdc_set_control_line_state()``, ``tuh_cdc_set_line_coding()``
+
+HID
+^^^
+
+- Add new APIs ``tuh_hid_send_report()``, ``tuh_hid_itf_get_info()``, ``tuh_hid_receive_ready()``, ``tuh_hid_send_ready()``, ``tuh_hid_set_default_protocol()``
+- Change meaning of CFG_TUH_HID to total number of HID interfaces supported. Previously ``CFG_TUH_HID`` is max number of interfaces per device which is rather limited and consume more resources than needed.
+
+HUB
+^^^
+
+- Fix handling of empty "status change" interrupt
+- Fix issue with hub status_change is not aligned
+
+MSC
+^^^
+
+- Fix bug in ``tuh_msc_ready()``
+- Fix host msc get maxlun not using aligned section memory
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @0xCCF4, @abakosh, @ahooper, @antoniovazquezblanco, @bavison, @bencowperthwaite, @bpaddock, @branalba, @ccrome, @dauc, @dhalbert, @DRNadler, @dsugisawa-mixi, @epatstarkey, @eustas, @facchinm, @gabChouin, @georgeboc, @hathach, @HiFiPhile, @howard0su, @HubertD, @ipopov, @jbtheou, @jefftrull, @jfedor2, @jferreir, @jfm92, @jncronin, @JustAnother1, @kasjer, @kholia, @kilograham, @kkitayam, @koendv, @Krasutski, @kripton, @maidnl, @MattMills, @mikee47, @mndza, @nathaniel-brough, @NullMember, @perigoso, @projectgus, @raiden00pl, @ReimuNotMoe, @Rocky04, @rppicomidi, @Ryzee119, @sinitax, @sjanc, @slark-yuxj, @slc-tl, @Tails86, @tannewt, @tswan-quasi, @tyustli, @Yveaux.
diff --git a/docs/info/changelog/0.17.0.rst b/docs/info/changelog/0.17.0.rst
new file mode 100644
index 000000000..af9a486c3
--- /dev/null
+++ b/docs/info/changelog/0.17.0.rst
@@ -0,0 +1,184 @@
+0.17.0
+======
+
+General
+-------
+
+- Improved CI: build both cmake and make. Make use of CircleCI for part of build process to speed up CI
+- Add CodeQL Workflow for Code Security Analysis
+- Add Clang compiler support
+- Add default implementation for weak callbacks functions for better Keil compatibility
+- Upgrade hardware-in-the-loop (HIL) testing with more boards and examples: including dual stack example
+
+Controller Driver (DCD & HCD)
+-----------------------------
+
+Chipidea
+^^^^^^^^
+
+- Support MCXA
+
+DWC2
+^^^^
+
+- Fix tickless issue with stm32f7: disable ULPI clock during sleep when using internal phy
+- Fix SOF interrupt handling
+- Fix fifo level half/empty issue
+- Add DWC2 Test Mode support.
+- for esp32 force disconnect/connect using USB_WRAP otg pad override
+
+FSDEV
+^^^^^
+
+- Rewrite and Generalize driver to support non-stm32 mcu such as wch
+- Simplify PMA, HW FIFO access and bit manipulation for different access scheme 1x16, 2x16 and 32 bit
+- Add support for ch32 usbd e.g ch32v203
+- Add support for STM32G4 and STM32U5 microcontrollers.
+- Fix h5 (32-bit) errata 2.15.1: Buffer description table update completes after CTR interrupt triggers
+- ISO EP buffer allocation improvements, implement ``dcd_edpt_close_all()``
+
+- Fix ch32v203 race condition and stability issue with
+
+ - fix ch32v203 seems to unconditionally accept ZLP on EP0 OUT.
+ - fix v203 race condition between rx bufsize and RX_STAT which cause PMAOVR, occurs with WRITE10
+ - correctly handle setup prepare at ``dcd_edpt0_status_complete()``, which fixes the race condition with windows where we could miss setup packet (setup bit set, but count = 0)
+
+MAX3421E
+^^^^^^^^
+
+- Add support for rp2040, esp32 (c3, c6, h2, etc..)
+- Add ``hcd_deinit()`` for max3421
+- Retry NAK handling next frame to reduce CPU and SPI bus usage
+- add ``cpuctl`` and ``pinctl`` to ``tuh_configure()`` option for max3421
+- Implement hcd abort transfer for Max3421
+- Properly Handle NAK Response in MAX3421E driver: correctly switch and skip writing to 2 FIFOs when NAK received. Otherwise, the driver may hang in certain conditions.
+
+- MSP430: support non-bus-powered
+
+MUSB
+^^^^
+
+- Add support for Analoog devices: max32650, max32666, max32690, max3278002
+
+nRF
+^^^
+
+- Fix ``dcd_edpt_open()`` for iso endpoint
+- Handle ISOOUT CRC errors
+- Add compile support with old nordic sdk
+- Fix a few race conditions
+
+OHCI
+^^^^
+
+- Allow more than 16 devices
+
+RP2040
+^^^^^^
+
+- Correctly abort control transfer when new setup arrived. Due to RP2040-E2 only able to fix B2 or later
+- Implement hcd abort transfer for rp2040
+- Add support for rp2350
+
+RUSB2
+^^^^^
+
+- Support ra2a1 pipe number scheme
+
+WCH CH32
+^^^^^^^^
+
+- Added support for USB OTG/FS and FSDev Driver. Update CH32V307 to allow manual select FS or HS driver.
+- Fixed various bugs in CH32v307 usbhs driver: endpoint handling and data transfer management.
+
+Device Stack
+------------
+
+- Add ``tud_deinit()`` and ``class driver deinit()`` to deinitialize TinyUSB device stack.
+- Add support for generic SOF callback.
+- Add set address recovery time 2ms per USB spec.
+
+Audio
+^^^^^
+
+- Add audio_test_freertos & audio_4_channel_mic_freertos
+- Improved support for Audio Class 2.0 (UAC2) with various bug fixes.
+- Add feedback by fifo counting.
+
+Bluetooth HCI
+^^^^^^^^^^^^^
+
+- Issue ZLP on ACL IN ep when transfer is multiple of endpoint max packet size
+
+CDC
+^^^
+
+- Add ``tud_cdc_configure_fifo()`` to make RX/TX buffer persistent (not clear when disconnected)
+- Add missing capability bit for CDC ACM serial break support
+- Enhanced CDC class with better handling of large data transmissions.
+- Add missing capability bit for CDC ACM serial break support
+
+HID
+^^^
+
+- Added missing key codes for keypad
+- Added HID Lighting and Illumination functionality
+- Fixed issues in the HID class for more reliable device enumeration.
+- Support HID Mouse with absolute positioning
+- Use separate buffer for control SET_REPORT, fix conflict with interrupt endpoint out
+
+- MSC: Added support for SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL
+
+Net
+^^^
+
+- Rewrite of NCM device driver to improve throughput
+- removed obsolete ``tud_network_link_state_cb()``
+
+- USBTMC Added notification support
+
+Vendor
+^^^^^^
+
+- Migrate to new endpoint stream API, support non-buffered TX/RX
+- Add ZLP for ``write()`` when needed
+
+Video
+^^^^^
+
+- Enhance UVC descriptors and example
+- Video Added support for USB Video Class (UVC) with MJPEG.
+- Fix multiple interfaces, add an example of 2ch video capture.
+- Fix race for ``tud_video_n_streaming()`` check
+
+Host Stack
+----------
+
+- Added ``tuh_deinit()`` to de-initialize TinyUSB host stack.
+- Added support for new USB mass storage class APIs.
+- Improved error handling and retry mechanisms for unstable devices.
+
+CDC Serial
+^^^^^^^^^^
+
+- Add support for ch34x
+- Allow to overwrite ``CFG_TUH_CDC_FTDI/CP210X/CH32X_VID_PID_LIST``
+- Enhanced stability of CDC-ACM devices during enumeration.
+
+HID
+^^^
+
+- Add ``tuh_hid_receive_abort()``
+- Add ``tuh_hid_get_report()``
+
+Hub
+^^^
+
+- Prevent status request to invalid ep_num
+- Fix double status xfer
+- unroll hub removal
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @acscd, @andrewleech, @angmolin, @antoniovazquezblanco, @arntsonl, @b4yuan, @battlesnake, @BrentK-ADI, @camilaodsouza, @cdesjardins, @ChrisDeadman, @clhenry, @cumhuronat, @donatieng, @dp111, @dragonlock2, @duckylotl, @eightycc, @emb4fun, @Erlkoenig90, @feaser, @gschorcht, @hathach, @HiFiPhile, @hinxx, @hjalleboii, @ikskuh, @IngHK, @jerpa77, @jotonedev, @kaidegit, @kasjer, @kaspernyhus, @kilograham, @kkitayam, @Krasutski, @LarssonOliver, @leptun, @liamfraser, @lijunru-hub, @lurch, @Lurcy38, @maflcko, @mamiral, @MatiMcFly, @Okarss, @pigrew, @ra1nb0w, @Rbb666, @rgrr, @Rocky04, @rsolorzanomsft, @Ryzee119, @shuffle2, @slark-yuxj, @tannewt, @thierer, @tinic, @tlyu, @tobozo, @tommie, @trejan, @tyustli, @wjklimek1, @XelaRellum, @Xelus22, @xudongzheng, @YixingShen, @zx96.
diff --git a/docs/info/changelog/0.18.0.rst b/docs/info/changelog/0.18.0.rst
new file mode 100644
index 000000000..cb10265b1
--- /dev/null
+++ b/docs/info/changelog/0.18.0.rst
@@ -0,0 +1,62 @@
+0.18.0
+======
+
+General
+-------
+
+New MCUs
+^^^^^^^^
+
+- Add esp32p4 OTG highspeed support
+- Add stm32 u0, c0, h7rs
+
+- Better support dcache, make sure all usb-transferred buffer are cache line aligned and occupy full cache line
+- Build ARM IAR with CircleCI
+- Improve HIL with `dual/host_info_to_device_cdc`` optional for pico/pico2, enable dwc2 dma test
+
+API Changes
+-----------
+
+- Change signature of ``tusb_init(rhport, tusb_rhport_init_t*)``, ``tusb_init(void)`` is now deprecated but still available for backward compatibility
+- Add new ``tusb_int_handler(rhport, in_isr)``
+- Add time-related APIs: ``tusb_time_millis_api()`` and ``tusb_time_delay_ms_api()`` for non-RTOS, required for some ports/configuration
+
+New configuration macros
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+- ``CFG_TUD/TUH_MEM_DCACHE_ENABLE`` enable data cache sync for endpoint buffer
+- ``CFG_TUD/TUH_MEM_DCACHE_LINE_SIZE`` set cache line size
+- ``CFG_TUD/TUH_DWC2_SLAVE_ENABLE`` enable dwc2 slave mode
+- ``CFG_TUD/TUH_DWC2_DMA_ENABLE`` enable dwc2 dma mode
+
+Controller Driver (DCD & HCD)
+-----------------------------
+
+DWC2
+^^^^
+
+- Add DMA support for both device and host controller
+- Add host driver support including: full/high speed, control/bulk/interrupt (CBI) transfer, split CBI i.e FS/LS attached via highspeed hub, hub support
+
+- RP2: implement ``dcd_edpt_iso_alloc()`` and ``dcd_edpt_iso_activate()`` for isochronous endpoint
+- iMXRT1170 support M4 core
+
+Device Stack
+------------
+
+- Vendor Fix class reset
+- NCM fix recursions in ``tud_network_recv_renew()``
+- Audio fix align issue of ``_audiod_fct.alt_setting``
+- UVC support format frame based
+- Change ``dcd_dcache_()`` return type from void to bool
+- HID add Usage Table for Physical Input Device Page (0x0F)
+
+Host Stack
+----------
+
+- Fix an duplicated attach issue which cause USBH Defer Attach until current enumeration complete message
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @bollenn, @chintal, @DavidEGrayson, @GuavTek, @hathach, @HiFiPhile, @lijunru-hub, @Maerdl, @pschatzmann, @rgrr, @roma-jam, @shdeb, @shuffle2, @subsonicpulse, @tannewt, @UweBonnes, @YixingShen.
diff --git a/docs/info/changelog/0.19.0.rst b/docs/info/changelog/0.19.0.rst
new file mode 100644
index 000000000..dbda59e61
--- /dev/null
+++ b/docs/info/changelog/0.19.0.rst
@@ -0,0 +1,247 @@
+0.19.0
+======
+
+General
+-------
+
+New MCUs and Boards
+^^^^^^^^^^^^^^^^^^^
+
+- Add ESP32-H4, ESP32-C5, ESP32-C61 support
+- Add STM32U0, STM32WBA, STM32N6
+- Add AT32F405, AT32F403A, AT32F415, AT32F423 support
+- Add CH32V305 support and CH32V20x USB host support
+- Add MCXA156 SDK 2.16 support and FRDM-MCXA156 board
+
+API Changes
+-----------
+
+Core APIs
+^^^^^^^^^
+
+- Add weak callbacks with new syntax for better compiler compatibility
+- Add ``tusb_deinit()`` to cleanup stack
+- Add time functions: ``tusb_time_millis_api()`` and ``tusb_time_delay_ms_api()``
+- Add ``osal_critical`` APIs for critical section handling
+- Introduce ``xfer_isr()`` callback for ISO transfer optimization in device classes
+
+Device APIs
+^^^^^^^^^^^
+
+- CDC: Add notification support ``tud_cdc_configure()``, ``tud_cdc_n_notify_uart_state()``,
+ ``tud_cdc_n_notify_conn_speed_change()``, ``tud_cdc_notify_complete_cb()``
+- MSC: Add ``tud_msc_inquiry2_cb()`` with bufsize parameter, update ``tud_msc_async_io_done()``
+ with ``in_isr`` parameter
+- Audio: Add ``tud_audio_n_mounted()`` and various FIFO access functions
+- MTP: Add ``tud_mtp_mounted()``, ``tud_mtp_data_send()``, ``tud_mtp_data_receive()``,
+ ``tud_mtp_response_send()``, ``tud_mtp_event_send()``
+
+Host APIs
+^^^^^^^^^
+
+- Core: Add ``tuh_edpt_close()``, ``tuh_address_set()``, ``tuh_descriptor_get_device_local()``,
+ ``tuh_descriptor_get_string_langid()``, ``tuh_connected()``, ``tuh_bus_info_get()``
+- Add enumeration callbacks: ``tuh_enum_descriptor_device_cb()``,
+ ``tuh_enum_descriptor_configuration_cb()``
+- CDC: Add ``tuh_cdc_get_control_line_state_local()``, ``tuh_cdc_get/set_dtr/rts()``,
+ ``tuh_cdc_connect/disconnect()`` and sync versions of all control APIs
+- MIDI: Add ``tuh_midi_itf_get_info()``, ``tuh_midi_packet_read_n()``,
+ ``tuh_midi_packet_write_n()``, ``tuh_midi_read_available()``, ``tuh_midi_write_flush()``,
+ ``tuh_midi_descriptor_cb()``
+
+Controller Driver (DCD & HCD)
+-----------------------------
+
+DWC2
+^^^^
+
+- Support DWC2 v4.30a with improved reset procedure
+- Fix core reset: wait for AHB idle before reset
+- Add STM32 DWC2 data cache support with proper alignment
+- Host improvements:
+ - Fix disconnect detection and SOF flag handling
+ - Fix HFIR timing off-by-one error
+ - Retry IN token immediately for bInterval=1
+ - Proper attach debouncing (200ms)
+ - Fix all retry intervals
+ - Resume OUT transfer when PING ACKed
+- Fix enumeration racing conditions
+- Refactor bitfields for better code generation
+
+FSDEV (STM32)
+^^^^^^^^^^^^^
+
+- Fix AT32 compile issues after single-buffered endpoint changes
+- Add configurable single-buffered isochronous endpoints
+- Fix STM32H7 recurrent suspend ISR
+- Fix STM32L4 GPIOD clock enable for variants without GPIOD
+- Fix STM32 PHYC PLL stability wait
+- Improve PMA size handling for STM32U0
+
+EHCI
+^^^^
+
+- Fix removed QHD getting reused
+- Fix NXP USBPHY disconnection detection
+
+Chipidea/NXP
+^^^^^^^^^^^^
+
+- Fix race condition with spinlock
+- Improve iMXRT support: fix build, disable BOARD_ConfigMPU, fix attach debouncing on port1 highspeed
+- Fix iMXRT1064 and add to HIL test pool
+
+MAX3421E
+^^^^^^^^
+
+- Use spinlock for thread safety instead of atomic flag
+- Implement ``hcd_edpt_close()``
+
+RP2040
+^^^^^^
+
+- Fix audio ISO transfer: reset state before notifying stack
+- Fix CMake RTOS cache variable
+- Abort transfer if active in ``iso_activate()``
+
+SAMD
+^^^^
+
+- Add host controller driver support
+
+Device Stack
+------------
+
+USBD Core
+^^^^^^^^^
+
+- Introduce ``xfer_isr()`` callback for interrupt-time transfer handling
+- Add ``usbd_edpt_xfer_fifo()`` stub
+- Revert endpoint busy/claim status if ``xfer_isr()`` defers to ``xfer_cb()``
+
+Audio
+^^^^^
+
+- Major simplification of UAC driver and alt settings management
+- Move ISO transfers into ``xfer_isr()`` for better performance
+- Remove FIFO mutex (single producer/consumer optimization)
+- Add implicit feedback support for data IN endpoints
+- Fix alignment issues
+- Update buffer macros with cache line size alignment
+
+CDC
+^^^
+
+- Add notification support: ``CFG_TUD_CDC_NOTIFY``, ``tud_cdc_n_notify_conn_speed_change()``, ``tud_cdc_notify_complete_cb()``
+- Reduce default bInterval from 16ms to 1ms for better responsiveness
+- Rename ``tud_cdc_configure_fifo()`` to ``tud_cdc_configure()`` and add ``tx_overwritable_if_not_connected`` option
+- Fix web serial robustness with major overhaul and logic cleanup
+
+HID
+^^^
+
+- Add Usage Page and Table for Power Devices (0x84 - 0x85)
+- Fix HID descriptor parser variable size and 4-byte item handling
+- Add consumer page configurations
+
+MIDI
+^^^^
+
+- Fix MIDI interface descriptor handling after audio streaming interface
+- Skip RX data with all zeroes
+
+MSC
+^^^
+
+- Add async I/O support for MSC using ``tud_msc_async_io_done()``
+- Add ``tud_msc_inquiry2_cb()`` with bufsize for full inquiry response
+
+MTP
+^^^
+
+- Add new Media Transfer Protocol (MTP) device class driver
+- Support MTP operations: GetDeviceInfo, SendObjectInfo, SendObject
+- Add MTP event support with ``tud_mtp_event_send()``
+- Implement filesystem example with callbacks
+- Add hardware-in-the-loop testing support
+
+NCM
+^^^
+
+- Add USB NCM link state control support
+- Fix DHCP offer/ACK destination
+
+USBTMC
+^^^^^^
+
+- Add vendor-specific message support
+
+Vendor
+^^^^^^
+
+- Fix vendor device reset and open issues
+- Fix descriptor parsing for ``CFG_TUD_VENDOR > 1``
+- Fix vendor FIFO argument calculation
+
+Host Stack
+----------
+
+USBH Core
+^^^^^^^^^
+
+- Major enumeration improvements:
+ - Fix enumeration racing conditions
+ - Add proper attach debouncing with hub/rootport handling (200ms delay)
+ - Reduce ``ENUM_DEBOUNCING_DELAY_MS`` to 200ms
+ - Always get language ID, manufacturer, product, and serial strings during enumeration
+ - Always get first 2 bytes of string descriptor to determine length (prevents buffer overflow)
+ - Support devices with multiple configurations
+- Add ``tuh_enum_descriptor_device_cb()`` and ``tuh_enum_descriptor_configuration_cb()`` callbacks
+- Add ``tuh_descriptor_get_string_langid()`` API
+- Hub improvements:
+ - Check status before getting first device descriptor
+ - Properly handle port status and change detection
+ - Queue status endpoint for detach/remove events
+ - Fix hub status change endpoint handling
+- Fix endpoint management:
+ - ``hcd_edpt_open()`` returns false if endpoint already opened
+ - Add ``hcd_edpt_close()`` implementation
+ - Abort pending transfers on close
+- Add roothub debouncing flag to ignore attach/remove during debouncing
+- Move address setting and bus info management to separate structures
+- Force removed devices in same bus info before setting address
+
+CDC Serial Host
+^^^^^^^^^^^^^^^
+
+- Major refactor to generalize CDC serial drivers (FTDI, CP210x, CH34x, PL2303, ACM)
+- Add explicit ``sync()`` API with ``TU_API_SYNC()`` returning ``tusb_xfer_result_t``
+- Rename ``tuh_cdc_get_local_line_coding()`` to ``tuh_cdc_get_line_coding_local()``
+- Add ``tuh_cdc_get_control_line_state_local()``
+- Implement ``tuh_cdc_get/set_dtr/rts()`` as inline functions
+
+MIDI Host
+^^^^^^^^^
+
+- Major API changes:
+ - Rename ``tuh_midi_stream_flush()`` to ``tuh_midi_write_flush()``
+ - Add ``tuh_midi_packet_read_n()`` and ``tuh_midi_packet_write_n()``
+ - Add ``CFG_TUH_MIDI_STREAM_API`` to opt out of stream API
+ - Change API to use index instead of device address (supports multiple MIDI per device)
+- Rename ``tuh_midi_get_num_rx/tx_cables()`` to ``tuh_midi_get_rx/tx_cable_count()``
+- Add ``tuh_midi_descriptor_cb()`` and ``tuh_midi_itf_get_info()``
+
+MSC Host
+^^^^^^^^
+
+- Continue async I/O improvements
+
+HID Host
+^^^^^^^^
+
+- Fix version string to actually show version
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @andrewleech, @armusin, @atoktoto, @byteit101, @ceedriic, @ChrisDeadman, @Cynventria, @dauc, @Dazza0, @deshipu, @Dolphindalt, @ehughes, @elipsitz, @fenugrec, @hathach, @HiFiPhile, @ho-ho-ho, @igi540, @IngHK, @Isoheptane, @james-advatek, @JannisKonradBecker, @jay94ks, @joelpmichael, @karlp, @kasjer, @ludoux, @majbthrd, @martijnvdwoude, @maximevince, @Milek7, @ning3270455369, @ohmdelta, @peppapighs, @pschatzmann, @PwnVerse, @raldone01, @ReimuNotMoe, @rhgndf, @roundby, @rppicomidi, @s09289728096, @salkinium, @tannewt, @terjr, @tore-espressif, @verylowfreq, @YixingShen, @ZakDanger.
diff --git a/docs/info/changelog/0.20.0.rst b/docs/info/changelog/0.20.0.rst
new file mode 100644
index 000000000..503d1c14e
--- /dev/null
+++ b/docs/info/changelog/0.20.0.rst
@@ -0,0 +1,107 @@
+0.20.0
+======
+
+*November 19, 2025*
+
+General
+-------
+
+New MCUs and Boards
+^^^^^^^^^^^^^^^^^^^
+
+- Add STM32U3 device support (adjusted from STM32U0)
+- Add nRF54H20 support with initial board configuration
+- Rename board names: pca10056→nrf52840dk, pca10059→nrf52840dongle, pca10095→nrf5340dk
+- Improve CMake: Move startup and linker files from board target to executable. Enhance target warning flags and fix various build warnings
+
+Code Quality and Static Analysis
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Add PVS-Studio static analysis to CI
+- Add SonarQube scan support
+- Add IAR C-Stat analysis capability
+- Add ``.clang-format`` for consistent code formatting
+- Fix numerous alerts and warnings found by static analysis tools
+
+Documentation
+^^^^^^^^^^^^^
+
+- Improve Getting Started documentation structure and flow
+- Add naming conventions and buffer handling documentation
+
+Controller Driver (DCD & HCD)
+-----------------------------
+
+DWC2
+^^^^
+
+- Fix incorrect handling of Zero-Length Packets (ZLP) in the DWC2 driver when receiving data (OUT transfers)
+- Improve EP0 multi-packet logic
+- Support EP0 with max packet size = 8
+- For IN endpoint, write initial packet directly to FIFO and only use TXFE interrupt for subsequent packets
+- Fix ISO with bInterval > 2 using incomplete IN interrupt handling.
+- Fix compile issues when enabling both host and device
+- Clear pending suspend interrupt after USB reset (enum end)
+- Improve host closing endpoint and channel handling when device is unplugged
+
+FSDEV (STM32)
+^^^^^^^^^^^^^
+
+- Fix AT32 USB interrupt remapping in ``dcd_int_enable()``
+
+OHCI
+^^^^
+
+- Add initial LPC55 OHCI support
+- Improve data cache support
+
+Device Stack
+------------
+
+USBD Core
+^^^^^^^^^
+
+- Support configurable EP0 buffer size CFG_TUD_ENDPOINT0_BUFSIZE
+- Make dcd_edpt_iso_alloc/activate as default API for ISO endpoint
+
+Audio
+^^^^^
+
+- Add UAC1 support
+- Implement RX FIFO threshold adjustment with `tud_audio_get/set_ep_in_fifo_threshold()`
+
+CDC
+^^^
+
+- Migrate to endpoint stream API
+
+HID
+^^^
+
+- Fix HID stylus descriptor
+
+MIDI
+^^^^
+
+- Migrate to endpoint stream API
+- Add ``tud_midi_n_packet_write_n()`` and ``tud_midi_n_packet_read_n()``
+
+MTP
+^^^
+
+- Fix incorrect MTP xact_len calculation
+
+Video
+^^^^^
+
+- Add bufferless operation callback for dynamic frame generation with tud_video_prepare_payload_cb()
+
+Host Stack
+----------
+
+No changes
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @adam-embedded, @ArcaneNibble, @c1570, @embedded-ideas, @gabChouin, @hathach, @HiFiPhile, @karlp, @ldube, @peppapighs, @poornadharshan13-rgb, @RigoLigoRLC, @tangpipi, @ToonVanEyck, @tswan22.
diff --git a/docs/info/changelog/0.21.0.rst b/docs/info/changelog/0.21.0.rst
new file mode 100644
index 000000000..bae39770e
--- /dev/null
+++ b/docs/info/changelog/0.21.0.rst
@@ -0,0 +1,213 @@
+0.21.0
+======
+
+*June 29, 2026*
+
+General
+-------
+
+New MCUs and Boards
+^^^^^^^^^^^^^^^^^^^
+
+- Add HPMicro HPM6xxx support with HPM6750EVK2 board
+- Add NXP RW61x (RW612, ChipIdea high-speed) support
+- Add Artery AT32F45x series support
+- Add STM32C5 series support
+- Add Espressif ESP32-S31 (high-speed) support
+- Add WCH CH582/CH583 (USBFS) support
+- Add CH32V103 USB device support (combined-control USBFS) with CH32V103C8T6 Bluepill board
+- Add FreeRTOS support for RP2040/RP2350
+- New boards: nRF54LM20-DK, WeAct STM32H743, EK-TM4C1294XL, STM32H747-DISCO, NUCLEO-H533RE
+- Migrate i.MX RT to the new ``mcux-devices-rt`` SDK package
+
+Code Quality and Build
+^^^^^^^^^^^^^^^^^^^^^^
+
+- Major refactor of dedicated hardware-FIFO (HWFIFO) handling: omit per-endpoint RAM buffers on ports with a dedicated hardware FIFO, add stride-aware FIFO access, and store raw bytes in ``tusb_fifo``
+- Reduce code size via control/descriptor and stream refactors, and remove ``snprintf`` usage
+- Remove IAR toolchain support from the Make build; add IAR warning flags and resolve warnings in CMake
+- Fix Zephyr build with nrfx v4, C++/``-Werror=extra`` builds, and various ``-Wconversion`` warnings
+- Update FatFS to R0.16
+- Fix the fuzzing harness
+- Various BSP fixes (STM32H5 UID read with ICACHE, STM32F411 Black Pill HSE, RT1011 data cache, Teensy)
+
+Documentation
+^^^^^^^^^^^^^
+
+- Add a README for every example and ``build-doc`` tooling
+- Add Sponsors section and ``FUNDING`` configuration
+- Various README/doc fixes (FTDI host, STM32C071 Nucleo URL, Supported CPUs table)
+
+API Changes
+-----------
+
+- Add ``is_isr`` parameter to ``dcd_edpt_xfer``, ``dcd_edpt_xfer_fifo``, ``usbd_edpt_xfer`` and ``usbd_edpt_xfer_fifo``
+- Remove the no-FIFO mode from the endpoint stream API
+- Add ``tud_vendor_write_clear()`` to forcefully clear the TX buffer
+- Add ``tud_midi_n_demux_stream_read()`` cable-aware MIDI stream read
+- Add ``CFG_TUH_HID_SET_PROTOCOL_ON_ENUM`` host HID option
+- Add ``CFG_TUSB_DEBUG_BREAKPOINT`` hook for ``TU_BREAKPOINT``
+- Add ThreadX OSAL support
+- ``tud_task_ext()`` / ``tuh_task_ext()`` now limit the number of events processed per call
+- Replace ``CFG_TUD_NET_ENDPOINT_SIZE`` with the descriptor-based endpoint size
+
+Device Stack
+------------
+
+USBD Core
+^^^^^^^^^
+
+- Refactor and validate device descriptor handling; move control transfer handling into ``usbd.c``
+- Use the EP0 buffer directly when large enough; clamp EP0 OUT data copy to the control buffer
+- Fix stream write logic/racing without FIFO; fix zero ``wLength`` control request
+- Fix ISO OUT endpoint failure on alt-setting MPS change
+
+Audio
+^^^^^
+
+- Fix ``audiod_open`` with MIDI interfaces
+- Fix big-endian bitfield guards for audio structs and endian-safe ``wValue``/``wIndex`` extraction in UAC2 examples
+
+CDC
+^^^
+
+- Remove ``tud_cdc_configure``
+- Fix CDC echo test issue on i.MX RT and fast MCUs
+
+HID
+^^^
+
+- Bound item size to remaining length in the report-descriptor parser
+- Remove host enumeration assumption; add ``CFG_TUH_HID_SET_PROTOCOL_ON_ENUM``
+
+MIDI
+^^^^
+
+- Add USB-MIDI 2.0 device and host class drivers
+- Add cable-aware stream read ``tud_midi_n_demux_stream_read()``
+- Fix MIDI host issue
+
+MSC
+^^^
+
+- Skip the command stage if the OUT endpoint is stalled
+- Cap ``tud_msc_scsi_cb`` buffer size to the endpoint buffer size
+
+MTP
+^^^
+
+- Fix transfer completion detection for exact-length packets; queue ZLP when needed
+- Fix premature phase change after a short OUT transfer; fixes in ``add_string``
+
+Network (NCM)
+^^^^^^^^^^^^^
+
+- Fix NCM state on restart
+- Support ``SetEthernetPacketFilter`` and ``SetNtbInputSize`` requests
+- Add a weak callback for the initial link state
+
+Video (UVC)
+^^^^^^^^^^^
+
+- Fix VC interface parsing when ``bNumEndpoints`` != 0
+- Assert the ``usbd_edpt_iso_activate()`` result
+
+DFU
+^^^
+
+- Fix the DFU functional descriptor version (1.0.1 → 1.1.0)
+
+Printer
+^^^^^^^
+
+- Add the USB Printer device class driver
+
+Vendor
+^^^^^^
+
+- Omit the endpoint buffer for ports with a dedicated hardware FIFO
+
+Host Stack
+----------
+
+- Fully asynchronous host code: remove blocking delays from ``tuh_task_ext()``, respect its ``timeout_ms``, and avoid stalling one device while another enumerates
+- Add an async control-transfer FIFO so queued control transfers are dispatched instead of dropped
+- Hub enumeration reliability improvements; add MTT hub support
+- Support full-speed host with a high-speed PHY (DWC2)
+- Fix FTDI host multi-channel loop
+- CDC host: use a local control buffer; fix ``cdch_open`` typo
+- Big-endian host support for SETUP packet handling
+- Use ``TUSB_ROLE_HOST`` in host stack initialization
+
+Controller Driver (DCD & HCD)
+-----------------------------
+
+DWC2
+^^^^
+
+- Add ``dcd_configure`` for FIFO config and DWC2 deinit support
+- Support full-speed host operation on a high-speed PHY
+- Vbus sensing enhancement; do not modify FS PHY registers on HS PHY (ESP32-P4)
+- Fix HCD TX FIFO full check, ISO IN endpoint disabled after incomplete transfer, and EP0 status completion before SETUP
+- Submit SETUP on SETUP_DONE and handle v3.10a spurious RX_COMPLETE (STM32L476)
+- HCD: correct HFIR for low-speed devices via internal FS PHY; fix split-IN NAK storm and UART starvation (STM32F723)
+
+FSDEV (STM32 / CH32)
+^^^^^^^^^^^^^^^^^^^^
+
+- Add FSDEV host (HCD) driver
+- Refactor FSDEV; share the PMA errata delay helper between DCD/HCD with overridable timing
+- Fix single-buffered isochronous endpoint cases, STM32U0 data stride, and PMA pointer advance on ring-buffer wrap
+- Fix CH32V20x enumeration by enabling the D+ pull-up; work around CH32 EP0 premature OUT ACK
+- Do not enable the unused USB wakeup EXTI IRQ (F1/F3/G4/L1)
+
+MUSB
+^^^^
+
+- Enhance driver: double packet, EP0 refactor, fix DATAEND race with EP0
+- Fix ZLP IN transfer, RXRDY clearing, and defer EP0 SETUP during the DATA_IN/STATUS race
+
+RP2040 / RP2350
+^^^^^^^^^^^^^^^
+
+- Refactor RP2 driver
+- HCD rework: EPX for non-interrupt endpoints and ping-pong double buffering
+- Fix RP2350 hard fault in unaligned memcpy to USB DPRAM
+- Host: fix OUT-data control transfers sending DATA0 instead of DATA1
+
+CH32 USBFS / USBHS (WCH)
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Fix dropped bulk OUT packets by re-arming the EP_RX_CTRL state (usbfs)
+- Fix endpoint stall length index and clear-stall response (usbhs)
+- Fix CH32V103 hard fault
+
+RUSB2 / SAMx7x
+^^^^^^^^^^^^^^
+
+- Fix RUSB2 FIFO write
+- Refresh ``dcd_samx7x``
+
+New host controllers
+^^^^^^^^^^^^^^^^^^^^
+
+- Add NXP IP3516 HCD (EHCI-like)
+- Add MTT (multi-TT) hub support
+
+nRF5x
+^^^^^
+
+- Request HFCLK in ``USB_EVT_READY`` to fix the post-SoftDevice deadlock
+
+Testing
+-------
+
+- Expand Hardware-in-the-Loop (HIL) coverage (MTP, audio, throughput; nanoch32v203, ch32v103, stm32u083nucleo, tm4c123x) and post pass/fail/skip HIL reports as PR comments
+- Add MemBrowse code-size CI integration and size-difference reporting
+- Add automated Claude Code PR review and bug-fix CI workflows
+- Add ``hil``, ``code-size``, ``pvs``, ``usbmon`` and ``build-doc`` developer skills
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @Alex-Schaefer, @alt-0191, @andrewleech, @armusin, @bdolgov, @BrentK-ADI, @ceedriic, @chenzhihong007, @dangfan, @DavidKorczynski, @dinsfire64, @dxbjavid, @embedded-ideas, @felhub, @gab-k, @gabChouin, @HakanL, @hathach, @HiFiPhile, @igi540, @IntegraSources, @kira-live, @LeZerb, @michael-membrowse, @michaelajax, @mickabrig7, @Milek7, @morse-cedricvandenbergh, @nminaylov, @non-bin, @Phozer, @remiberthoz, @renjieah, @rhgndf, @RobertDaleSmith, @roma-jam, @sauloverissimo, @sgrunza-at-BadgerMeter, @sidcha, @StefanOroel, @Tails86, @thamul, @tore-espressif, @UMRnInside, @ValentiWorkLearning, @verylowfreq, @wjklimek1, @YixingShen, @zhiqiang-ch, @zjzhang-cn.
diff --git a/docs/info/changelog/0.5.0.rst b/docs/info/changelog/0.5.0.rst
new file mode 100644
index 000000000..676ae2fd0
--- /dev/null
+++ b/docs/info/changelog/0.5.0.rst
@@ -0,0 +1,15 @@
+0.5.0
+=====
+
+*2019-06*
+
+First release, device stack works great, host stack works but still need improvement.
+
+- Special thanks to @adafruit team, especially @tannewt to help out immensely to rework device stack: simplify osal & control transfer, adding SAMD21/SAMD51 ports, writing porting docs, adding MIDI class support etc...
+- Thanks to @cr1901 for adding STM32F4 port.
+- Thanks to @PTS93 and @todbot for HID raw API
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @cr1901, @gpshead, @hathach, @mithro, @tannewt, @timonsku, @zardam.
diff --git a/docs/info/changelog/0.6.0.rst b/docs/info/changelog/0.6.0.rst
new file mode 100644
index 000000000..5ec65f302
--- /dev/null
+++ b/docs/info/changelog/0.6.0.rst
@@ -0,0 +1,70 @@
+0.6.0
+=====
+
+*2020-03-30*
+
+Added **CONTRIBUTORS.md** to give proper credit for contributors to the stack. Special thanks to `Nathan Conrad <https://github.com/pigrew>`__ , `Peter Lawrence <https://github.com/majbthrd>`__ , `William D. Jones <https://github.com/cr1901>`__ and `Sean Cross <https://github.com/xobs>`__ and others for spending their precious time to add lots of features and ports for this release.
+
+Added
+-----
+
+MCU
+^^^
+
+- Added support for Microchip SAMG55
+- Added support for Nordic nRF52833
+- Added support for Nuvoton: NUC120, NUC121/NUC125, NUC126, NUC505
+- Added support for NXP LPC: 51Uxx, 54xxx, 55xx
+- Added support for NXP iMXRT: RT1011, RT1015, RT1021, RT1052, RT1062, RT1064
+- Added support for Sony CXD56 (Spresense)
+- Added support for STM32: L0, F0, F1, F2, F3, F4, F7, H7
+- Added support for TI MSP430
+- Added support for ValentyUSB's eptri
+
+Class Driver
+^^^^^^^^^^^^
+
+- Added DFU Runtime class driver
+- Added Network class driver with RNDIS, CDC-ECM, CDC-EEM (work in progress)
+- Added USBTMC class driver
+- Added WebUSB class driver using vendor-specific class
+- Added multiple instances support for CDC and MIDI
+- Added a handful of unit test with Ceedling.
+- Added LOG support for debugging with CFG_TUSB_DEBUG
+- Added ``tud_descriptor_bos_cb()`` for BOS descriptor (required for USB 2.1)
+- Added ``dcd_edpt0_status_complete()`` as optional API for DCD
+
+Examples
+^^^^^^^^
+
+Following examples are added:
+
+- ``board_test``
+- ``cdc_dual_ports``
+- ``dfu_rt``
+- ``hid_composite``
+- ``net_lwip_webserver``
+- ``usbtmc``
+- ``webusb_serial``
+
+Changed
+-------
+
+- Changed ``tud_descriptor_string_cb()`` to have additional Language ID argument
+- Merged ``hal_nrf5x.c`` into ``dcd_nrf5x.c``
+- Merged ``dcd_samd21.c`` and ``dcd_samd51.c`` into ``dcd_samd.c``
+- Generalized ``dcd_stm32f4.c`` to ``dcd_synopsys.c``
+- Changed ``cdc_msc_hid`` to ``cdc_msc`` (drop hid) due to limited endpoints number of some MCUs
+- Improved DCD SAMD stability, fix missing setup packet occasionally
+- Improved ``usbd/usbd_control`` with proper handling of zero-length packet (ZLP)
+- Improved STM32 DCD FSDev
+- Improved STM32 DCD Synopsys
+- Migrated CI from Travis to Github Action
+- Updated nrfx submodule to 2.1.0
+- Fixed mynewt osal queue definition
+- Fixed ``cdc_msc_freertos`` example build for all MCUs
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @an-dr, @arturo182, @chang196700, @cr1901, @hathach, @jepler, @jeremyherbert, @kamtom480, @kasjer, @ladyada, @majbthrd, @mateusz-holenko, @noebrun, @nxf58843, @pigrew, @samveen, @smunaut, @tannewt, @xobs.
diff --git a/docs/info/changelog/0.7.0.rst b/docs/info/changelog/0.7.0.rst
new file mode 100644
index 000000000..36fde9be5
--- /dev/null
+++ b/docs/info/changelog/0.7.0.rst
@@ -0,0 +1,159 @@
+0.7.0
+=====
+
+*2020-11-08*
+
+Device Controller Driver
+------------------------
+
+- Added new support for Espressif ESP32-S2
+- Added new support for Dialog DA1469x
+- Enhance STM32 Synopsys
+
+Support bus events disconnection/suspend/resume/wakeup
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Improve transfer performance with optimizing xfer and fifo size
+- Support Highspeed port (OTG_HS) with both internal and external PHY
+- Support multiple usb ports with rhport=1 is highspeed on selected MCUs e.g H743, F23. It is possible to have OTG_HS to run on Fullspeed PHY (e.g lacking external PHY)
+- Add ISO transfer, fix odd/even frame
+- Fix FIFO flush during stall
+- Implement ``dcd_edpt_close()`` API
+- Support F105, F107
+
+Enhance STM32 fsdev
+^^^^^^^^^^^^^^^^^^^
+
+- Improve dcd fifo allocation
+- Fix ISTR race condition
+- Support remap USB IRQ on supported MCUs
+- Implement ``dcd_edpt_close()`` API
+
+- Enhance NUC 505: enhance set configure behavior
+
+Enhance SAMD
+^^^^^^^^^^^^
+
+- Fix race condition with setup packet
+- Add SAMD11 option ``OPT_MCU_SAMD11``
+- Add SAME5x option ``OPT_MCU_SAME5X``
+
+- Fix SAMG control data toggle and stall race condition
+
+Enhance nRF
+^^^^^^^^^^^
+
+- Fix hanged when ``tud_task()`` is called within critical section (disabled interrupt)
+- Fix disconnect bus event not submitted
+- Implement ISO transfer and ``dcd_edpt_close()``
+
+USB Device
+----------
+
+USBD
+^^^^
+
+- Add new class driver for **Bluetooth HCI** class driver with example can be found in [mynewt-tinyusb-example](https://github.com/hathach/mynewt-tinyusb-example) since it needs mynewt OS to run with.
+- Fix USBD endpoint usage racing condition with ``usbd_edpt_claim()``/``usbd_edpt_release()``
+- Added ``tud_task_event_ready()`` and ``osal_queue_empty()``. This API is needed to check before enter low power mode with WFI/WFE
+- Rename USB IRQ Handler to ``dcd_int_handler()``. Application must define IRQ handler in which it calls this API.
+- Add ``dcd_connect()`` and ``dcd_disconnect()`` to enable/disable internal pullup on D+/D- on supported MCUs.
+- Add ``usbd_edpt_open()``
+- Remove ``dcd_set_config()``
+- Add ``OPT_OS_CUMSTOM`` as hook for application to overwrite and/or add their own OS implementation
+- Support SET_INTERFACE, GET_INTERFACE request
+- Add Logging for debug with optional uart/rtt/swo printf retarget or ``CFG_TUSB_DEBUG_PRINTF`` hook
+- Add IAR compiler support
+- Support multiple configuration descriptors. ``TUD_CONFIG_DESCRIPTOR()`` template has extra config_num as 1st argument
+- Improve USB Highspeed support with actual link speed detection with ``dcd_event_bus_reset()``
+
+Enhance class driver management
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- ``usbd_driver_open()`` add max length argument, and return length of interface (0 for not supported). Return value is used for finding appropriate driver
+- Add application implemented class driver via ``usbd_app_driver_get_cb()``
+- IAD is handled to assign driver id
+
+- Added ``tud_descriptor_device_qualifier_cb()`` callback
+- Optimize ``tu_fifo`` bulk write/read transfer
+- Forward non-std control request to class driver
+- Let application handle Microsoft OS 1.0 Descriptors (the 0xEE index string)
+- Fix OSAL FreeRTOS yield from ISR
+
+USBNET
+^^^^^^
+
+- Remove ACM-EEM due to lack of support from host
+
+USBTMC
+^^^^^^
+
+- Fix descriptors when INT EP is disabled
+
+CDC
+^^^
+
+- Send zero length packet for end of data when needed
+- Add ``tud_cdc_tx_complete_cb()`` callback
+- Change ``tud_cdc_n_write_flush()`` return number of bytes forced to transfer, and flush when writing enough data to fifo
+
+MIDI
+^^^^
+
+- Add packet interface
+- Add multiple jack descriptors
+- Fix MIDI driver for sysex
+
+- DFU Runtime: fix response to SET_INTERFACE and DFU_GETSTATUS request
+
+- Rename some configure macro to make it clear that those are used directly for endpoint transfer
+
+ - ``CFG_TUD_HID_BUFSIZE`` to ``CFG_TUD_HID_EP_BUFSIZE``
+ - ``CFG_TUD_CDC_EPSIZE`` to ``CFG_TUD_CDC_EP_BUFSIZE``
+ - ``CFG_TUD_MSC_BUFSIZE`` to ``CFG_TUD_MSC_EP_BUFSIZE``
+ - ``CFG_TUD_MIDI_EPSIZE`` to ``CFG_TUD_MIDI_EP_BUFSIZE``
+
+HID
+^^^
+
+- Fix gamepad template descriptor
+- Add multiple HID interface API
+- Add extra comma to HID_REPORT_ID
+
+USB Host
+--------
+
+- Rework USB host stack (still work in progress)
+ - Fix compile error with pipehandle
+ - Rework usbh control and enumeration as non-blocking
+
+- Improve Hub, MSC, HID host driver
+
+Examples
+--------
+
+- Add new ``hid_composite_freertos``
+- Add new ``dynamic_configuration`` to demonstrate how to switch configuration descriptors
+- Add new ``hid_multiple_interface``
+
+Enhance ``net_lwip_webserver`` example
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Add multiple configuration: RNDIS for Windows, CDC-ECM for macOS (Linux will work with both)
+- Update lwip to STABLE-2_1_2_RELEASE for ``net_lwip_webserver``
+
+- Added new Audio example: ``audio_test`` ``uac2_headsest``
+
+New Boards
+----------
+
+- Espressif ESP32-S2: saola_1, kaluga_1
+- STM32: F746 Nucleo, H743 Eval, H743 Nucleo, F723 discovery, stlink v3 mini, STM32L4r5 Nucleo
+- Dialog DA1469x dk pro and dk usb
+- Microchip: Great Scoot Gadgets' LUNA, samd11_xplained, D5035-01, atsamd21 xplained pro
+- nRF: ItsyBitsy nRF52840
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @chang196700, @CraigHutchinson, @czeslawmakarski, @duempel, @gh2o, @hathach, @HiFiPhile, @j4cbo, @jepler, @jgressmann, @k0d, @kasjer, @kaysievers, @ktemkin, @majbthrd, @me-no-dev, @mzero, @PanRe, @pigrew, @salkinium, @UweBonnes, @xobs, @zlittell.
diff --git a/docs/info/changelog/0.8.0.rst b/docs/info/changelog/0.8.0.rst
new file mode 100644
index 000000000..aaca9dcc4
--- /dev/null
+++ b/docs/info/changelog/0.8.0.rst
@@ -0,0 +1,101 @@
+0.8.0
+=====
+
+*2021-02-05*
+
+Device Controller Driver
+------------------------
+
+- Added new device support for Raspberry Pi RP2040
+- Added new device support for NXP Kinetis KL25ZXX
+- Use ``dcd_event_bus_reset()`` with link speed to replace bus_signal
+
+ESP32-S2
+^^^^^^^^
+
+- Add bus suspend and wakeup support
+
+SAMD21
+^^^^^^
+
+- Fix (walkaround) samd21 setup_packet overflow by USB DMA
+
+STM32 Synopsys
+^^^^^^^^^^^^^^
+
+- Rework USB FIFO allocation scheme and allow RX FIFO size reduction
+
+Sony CXD56
+^^^^^^^^^^
+
+- Update Update Spresense SDK to 2.0.2
+- Fix dcd issues with setup packets
+- Correct EP number for cdc_msc example
+
+USB Device
+----------
+
+USBD
+^^^^
+
+- Rework usbd control transfer to have additional stage parameter for setup, data, status
+- Fix ``tusb_init()`` return true instead of ``TUSB_ERROR_NONE``
+- Added new API ``tud_connected()`` that return true after device got out of bus reset and received the very first setup packet
+
+CDC
+^^^
+
+- Allow to transmit data, even if the host does not support control line states i.e set DTR
+
+HID
+^^^
+
+- change default ``CFG_TUD_HID_EP_BUFSIZE`` from 16 to 64
+
+MIDI
+^^^^
+
+- Fix midi sysex sending bug
+
+MSC
+^^^
+
+- Invoke only scsi complete callback after status transaction is complete.
+- Fix ``scsi_mode_sense6_t`` padding, which cause IAR compiler internal error.
+
+USBTMC
+^^^^^^
+
+- Change interrupt endpoint example size to 8 instead of 2 for better compatibility with mcu
+
+Example
+^^^^^^^
+
+- Support make from windows ``cmd.exe``
+- Add HID Consumer Control (media keys) to ``hid_composite`` & ``hid_composite_freertos`` examples
+
+USB Host
+--------
+
+No noticeable changes to host stack
+
+New Boards
+----------
+
+- NXP/Freescale Freedom FRDM-KL25Z
+- Feather Double M33 express
+- Raspberry Pi Pico
+- Adafruit Feather RP2040
+- Adafruit Itsy Bitsy RP2040
+- Adafruit QT RP2040
+- Adfruit Feather ESP32-S2
+- Adafruit Magtag 29" Eink
+- Adafruit Metro ESP32-S2
+- Adafruit PyBadge
+- Adafruit PyPortal
+- Great Scott Gadgets' LUNA D11 & D21
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @aslampr07, @charkster, @dobairoland, @duempel, @gsteiert, @hathach, @HiFiPhile, @kamtom480, @kkitayam, @ktemkin, @majbthrd, @PanRe, @prplz.
diff --git a/docs/info/changelog/0.9.0.rst b/docs/info/changelog/0.9.0.rst
new file mode 100644
index 000000000..92254a7f6
--- /dev/null
+++ b/docs/info/changelog/0.9.0.rst
@@ -0,0 +1,126 @@
+0.9.0
+=====
+
+*2021-03-12*
+
+Device Controller Driver (DCD)
+------------------------------
+
+RP2040
+^^^^^^
+
+- Fix endpoint buffer reallocation overrun problem
+- Fix osal_pico queue overflow in initialization
+- Fix Isochronous endpoint buffer size in transfer
+- Optimize hardware endpoint struct to reduce RAM usage
+- Fix enum walkaround forever check for SE0 when pull up is disabled
+
+Sony CXD56
+^^^^^^^^^^
+
+- Pass the correct speed on Spresense
+- Fix setup processed flag
+
+NXP Transdimention
+^^^^^^^^^^^^^^^^^^
+
+- Update dcd_init() to reset controller to device mode
+
+USB Device Driver (USBD)
+------------------------
+
+- Fix issue with status zlp (``tud_control_status()``) is returned by class driver with SET/CLEAR_FEATURE for endpoint.
+- Correct endpoint size check for fullspeed bulk, can be 8, 16, 32, 64
+- Ack SET_INTERFACE even if it is not implemented by class driver.
+
+Device Class Driver
+-------------------
+
+DFU Runtime
+^^^^^^^^^^^
+
+- rename ``dfu_rt()`` to ``dfu_runtime()`` for easy reading
+
+CDC
+^^^
+
+- Add ``tud_cdc_send_break_cb()`` to support break request
+- Improve CDC receive, minor behavior changes: when ``tud_cdc_rx_wanted_cb()`` is invoked wanted_char may not be the last byte in the fifo
+
+HID
+^^^
+
+- [Breaking] Add itf argument to hid API to support multiple instances, follow API has signature changes
+
+ - ``tud_hid_descriptor_report_cb()``
+ - ``tud_hid_get_report_cb()``
+ - ``tud_hid_set_report_cb()``
+ - ``tud_hid_boot_mode_cb()``
+ - ``tud_hid_set_idle_cb()``
+
+- Add report complete callback ``tud_hid_report_complete_cb()`` API
+- Add DPad/Hat support for HID Gamepad
+
+ - ``TUD_HID_REPORT_DESC_GAMEPAD()`` now support 16 buttons, 2 joysticks, 1 hat/dpad
+ - Add ``hid_gamepad_report_t`` along with ``GAMEPAD_BUTTON_`` and ``GAMEPAD_HAT_`` enum
+ - Add Gamepad to ``hid_composite`` / ``hid_composite_freertos`` example
+
+MIDI
+^^^^
+
+- Fix dropping MIDI sysex message when fifo is full
+- Fix typo in ``tud_midi_write24()``, make example less ambiguous for cable and channel
+- Fix incorrect endpoint descriptor length, MIDI v1 use Audio v1 which has 9-byte endpoint descriptor (instead of 7)
+
+Host Controller Driver (HCD)
+----------------------------
+
+- Add rhport to ``hcd_init()``
+- Improve EHCI/OHCI driver abstraction
+
+ - Move echi/ohci files to portable/
+ - Rename ``hcd_lpc18_43`` to ``hcd_transdimension``
+ - Sub hcd API with ``hcd_ehci_init()``, ``hcd_ehci_register_addr()``
+
+- Update NXP transdimension ``hcd_init()`` to reset controller to host mode
+
+ - Ported hcd to rt10xx
+
+USB Host Driver (USBH)
+----------------------
+
+- No noticeable changes to usbh
+
+Host Class Driver
+-----------------
+
+MSC
+^^^
+
+- Rename ``tuh_msc_scsi_inquiry()`` to ``tuh_msc_inquiry()``
+- Rename ``tuh_msc_mounted_cb()``/``tuh_msc_unmounted_cb()`` to ``tuh_msc_mount_cb()``/``tuh_msc_unmount_cb()`` to match device stack naming
+- Change ``tuh_msc_is_busy()`` to ``tuh_msc_ready()``
+- Add read10 and write10 function: ``tuh_msc_read10()``, ``tuh_msc_write10()``
+- Read_Capacity is invoked as part of enumeration process
+- Add ``tuh_msc_get_block_count()``, ``tuh_msc_get_block_size()``
+- Add ``CFG_TUH_MSC_MAXLUN`` (default to 4) to hold lun capacities
+
+Others
+------
+
+- Add basic support for rt-thread OS
+- Change zero bitfield length to more explicit padding
+- Build example now fetch required submodules on the fly while running ``make`` without prior submodule init for mcu drivers
+- Update pico-sdk to v1.1.0
+
+New Boards
+^^^^^^^^^^
+
+- Microchip SAM E54 Xplained Pro
+- LPCXpresso 55s28
+- LPCXpresso 18s37
+
+Contributors
+------------
+
+Thanks to everyone who contributed to this release: @amitv87, @duddie, @hathach, @HiFiPhile, @homeodor, @ipopov, @jgressmann, @kamtom480, @liamfraser, @lurch, @majbthrd, @ndinsmore, @tfx2001, @xmos-jmccarthy.
diff --git a/docs/info/changelog/index.rst b/docs/info/changelog/index.rst
new file mode 100644
index 000000000..833008cd6
--- /dev/null
+++ b/docs/info/changelog/index.rst
@@ -0,0 +1,27 @@
+*********
+Changelog
+*********
+
+Release notes for each TinyUSB version, newest first.
+
+.. toctree::
+ :maxdepth: 1
+
+ 0.21.0
+ 0.20.0
+ 0.19.0
+ 0.18.0
+ 0.17.0
+ 0.16.0
+ 0.15.0
+ 0.14.0
+ 0.13.0
+ 0.12.0
+ 0.11.0
+ 0.10.1
+ 0.10.0
+ 0.9.0
+ 0.8.0
+ 0.7.0
+ 0.6.0
+ 0.5.0
diff --git a/docs/info/code_of_conduct.rst b/docs/info/code_of_conduct.rst
deleted file mode 100644
index 2d70708d4..000000000
--- a/docs/info/code_of_conduct.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../CODE_OF_CONDUCT.rst
diff --git a/docs/info/contributors.rst b/docs/info/contributors.rst
deleted file mode 100644
index 35e0b05f5..000000000
--- a/docs/info/contributors.rst
+++ /dev/null
@@ -1 +0,0 @@
-.. include:: ../../CONTRIBUTORS.rst \ No newline at end of file
diff --git a/docs/info/index.rst b/docs/info/index.rst
deleted file mode 100644
index b6d30b432..000000000
--- a/docs/info/index.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-****
-Info
-****
-
-Index
-=====
-
-.. toctree::
- :maxdepth: 2
-
- changelog
- contributors
- code_of_conduct
diff --git a/docs/reference/boards.rst b/docs/reference/boards.rst
index 8acad3c45..148175671 100644
--- a/docs/reference/boards.rst
+++ b/docs/reference/boards.rst
@@ -301,6 +301,7 @@ stm32h563nucleo STM32 H563 Nucleo stm32h5 https://www.s
stm32h573i_dk STM32 H573i Discovery stm32h5 https://www.st.com/en/evaluation-tools/stm32h573i-dk.html
daisyseed Daisy Seed stm32h7 https://electro-smith.com/products/daisy-seed
stm32h723nucleo STM32 H723 Nucleo stm32h7 https://www.st.com/en/evaluation-tools/nucleo-h723zg.html
+stm32h743_weact STM32 H743 WeAct board stm32h7 https://github.com/WeActStudio/MiniSTM32H7xx
stm32h743eval STM32 H743 Eval stm32h7 https://www.st.com/en/evaluation-tools/stm32h743i-eval.html
stm32h743nucleo STM32 H743 Nucleo stm32h7 https://www.st.com/en/evaluation-tools/nucleo-h743zi.html
stm32h745disco STM32 H745 Discovery stm32h7 https://www.st.com/en/evaluation-tools/stm32h745i-disco.html
@@ -319,6 +320,7 @@ stm32l4r5nucleo STM32 L4R5 Nucleo stm32l4 https://www.s
stm32n6570dk STM32 N6570-DK stm32n6 https://www.st.com/en/evaluation-tools/stm32n6570-dk.html
stm32n657nucleo STM32 N657X0-Q Nucleo stm32n6 https://www.st.com/en/evaluation-tools/nucleo-n657x0-q.html
stm32u083cdk STM32U083C-DK Discovery Kit stm32u0 https://www.st.com/en/evaluation-tools/stm32u083c-dk.html
+stm32u083nucleo NUCLEO-U083RC stm32u0 https://www.st.com/en/evaluation-tools/nucleo-u083rc.html
b_u585i_iot2a STM32 B-U585i IOT2A Discovery kit stm32u5 https://www.st.com/en/evaluation-tools/b-u585i-iot02a.html
stm32u545nucleo STM32 U545 Nucleo stm32u5 https://www.st.com/en/evaluation-tools/nucleo-u545re-q.html
stm32u575eval STM32 U575 Eval stm32u5 https://www.st.com/en/evaluation-tools/stm32u575i-ev.html
@@ -361,15 +363,17 @@ fomu fomu fomu https://tomu.im/fomu.html
WCH
---
-================ ================ ======== ===================================================================== ======
-Board Name Family URL Note
-================ ================ ======== ===================================================================== ======
-ch32f205r-r0 CH32F205r-r0 ch32f20x https://github.com/openwch/ch32f20x
-ch32v103r_r1_1v0 CH32V103R-R1-1v1 ch32v10x https://github.com/openwch/ch32v103/tree/main/SCHPCB/CH32V103R-R1-1v1
-ch32v203c_r0_1v0 CH32V203C-R0-1v0 ch32v20x https://github.com/openwch/ch32v20x/tree/main/SCHPCB/CH32V203C-R0
-ch32v203g_r0_1v0 CH32V203G-R0-1v0 ch32v20x https://github.com/openwch/ch32v20x/tree/main/SCHPCB/CH32V203C-R0
-nanoch32v203 nanoCH32V203 ch32v20x https://github.com/wuxx/nanoCH32V203
-ch32v307v_r1_1v0 CH32V307V-R1-1v0 ch32v30x https://github.com/openwch/ch32v307/tree/main/SCHPCB/CH32V307V-R1-1v0
-nanoch32v305 nanoCH32V305 ch32v30x https://github.com/wuxx/nanoCH32V305
-yd-ch582m yd-ch582m ch583 http://vcc-gnd.com
-================ ================ ======== ===================================================================== ======
+================== ============================= ======== ===================================================================== ======
+Board Name Family URL Note
+================== ============================= ======== ===================================================================== ======
+ch32f205r-r0 CH32F205r-r0 ch32f20x https://github.com/openwch/ch32f20x
+ch32v103c_bluepill CH32V103C8T6-Bluepill ch32v10x https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill
+ch32v103r_r1_1v0 CH32V103R-R1-1v1 ch32v10x https://github.com/openwch/ch32v103/tree/main/SCHPCB/CH32V103R-R1-1v1
+ch32v203c_r0_1v0 CH32V203C-R0-1v0 ch32v20x https://github.com/openwch/ch32v20x/tree/main/SCHPCB/CH32V203C-R0
+ch32v203g_r0_1v0 CH32V203G-R0-1v0 ch32v20x https://github.com/openwch/ch32v20x/tree/main/SCHPCB/CH32V203C-R0
+nanoch32v203 nanoCH32V203 ch32v20x https://github.com/wuxx/nanoCH32V203
+ch32v307v_r1_1v0 CH32V307V-R1-1v0 ch32v30x https://github.com/openwch/ch32v307/tree/main/SCHPCB/CH32V307V-R1-1v0
+nanoch32v305 nanoCH32V305 ch32v30x https://github.com/wuxx/nanoCH32V305
+ch582m_evt CH582M-EVT evaluation board ch583 https://www.wch-ic.com/products/CH582.html
+yd-ch582m yd-ch582m from vcc-gnd studio ch583 http://vcc-gnd.com/
+================== ============================= ======== ===================================================================== ======
diff --git a/docs/reference/dependencies.rst b/docs/reference/dependencies.rst
index d281e912a..146192ef8 100644
--- a/docs/reference/dependencies.rst
+++ b/docs/reference/dependencies.rst
@@ -4,9 +4,9 @@ Dependencies
MCU low-level peripheral drivers and external libraries for building TinyUSB examples
-======================================== ================================================================ ======================================== ========================================================================================================================================================================================================================================================================================================================================
+======================================== ================================================================ ======================================== ===================================================================================================================================================================================================================================================================================================================================================
Local Path Repo Commit Required by
-======================================== ================================================================ ======================================== ========================================================================================================================================================================================================================================================================================================================================
+======================================== ================================================================ ======================================== ===================================================================================================================================================================================================================================================================================================================================================
hw/mcu/allwinner https://github.com/hathach/allwinner_driver.git 8e5e89e8e132c0fd90e72d5422e5d3d68232b756 fc100s
hw/mcu/analog/msdk https://github.com/analogdevicesinc/msdk.git b20b398d3e5e2007594e54a74ba3d2a2e50ddd75 maxim
hw/mcu/artery/at32f402_405 https://github.com/ArteryTek/AT32F402_405_Firmware_Library.git 4424515c2663e82438654e0947695295df2abdfe at32f402_405
@@ -33,6 +33,7 @@ hw/mcu/nxp/mcux-devices-mcx https://github.com/nxp-mcuxpresso/mcux
hw/mcu/nxp/mcux-devices-rt https://github.com/nxp-mcuxpresso/mcux-devices-rt dba2b523c9df61f3330bd186242f8210a8e47c45 imxrt
hw/mcu/nxp/mcux-sdk https://github.com/nxp-mcuxpresso/mcux-sdk a1bdae309a14ec95a4f64a96d3315a4f89c397c6 kinetis_k kinetis_kl lpc54 rw61x
hw/mcu/nxp/mcuxsdk-core https://github.com/nxp-mcuxpresso/mcuxsdk-core 0c5c6b16deb211110e06bde896cdff59ab213e16 imxrt kinetis_k32l lpc51 lpc55 mcx
+hw/mcu/raspberry_pi/FreeRTOS-Kernel https://github.com/raspberrypi/FreeRTOS-Kernel.git 4f7299d6ea746b27a9dd19e87af568e34bd65b15 rp2040
hw/mcu/raspberry_pi/Pico-PIO-USB https://github.com/sekigon-gonnoc/Pico-PIO-USB.git 675543bcc9baa8170f868ab7ba316d418dbcf41f rp2040
hw/mcu/renesas/fsp https://github.com/renesas/fsp.git edcc97d684b6f716728a60d7a6fea049d9870bd6 ra
hw/mcu/renesas/rx https://github.com/kkitayam/rx_device.git 706b4e0cf485605c32351e2f90f5698267996023 rx
@@ -49,7 +50,7 @@ hw/mcu/st/cmsis_device_f4 https://github.com/STMicroelectronics/
hw/mcu/st/cmsis_device_f7 https://github.com/STMicroelectronics/cmsis_device_f7.git 2352e888e821aa0f4fe549bd5ea81d29c67a3222 stm32f7
hw/mcu/st/cmsis_device_g0 https://github.com/STMicroelectronics/cmsis_device_g0.git f484fe852535f913a02ee79787eafa74dd7f9488 stm32g0
hw/mcu/st/cmsis_device_g4 https://github.com/STMicroelectronics/cmsis_device_g4.git 7c39c32593b03764aaa57531588b8bf7cdd443a5 stm32g4
-hw/mcu/st/cmsis_device_h5 https://github.com/STMicroelectronics/cmsis_device_h5.git 5273b8f134ba65f5b8174c4141b711b5c0d295b2 stm32h5
+hw/mcu/st/cmsis_device_h5 https://github.com/STMicroelectronics/cmsis_device_h5.git 884b8dc78e41cbfca008363342b17f4a9e8641f7 stm32h5
hw/mcu/st/cmsis_device_h7 https://github.com/STMicroelectronics/cmsis_device_h7.git 45b818cab6ee2806e3a27c80e330957223424392 stm32h7
hw/mcu/st/cmsis_device_h7rs https://github.com/STMicroelectronics/cmsis_device_h7rs.git 57ea11f70ebf1850e1048989d665c9070f0bb863 stm32h7rs
hw/mcu/st/cmsis_device_l0 https://github.com/STMicroelectronics/cmsis_device_l0.git 7b7ae8cd71437331e1d7824f157d00c7bb4a5044 stm32l0
@@ -59,10 +60,11 @@ hw/mcu/st/cmsis_device_l5 https://github.com/STMicroelectronics/
hw/mcu/st/cmsis_device_n6 https://github.com/STMicroelectronics/cmsis-device-n6.git 7bcdc944fbf7cf5928d3c1d14054ca13261d33ec stm32n6
hw/mcu/st/cmsis_device_u5 https://github.com/STMicroelectronics/cmsis_device_u5.git 6e67187dec98035893692ab2923914cb5f4e0117 stm32u5
hw/mcu/st/cmsis_device_wb https://github.com/STMicroelectronics/cmsis_device_wb.git cda2cb9fc4a5232ab18efece0bb06b0b60910083 stm32wb
-hw/mcu/st/stm32c5xx-dfp https://github.com/STMicroelectronics/stm32c5xx-dfp.git 6d0940882511d9430f83af9bd3da6bcb77f79239 stm32c5
hw/mcu/st/stm32-mfxstm32l152 https://github.com/STMicroelectronics/stm32-mfxstm32l152.git 7f4389efee9c6a655b55e5df3fceef5586b35f9b stm32h7
hw/mcu/st/stm32-tcpp0203 https://github.com/STMicroelectronics/stm32-tcpp0203.git 9918655bff176ac3046ccf378b5c7bbbc6a38d15 stm32h5 stm32h7rs stm32n6
hw/mcu/st/stm32c0xx_hal_driver https://github.com/STMicroelectronics/stm32c0xx_hal_driver.git c283b143bef6bdaacf64240ee6f15eb61dad6125 stm32c0
+hw/mcu/st/stm32c5xx-dfp https://github.com/STMicroelectronics/stm32c5xx-dfp.git 6d0940882511d9430f83af9bd3da6bcb77f79239 stm32c5
+hw/mcu/st/stm32c5xx-drivers https://github.com/STMicroelectronics/stm32c5xx-drivers.git 79b901285a7efeaf87c4c25db81d24cb5d8c9465 stm32c5
hw/mcu/st/stm32f0xx_hal_driver https://github.com/STMicroelectronics/stm32f0xx_hal_driver.git 94399697cb5eeaf8511b81b7f50dc62f0a5a3f6c stm32f0
hw/mcu/st/stm32f1xx_hal_driver https://github.com/STMicroelectronics/stm32f1xx_hal_driver.git 18074e3e5ecad0b380a5cf5a9131fe4b5ed1b2b7 stm32f1
hw/mcu/st/stm32f2xx_hal_driver https://github.com/STMicroelectronics/stm32f2xx_hal_driver.git ae7b47fe41cf75ccaf65cbf8ee8749b18ba0e0f3 stm32f2
@@ -83,18 +85,19 @@ hw/mcu/st/stm32u0xx_hal_driver https://github.com/STMicroelectronics/
hw/mcu/st/stm32u5xx_hal_driver https://github.com/STMicroelectronics/stm32u5xx_hal_driver.git 2c5e2568fbdb1900a13ca3b2901fdd302cac3444 stm32u5
hw/mcu/st/stm32wbaxx_hal_driver https://github.com/STMicroelectronics/stm32wbaxx_hal_driver.git 9442fbb71f855ff2e64fbf662b7726beba511a24 stm32wba
hw/mcu/st/stm32wbxx_hal_driver https://github.com/STMicroelectronics/stm32wbxx_hal_driver.git d60dd46996876506f1d2e9abd6b1cc110c8004cd stm32wb
-hw/mcu/st/stm32c5xx-drivers https://github.com/STMicroelectronics/stm32c5xx-drivers.git 79b901285a7efeaf87c4c25db81d24cb5d8c9465 stm32c5
hw/mcu/ti https://github.com/hathach/ti_driver.git 083944907e7d08fcb1f614b47598ce45935b8da1 msp430 msp432e4 tm4c
hw/mcu/wch/ch32f20x https://github.com/openwch/ch32f20x.git 77c4095087e5ed2c548ec9058e655d0b8757663b ch32f20x
hw/mcu/wch/ch32v103 https://github.com/openwch/ch32v103.git 7578cae0b21f86dd053a1f781b2fc6ab99d0ec17 ch32v10x
hw/mcu/wch/ch32v20x https://github.com/openwch/ch32v20x.git c4c38f507e258a4e69b059ccc2dc27dde33cea1b ch32v20x
hw/mcu/wch/ch32v307 https://github.com/openwch/ch32v307.git 184f21b852cb95eed58e86e901837bc9fff68775 ch32v30x
-lib/CMSIS_5 https://github.com/ARM-software/CMSIS_5.git 2b7495b8535bdcb306dac29b9ded4cfb679d7e5c kinetis_k kinetis_kl lpc54 rw61x mm32 msp432e4 nrf samd2x_l2x lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43 stm32c0 stm32f0 stm32f1 stm32f2 stm32f3 stm32f4 stm32f7 stm32g0 stm32g4 stm32h5 stm32h7 stm32h7rs stm32l0 stm32l1 stm32l4 stm32l5 stm32u0 stm32u5 stm32wb stm32wba sam3x samd11 samd21 samd51 samd5x_e5x same5x same7x samg tm4c
+hw/mcu/wch/ch583 https://github.com/openwch/ch583.git bd508ad7ceed48377619837051412a651952857f ch583
+lib/CMSIS_5 https://github.com/ARM-software/CMSIS_5.git 2b7495b8535bdcb306dac29b9ded4cfb679d7e5c kinetis_k kinetis_kl lpc54 rw61x mm32 msp432e4 nrf samd2x_l2x lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43 stm32c0 stm32f0 stm32f1 stm32f2 stm32f3 stm32f4 stm32f7 stm32g0 stm32g4 stm32h5 stm32h7 stm32h7rs stm32l0 stm32l1 stm32l4 stm32l5 stm32u0 stm32u5 stm32wb stm32wba sam3x samd11 samd21 samd2x_l2x samd51 samd5x_e5x same5x same7x samg tm4c
lib/CMSIS_6 https://github.com/ARM-software/CMSIS_6.git 6f0a58d01aa9bd2feba212097f9afe7acd991d52 imxrt kinetis_k32l ra stm32n6 lpc51 lpc55 mcx stm32c5
-lib/FreeRTOS-Kernel https://github.com/FreeRTOS/FreeRTOS-Kernel.git cc0e0707c0c748713485b870bb980852b210877f all
+lib/FreeRTOS-Kernel https://github.com/FreeRTOS/FreeRTOS-Kernel.git 9b777ae5c5b8e9e456065a00294d1e5f5f9facf5 all
+lib/fatfs https://github.com/abbrev/fatfs.git 30ca13c62615df0d2e9104ab41256985b96590c1 all
lib/lwip https://github.com/lwip-tcpip/lwip.git 159e31b689577dbf69cf0683bbaffbd71fa5ee10 all
lib/sct_neopixel https://github.com/gsteiert/sct_neopixel.git e73e04ca63495672d955f9268e003cffe168fcd8 lpc55
lib/threadx https://github.com/eclipse-threadx/threadx.git 4b6e8100d932a3a67b34c6eb17f84f3bffb9e2ae all
tools/linkermap https://github.com/hathach/linkermap.git 8e1f440fa15c567aceb5aa0d14f6d18c329cc67f all
tools/uf2 https://github.com/microsoft/uf2.git c594542b2faa01cc33a2b97c9fbebc38549df80a all
-======================================== ================================================================ ======================================== ========================================================================================================================================================================================================================================================================================================================================
+======================================== ================================================================ ======================================== ===================================================================================================================================================================================================================================================================================================================================================