Skip to content

drivers: uhc: implement UHC shim driver for NXP KHCI and EHCI controller #77973

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 30, 2025

Conversation

MarkWangChinese
Copy link
Collaborator

Enablet the NXP MCUX UHC drivers.
Add uhc support for frdm_k22f, rt1060, lpc55s69 and lpc55s28. frdm_k22f supports the KHCI controller, rt1060 supports the EHCI controller, lpc55s69 and lpc55s28 support the OHCI and IP3516HS controller.

@zephyrbot zephyrbot added area: ARM ARM (32-bit) Architecture area: Architectures area: USB Universal Serial Bus platform: NXP NXP platform: NXP Drivers NXP Semiconductors, drivers labels Sep 4, 2024
@zephyrbot
Copy link
Collaborator

zephyrbot commented Sep 4, 2024

The following west manifest projects have changed revision in this Pull Request:

Name Old Revision New Revision Diff
hal_nxp zephyrproject-rtos/hal_nxp@73d478f zephyrproject-rtos/hal_nxp@cea5006 (master) zephyrproject-rtos/hal_nxp@73d478f7..cea5006f

All manifest checks OK

Note: This message is automatically posted and updated by the Manifest GitHub Action.

@PetervdPerk-NXP
Copy link
Collaborator

Any plans to enable 1170 and 1180 as well?
Since they share almost the same EHCI controller.

@MarkWangChinese
Copy link
Collaborator Author

Any plans to enable 1170 and 1180 as well? Since they share almost the same EHCI controller.

After this basic NXP UHC controller driver merges, I think next step is implementing the host stack. Because the host stack is not ready, so supporting more platforms does not make much sense.

@jfischer-no
Copy link
Collaborator

@MarkWangChinese Please fix style issues reported by compliance checks.

@MarkWangChinese MarkWangChinese force-pushed the feature/enable_mcux_uhc branch 2 times, most recently from d8d68ab to debd1a2 Compare April 25, 2025 07:28
tmon-nordic
tmon-nordic previously approved these changes Apr 25, 2025
@MarkWangChinese
Copy link
Collaborator Author

@MarkWangChinese Please fix style issues reported by compliance checks.

Fixed.

jfischer-no
jfischer-no previously approved these changes Apr 25, 2025
@harristomy
Copy link
Contributor

harristomy commented May 12, 2025

@dleach02 @MarkWangChinese any updates on zephyrproject-rtos/hal_nxp#496 ? It'd be great if we can have this feature in Zephyr 4.2

@dleach02 dleach02 dismissed stale reviews from jfischer-no and tmon-nordic via 3ba68f2 May 28, 2025 20:01
@dleach02 dleach02 force-pushed the feature/enable_mcux_uhc branch from debd1a2 to 3ba68f2 Compare May 28, 2025 20:01
@dleach02 dleach02 closed this May 28, 2025
@dleach02 dleach02 reopened this May 28, 2025
@github-actions github-actions bot removed the DNM (manifest) This PR should not be merged (controlled by action-manifest) label May 28, 2025
@dleach02
Copy link
Member

Merged HAL PR and updated the SHA in west.yml

Need reapplied +1 @jfischer-no @tmon-nordic

It is based on SDK USB Host controller driver.
Support NXP EHCI, KHCI, OHCI and IP3516HS controllers.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
…5s28

add uhc related items to dts.
add clock initialization
add BM4 if CONFIG_USB_UHC_NXP_KHCI is enabled
add pin mux
update board related CMakeLists.txt
update sdk-ng CMake to include NXP controller drivers
update west.yml to contain the hal_nxp pr

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
add uhc related items to dts.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
Because the same IP supports both device and host, so use
DYNAMIC_INTERRUPTS for KHCI and EHCI if both device and host
are enabled.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
@dleach02 dleach02 force-pushed the feature/enable_mcux_uhc branch from 3ba68f2 to a0474b6 Compare May 29, 2025 14:27
@matt-wood-ct
Copy link

Can we have board support for the RT1040?
That's the part I'm using and are keen to test on as classes start to arrive 😄

Copy link

@dleach02
Copy link
Member

Sorry @jfischer-no @tmon-nordic, I needed to rebase to pull in a hot fix from main that was causing CI to fail here. Need your +1 reapplied so we can merge

@kartben kartben merged commit 8951711 into zephyrproject-rtos:main May 30, 2025
39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Architectures area: ARM ARM (32-bit) Architecture area: USB Universal Serial Bus manifest manifest-hal_nxp platform: NXP Drivers NXP Semiconductors, drivers platform: NXP NXP
Projects
None yet
Development

Successfully merging this pull request may close these issues.