[PATCH v2] usb: gadget: dwc2: Move dr_mode check from of_to_plat() to bind()
Mattijs Korpershoek
mkorpershoek at kernel.org
Thu Jan 29 21:13:42 CET 2026
Hi Jonas,
Thank you for the patch.
On Thu, Jan 29, 2026 at 19:52, Jonas Karlman <jonas at kwiboo.se> wrote:
> Rockchip RK3288 and RK3506 contain two DWC2 USB controllers, typically
> one controller use dr_mode=otg and the other one use dr_mode=host.
>
> With USB_GADGET_DWC2_OTG, DM_USB_GADGET and USB_DWC2 enabled this result
> in the dwc2-udc-otg driver binding to both controllers, however only one
> will probe due to use of dr_mode=host on the other one.
>
> After the commit 6668b8e7cc68 ("dm: core: Support multiple drivers with
> same compatibles") it is possible to bind one controller to the
> dwc2-udc-otg driver and the other one to the dwc2_usb driver.
>
> Move the dr_mode check from of_to_plat() to bind() to allow dm core to
> bind the dwc2 host driver to dr_mode=host controllers.
>
> Before this:
>
> => dm tree
> ...
> usb_gadget 0 [ ] dwc2-udc-otg | |-- usb at ff740000
> usb_gadget 1 [ ] dwc2-udc-otg | |-- usb at ff780000
>
> => usb start
> starting USB...
> No USB controllers found
>
> After this:
>
> dwc2-udc-otg usb at ff780000: Invalid dr_mode 1
>
> => dm tree
> ...
> usb_gadget 0 [ ] dwc2-udc-otg | |-- usb at ff740000
> usb 0 [ ] dwc2_usb | |-- usb at ff780000
>
> => usb start
> starting USB...
> USB DWC2
> Bus usb at ff780000: 1 USB Device(s) found
>
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
Reviewed-by: Mattijs Korpershoek <mkorpershoek at kernel.org>
Marek, can I pick this up since it's gadget or do you want to take it?
> ---
> v2: Update dev_dbg message to include current dr_mode
> ---
> drivers/usb/gadget/dwc2_udc_otg.c | 19 +++++++++++++------
> 1 file changed, 13 insertions(+), 6 deletions(-)
>
More information about the U-Boot
mailing list