Add IP3516 HCD support #3530
Conversation
Signed-off-by: HiFiPhile <admin@hifiphile.com>
Signed-off-by: HiFiPhile <admin@hifiphile.com>
Signed-off-by: HiFiPhile <admin@hifiphile.com>
Signed-off-by: HiFiPhile <admin@hifiphile.com>
Signed-off-by: HiFiPhile <admin@hifiphile.com>
Signed-off-by: HiFiPhile <admin@hifiphile.com>
Signed-off-by: HiFiPhile <admin@hifiphile.com>
Signed-off-by: HiFiPhile <admin@hifiphile.com>
Signed-off-by: HiFiPhile <admin@hifiphile.com>
There was a problem hiding this comment.
Pull request overview
This PR adds a new NXP IP3516 USB Host Controller Driver (HCD) (EHCI-like) and updates NXP BSP integration to use newer, split-out MCUX repositories (core + device packs), along with some example updates to support host-mode memory placement constraints.
Changes:
- Add a new IP3516 HCD implementation under
src/portable/nxp/lpc_ip3516/. - Update dependency fetching (
tools/get_deps.py) and multiple NXP BSP make/cmake files to usemcuxsdk-core+mcux-devices-*repos and CMSIS_6. - Adjust LPC5x/MCX BSP init/build settings and update host examples + README to reflect LPC54/LPC55 host support.
Reviewed changes
Copilot reviewed 43 out of 47 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tools/get_deps.py | Adds NXP split MCUX repos and adjusts CMSIS dependency mapping. |
| src/portable/ohci/ohci.c | Minor safety/constant-type tweak and a null assert. |
| src/portable/nxp/lpc_ip3516/hcd_lpc_ip3516.h | Introduces IP3516 PTD structures/constants. |
| src/portable/nxp/lpc_ip3516/hcd_lpc_ip3516.c | Implements the IP3516 host controller driver. |
| src/common/tusb_mcu.h | Enables IP3516 USB IP defines for LPC54/LPC55. |
| hw/bsp/mcx/* | Switches MCX BSPs to mcuxsdk-core + mcux-devices-mcx, CMSIS_6, and adds MCU_FAMILY plumbing. |
| hw/bsp/lpc55/* | Switches LPC55 BSP to mcuxsdk-core + mcux-devices-lpc, adds host-path selection for IP3516. |
| hw/bsp/lpc54/* | Adds IAR startup/linker files and updates port/speed selection and host IP selection. |
| hw/bsp/lpc51/* | Switches LPC51 BSP to mcuxsdk-core + mcux-devices-lpc and updates board variable naming. |
| examples/host/* | Updates supported MCU lists and places some buffers/objects into CFG_TUH_MEM_SECTION. |
| README.rst | Updates NXP LPC54/LPC55 support matrix to include IP3516 host. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
8368fc0 to
d23ffe7
Compare
TinyUSB Average Code Size Metrics
Input files
|
|
@claude review |
|
Claude finished @hathach's task in 4m 1s —— View job PR Review: Add IP3516 HCD Support
|
… port power to generated pinmux
hathach
left a comment
There was a problem hiding this comment.
prefect, I tested and it works well with my lpc55s28 board. I also make some changes to lpc55 bsp to use the mcxconfig tool (generated pinmux, clock_config) as well.

I did it some time ago and nearly forgot... it's somehow EHCI like.
mcux-sdk-lpc still missing some drivers nxp-mcuxpresso/mcux-devices-lpc#1