summaryrefslogtreecommitdiff
path: root/src/portable/raspberrypi
AgeCommit message (Collapse)Author
2025-04-23rename hcd_devtree_info_t to tuh_bus_info_t, hcd_devtree_get_info to ↵hathach
hcd_bus_info_get streamline bus info to usbh_devies, also replace dev0 (renamed to dev0_bus)
2025-03-26added hcd_edpt_close() stub for other portshathach
2025-03-25add tuh_edpt_close() API, it will abort any pending transferhathach
implement hcd_edpt_close() for pio-usb and max3421e, also move max3421e api into its own header.
2025-03-05rp2040: abort transfer if active in iso_activate()hathach
add hw_endpoint_abort_xfer()
2025-03-05Merge branch 'master' into fork/pschatzmann/rp2040-isohathach
2025-02-28fix(hcd_rp2040) assert/panic endpoint already active: when a device reset ↵hathach
while having on-going control transfer
2025-01-15rp2040 correct dcd_edpt_iso_activatepschatzmann
2024-11-28made change per reviews, remove dcd_edpt_close(), rename and move thing aroundhathach
2024-10-15RP2040 New ISO APIpschatzmann
2024-10-14change dcd_init() return from void to boolhathach
2024-10-14change the tusb_rhport_init_t struct, exclude the rhport to make API more ↵hathach
consistent
2024-10-11hcd_init() take init structhathach
2024-10-11fix fuzzing buildhathach
2024-10-11change dcd_init() to take rhport structhathach
2024-07-17RP2040: no need to clear usb_hw (usb registers) as they are reset to default ↵Liam Fraser
state by a hardware reset
2024-07-17RP2040: Use our own unaligned memcpy to avoid alignment faults with some ↵Liam Fraser
memcpy implementations
2024-04-08fix unused warninghathach
2024-04-08add class driver deinithathach
2024-04-08Implements tuh_deinit() and tud_deinit() to uninitialize host/device mode.Felix "xq" Queißner
2024-03-29fix rp2 debug build with level 3hathach
2024-03-13- only abort ep0 if it is activehathach
- rename reset_ep0_pid() to reset_ep0() - minor update log message
2024-03-12Merge branch 'master' into fix-rp2040-ctrl-xferhathach
2024-03-11reformat codehathach
2024-02-26work around possible RP2040 erratumTaylor Yu
RP2040 device controller does not seem to clear pending transactions configured in EP0 buffer controls when the host aborts a control transfer. This causes assertion failures, including when a buffer AVAILABLE flag set for a previous transfer causes an unexpected transaction completion.
2023-12-26allow rp2040 to use max3421e as host controllerhathach
- fix warnings build hcd max3421 with rp2040 - add tinyusb_host_max3421 target for rp2040 cmake, -DMAX3421_HOST=1 will enable this - add max3421 driver implementation for rp2040 family - update tusb_config for host to allow easy enable host selection for rp2040 (default/pio-usb/max3421)
2023-11-03fix race condition when dev0 is removed while enumeratinghathach
2023-09-27change hcd_int_handler(rhport, in_isr) signature: add in_isrhathach
change tuh_int_handler() to take in_isr as optional parameter (default = true)
2023-08-07code formathathach
2023-08-04Merge branch 'master' into masterHa Thach
2023-07-26correct hcd_edpt_clear_stall() API signaturehathach
2023-07-24add hcd abort xfer for rp2040 pio usbhathach
2023-07-21add stub hcd_edpt_abort_xfer() for all portshathach
2023-07-02also fixed pico_trac() log messages.Lars Pötter
2023-07-02made line ends consistent.Lars Pötter
2023-06-29add hcd_frame_number() for pio-usb hosthathach
2023-06-26fix warnings when enable rtt with rp2040hathach
2023-04-20[rp2040] Make writes to SIE_CTRL aware of concurrent accessJacek Fedorynski
This commit makes it so that when setting the START_TRANS bit in the SIE_CTRL register, along with some other bits, we first set all the other bits, then wait some cycles, and then set the START_TRANS bit. Doing so protects against a situation where the USB controller is reading the register at the same time and gets an incorrect value. This mirrors the procedure already applied to buffer control registers.
2023-03-20more compatible with IARhathach
2023-03-18more clean uphathach
2023-03-17Merge branch 'master' into portabilityhathach
2023-03-17fix trailing space and new linehathach
temporarily disable codespell
2023-03-15fix PICO_SHARED_IRQ_HANDLER_HIGHEST_ORDER_PRIORITY not defined in old pico-sdkhathach
2023-03-10rp2040: include hardware/sync.h explicitlyDan Halbert
2023-03-02rp2040: Fixup lib and example compile for LLVM Embedded Toolchain for ARMgraham sanderson
2023-01-31fix typoshathach
2023-01-31move errata to end of c filehathach
2023-01-31add e15 prefix or walkaround related functions, also minor refactorhathach
2023-01-31minor clean uphathach
2023-01-24rp2040: shuffle hw_endpoint membersJonathan Bell
Ordering by element size prevents alignment holes, and as a consequence the host mode version of the struct is the same size as device, as pad bytes at the end are used instead.
2023-01-24rp2040: avoid device-mode state machine hangJonathan Bell
Don't mark IN buffers as available during the last 200us of a full-speed frame. This avoids a situation seen with the USB2.0 hub on a Raspberry Pi 4 where a late IN token before the next full-speed SOF can cause port babble and a corrupt ACK packet. The nature of the data corruption has a chance to cause device lockup. Use the next SOF to mark delayed buffers as available. This reduces available Bulk IN bandwidth by approximately 20%, and requires that the SOF interrupt is enabled while these transfers are ongoing. Inherit the top-level enable from the corresponding Pico-SDK flag. Applications that will not use the device in a situation where it could be plugged into a Pi 4 or Pi 400 (for example, when directly connected to a commodity hub or other host) can turn off the flag in the SDK. v2: use a field in hw_endpoint to mark pending. v3: Partial rewrite following review comments - Stub functions out if the workaround is not required - Only force-enable SOF while any vulnerable endpoints are active - Respect dcd_sof_enable() functionality - Get rid of all but necessary ifdef hackery - Fix a bug where the "endpoint lock" was used with an uninitialised pointer.