Skip to content

rp2350: native tinyusb host mode#10652

Closed
RetiredWizard wants to merge 4 commits into
adafruit:mainfrom
RetiredWizard:usbhostpico
Closed

rp2350: native tinyusb host mode#10652
RetiredWizard wants to merge 4 commits into
adafruit:mainfrom
RetiredWizard:usbhostpico

Conversation

@RetiredWizard

Copy link
Copy Markdown

This PR adds the ability to use both CIRCUITPY_USB_DEVICE=0 and CIRCUITPY_USB_HOST=1 on raspberrypi rp23xx boards to indicate that the native usb pins DP/DM should be configured in HOST mode using the TinyUSB stack.

TinyUSB does not properly handle non-pio RP2350 host mode though so this PR doesn't currently enable the desired functionality. There is an un-merged TinyUSB PR (hathach/tinyusb#2474) which may be applicable to the problem but doesn't solve the problem in it's current state.

The recent usb/core/Device.c logic and memory updates have also changed the TinyUSB behavior but I haven't spent enough time to understand what the impacts are.

I've also included the board files for the Olimex RP2350pc as it's one of the boards that would benefit from this capability and I thought people might like to see how the feature would be configured. however if there's interest in applying the core changes before the TinyUSB issues have been resolved I can drop those files from the PR.

I'm removing the board definition files to simplify the PR. I'm thinking that there isn't much interest in adding this capability so I should probably delete this so it's not cluttering up the PR list.

I'll give it another week or so and if there still isn't any interest I'll go ahead and close it.
@RetiredWizard

RetiredWizard commented Dec 4, 2025

Copy link
Copy Markdown
Author

I'm removing the board definition files to simplify the PR. I'm thinking that there isn't much interest in adding this capability so I should probably close this so it's not cluttering up the PR list.

I'll give it another week or so and if there still isn't any interest I'll go ahead and close it.

@tannewt

tannewt commented Dec 5, 2025

Copy link
Copy Markdown
Member

I'd be interested in merging this. I wouldn't conditionalize on USB_DEVICE and USB_HOST though. Instead, call native USB instance 0 and PIO USB instance 1. Then you can change CIRCUITPY_USB_DEVICE_INSTANCE and CIRCUITPY_USB_HOST_INSTANCE accordingly.

@RetiredWizard

Copy link
Copy Markdown
Author

Thanks! Since my repository is based against MicroPython rebasing this is beyond my github skill level so I'm going to close this and start working up a new version based on your suggestion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants