[PATCH v3 0/8] usb: dwc2: Refactor and update USB DWC2 driver
Junhui Liu
junhui.liu at pigmoral.tech
Tue Jan 7 13:44:23 CET 2025
Hi Mattijs,
On 07/01/2025 10:47, Mattijs Korpershoek wrote:
> Hi Junhui,
>
> On sam., janv. 04, 2025 at 11:37, Junhui Liu <junhui.liu at pigmoral.tech> wrote:
>
>> This series improves the USB DWC2 driver by extracting register
>> definitions into a common file for better readability and updating the
>> reset method to reflect changes in version 4.20a, including the new
>> GRSTCTL_CSFTRST_DONE bit for reset completion indication.
>>
>> This series has been tested on two platforms:
>> - MK808 with RK3066 SoC and dwc2 v2.91a, tested with USB flash drive and
>> connected the board to the PC through the rockusb command. Test log [1].
>> - K230-CanMV with K230 SoC [2] and dwc2 v4.30a, tested with the onboard
>> rtl8152 USB to net chip and an external rtl8152 adapter connected to
>> the onboard USB-C interface via USB hub. Test log [3].
>>
>> [1] https://gist.github.com/Judehahh/878ace2607d201dc49211f2c655f0fe0#file-mk808-md
>> [2] https://developer.canaan-creative.com/k230/en/dev/CanMV_K230_Tutorial.html
>> [3] https://gist.github.com/Judehahh/878ace2607d201dc49211f2c655f0fe0#file-k230-canmv-md
>
> When applying this series on top of master (commit 6d41f0a39d64 ("Prepare v2025.01"))
> And building with khadas-vim3_android_ab_defconfig, I see:
>
> drivers/usb/gadget/dwc2_udc_otg.c:1209:33: error: invalid use of undefined type 'struct dwc2_core_reg'
> 1209 | return readl(&usbotg_reg->global_regs.gotgctl) & GOTGCTL_BSESVLD;
> | ^~
>
> Full build logs:
> https://paste.debian.net/1343304/
>
> It seems that at some places, we use:
> struct dwc2_core_reg
>
> instead of:
> struct dwc2_core_regs
>
> Could that be fixed for v4, please?
>
> I think this typo is in "usb: dwc2: Align macros with Linux kernel
> definitions" but missed it during review, sorry.
Thanks for pointing it out, sorry about the missing check, I'll fix it
in the next version.
>
>>
>> ---
>> Changes in v3:
>> - Handled warnings from checkpatch.pl (add spaces around '<<' and
>> replace 'x' with '(x)' for macro argument).
>> - Add return ret; when timeout happens.
>> - Link to v2: https://lore.kernel.org/r/20241230-dwc2-dev-v2-3-12cd9b8a2358@outlook.com
>>
>> Changes in v2:
>> - Reorganized structures, renamed macros, and moved code for better
>> clarity and maintainability.
>> - Added a fix for the incorrect ULPI_UTMI_SEL bit setting.
>> - Added a fix for incorrectly calculating HBstLen for external DMA mode.
>> - Extend the changes that replace uint32 with u32 to also include u8 and
>> u16.
>> - Link to v1: https://lore.kernel.org/r/20240522142311.17351-1-seashell11234455@gmail.com
>>
>> ---
>> Junhui Liu (1):
>> usb: dwc2: Fix incorrect ULPI_UTMI_SEL bit setting
>>
>> Kongyang Liu (7):
>> usb: dwc2: Extract register definitions to common header file
>> USB: dwc2: Fix HBstLen setting for external DMA mode
>> usb: dwc2: Clean up with bitfield macros
>> usb: dwc2: Align macros with Linux kernel definitions
>> usb: dwc2: Extract macro definitions to common header
>> usb: dwc2: Unify flush and reset logic with v4.20a support
>> usb: dwc2: Replace uint<x>_t types with u<x>
>>
>> drivers/usb/common/Makefile | 2 +
>> drivers/usb/common/dwc2_core.c | 115 +++++
>> drivers/usb/common/dwc2_core.h | 560 +++++++++++++++++++++
>> drivers/usb/gadget/dwc2_udc_otg.c | 125 ++---
>> drivers/usb/gadget/dwc2_udc_otg_regs.h | 293 ++---------
>> drivers/usb/gadget/dwc2_udc_otg_xfer_dma.c | 306 ++++++------
>> drivers/usb/host/dwc2.c | 494 ++++++++-----------
>> drivers/usb/host/dwc2.h | 750 +----------------------------
>> 8 files changed, 1137 insertions(+), 1508 deletions(-)
>> ---
>> base-commit: e7713a78829250b925d6377ee26c7b0745727feb
>> change-id: 20241218-dwc2-dev-955c21a81118
>>
>> Best regards,
>>
--
Best regards,
Junhui Liu
More information about the U-Boot
mailing list