<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/src/portable/st, branch 0.21.0</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/src/portable/st?h=0.21.0</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/src/portable/st?h=0.21.0'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-06-25T08:24:39Z</updated>
<entry>
<title>Merge pull request #3616 from michaelajax/fix-stm32-usbc</title>
<updated>2026-06-25T08:24:39Z</updated>
<author>
<name>Zixun LI</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-06-25T08:24:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=0a25cc27d7d3699536f6df01e80af3eb0423ce58'/>
<id>urn:sha1:0a25cc27d7d3699536f6df01e80af3eb0423ce58</id>
<content type='text'>
typec/stm32: fix UCPD sink bugs affecting compatibility with newer PD sources</content>
</entry>
<entry>
<title>skip cable-plug traffic</title>
<updated>2026-06-24T21:41:43Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-06-24T21:41:43Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=c374de17d9cd40c8631a10d9fb9251a4a06fc70f'/>
<id>urn:sha1:c374de17d9cd40c8631a10d9fb9251a4a06fc70f</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>apply review suggestions</title>
<updated>2026-06-24T19:36:03Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-06-24T19:36:03Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=1c267bf61d6f844906bb55aef1c314342ef210d6'/>
<id>urn:sha1:1c267bf61d6f844906bb55aef1c314342ef210d6</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>typec: add tuc_connect/tuc_disconnect api</title>
<updated>2026-06-24T19:15:33Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-06-24T19:15:33Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=f35af01db58ba76bef1a65a56458bc815497ebbe'/>
<id>urn:sha1:f35af01db58ba76bef1a65a56458bc815497ebbe</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>typec: add stm32u5 support</title>
<updated>2026-06-24T19:13:27Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-06-24T18:48:42Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=3a1ced7e1333de7ddf57f8592a41cbf0605512ed'/>
<id>urn:sha1:3a1ced7e1333de7ddf57f8592a41cbf0605512ed</id>
<content type='text'>
Signed-off-by: HiFiPhile &lt;admin@hifiphile.com&gt;
</content>
</entry>
<entry>
<title>Merge pull request #3648 from hathach/ch32_fsdev</title>
<updated>2026-06-24T06:27:18Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-24T06:27:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=467f638e98d5b76ecb970272912a1b1f63a7ca19'/>
<id>urn:sha1:467f638e98d5b76ecb970272912a1b1f63a7ca19</id>
<content type='text'>
dcd/stm32_fsdev: workaround CH32 EP0 premature OUT ACK</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'tinyusb/master' into fix-stm32-usbc</title>
<updated>2026-06-23T21:12:51Z</updated>
<author>
<name>HiFiPhile</name>
<email>admin@hifiphile.com</email>
</author>
<published>2026-06-23T21:12:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=033dc6bb77e8a9e1c1172d74d47707848b5c5bf5'/>
<id>urn:sha1:033dc6bb77e8a9e1c1172d74d47707848b5c5bf5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(stm32_fsdev): don't enable the unused USB wakeup EXTI IRQ (F1/F3/G4/L1)</title>
<updated>2026-06-18T11:09:53Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-18T10:44:16Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=d0e51346cdc691624bc10da89a775a82ef86d92a'/>
<id>urn:sha1:d0e51346cdc691624bc10da89a775a82ef86d92a</id>
<content type='text'>
The classic-USB STM32 fsdev driver enabled the EXTI-line USB wakeup interrupt
(USBWakeUp_IRQn, and USBWakeUp_RMP_IRQn on the F3 remap path) in the NVIC, but
never uses it: resume is serviced in-band via ISTR.WKUP in the USB_LP/HP ISR,
and the driver never arms or clears that EXTI line. The wakeup EXTI interrupt is
only needed to wake the core from STOP mode, which TinyUSB does not implement.
Leaving its NVIC vector enabled lets it fire spuriously into an unhandled or
looping vector -- the freeze reported in #3696 on STM32G473.

USBWakeUp_IRQn is a valid, dedicated USB-wakeup-via-EXTI interrupt (e.g.
stm32g473xx.h: =42 "USB Wakeup through EXTI line"), not an "unrelated
interrupt"; it is simply unused here.

- Comment out USBWakeUp_IRQn for F1/F3/G4/L1 and USBWakeUp_RMP_IRQn on the F3
  remap path, kept in place so STOP-mode wakeup is a one-line re-enable.
- Keep the STM32L1 USBWakeUp_IRQn -&gt; USB_FS_WKUP_IRQn alias for that re-enable.
- Document the rationale in fsdev_stm32.h with a TODO.
- Comment out the matching USBWakeUp(_RMP)_IRQHandler in the F1/F3/G4 BSPs, and
  the FreeRTOS NVIC_SetPriority(USBWakeUp_IRQn) on F1/G4.

Fixes #3696

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>dcd/stm32_fsdev: restore CH32 EP0 CONTROL type when stalling</title>
<updated>2026-06-18T08:56:23Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-17T09:27:03Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=6d74543ce6b3d79c2ba24e11f23fccad52571464'/>
<id>urn:sha1:6d74543ce6b3d79c2ba24e11f23fccad52571464</id>
<content type='text'>
The CH32 workaround only restored EP0 to CONTROL in edpt_xfer(). When
the stack rejects a control write with data (handle_ctr_setup having
already switched EP0 to BULK) it stalls EP0 via dcd_edpt_stall() without
ever calling dcd_edpt_xfer(), leaving EP0 typed BULK+STALL. As SETUP
recognition is tied to CONTROL-typed endpoints, the host's recovery
SETUP (which should auto-clear the stall) would be ignored, wedging EP0
until a bus reset.

Restore CONTROL for EP0 in the same exclusive write that sets the STALL
status. DFU download-in-wrong-state is a concrete trigger.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>dcd/stm32_fsdev: restore CH32 EP0 CONTROL type atomically with arming</title>
<updated>2026-06-18T08:56:23Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-17T09:26:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=de341b14abe3bc3e25962cbb26aa61bc0126adcf'/>
<id>urn:sha1:de341b14abe3bc3e25962cbb26aa61bc0126adcf</id>
<content type='text'>
edpt_xfer() restored EP0 to CONTROL at the top of the function, before
the OUT stage was armed (rx bufsize + STAT_RX=VALID written further
down, with interrupts enabled in between). That re-enabled the CH32
blind OUT ACK while STAT_RX was still NAK and the buffer size stale, so
a host-retried DATA OUT / status ZLP could be ACKed into the wrong
buffer in the gap.

Fold the CONTROL restore into the single exclusive write that programs
STAT_RX=VALID for the OUT direction, after the buffer size is set, so
type and arming go live together. The IN direction keeps the (now
atomic) early restore, where no pending OUT exists to be blind-ACKed.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
