summaryrefslogtreecommitdiff
path: root/src/portable/raspberrypi
AgeCommit message (Collapse)Author
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.
2023-01-23rp2040: export hw_endpoint_start_next_buffer() and hw_endpoint_lock_update()Jonathan Bell
The next change to the driver requires the export of these functions. Leave the lock unimplemented for now. Also move hw_set and hw_clear aliases into the top-level header file.
2022-11-30more clean uphathach
2022-11-30white spaceshathach
2022-11-23Fix RP2040 Issue 1721rppicomidi
2022-11-04fix -wconversion-int and add minor commenthathach
2022-11-04Merge branch 'master' into rp2040-hcd-bulkHa Thach
2022-10-05Fix typo for log in dcd_rp2040.cmingpepe
2022-09-13[rp2040] Wrap GCC pragmas in #ifdef __GNUC__Ben Avison
IAR generates warning Pe161 'unrecognized #pragma'.
2022-09-13Don't assume ints automatically convert to enumsBen Avison
IAR generates warning Pe188 'enumerated type mixed with another type'.
2022-09-13Remove unreachable codeBen Avison
IAR generates warning Pe111 'statement is unreachable'. In a couple of cases, replace return statements with TU_ATTR_FALLTHROUGH; because some compilers apparently can't figure out that the return statements are unreachable but do whinge about an imagined fall-through without them!
2022-09-12[rp2040] Explicit cast value of `hw_set_alias`Ben Avison
Some compilers don't support the GNU extension `typeof` so their definitions of `hw_set_alias` can't inherit their type from their argument, and the best we can do is have `hw_set_alias` act the same as `hw_set_alias_untyped`. This requires an explicit cast when the macro is used instead, otherwise IAR generates error Pe132 'expression must have pointer-to-struct-or-union type but it has type "void *"'. The same goes for `hw_clear_alias`.
2022-09-12[rp2040] Remove non-portable return statementsBen Avison
IAR generates error Pe118 'a void function may not return a value'.
2022-09-07Fix bug #1628 by preventing shared irq slots for filling upjmark1m
2022-07-12RP@040: rework CMake for compiler warningsgraham sanderson