Hi Jonas,

Thank you for the patch.

On Thu, Jan 29, 2026 at 19:52, Jonas Karlman <[email protected]> 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@ff740000
>    usb_gadget    1  [   ]   dwc2-udc-otg          |   |-- usb@ff780000
>
>   => usb start
>   starting USB...
>   No USB controllers found
>
> After this:
>
>   dwc2-udc-otg usb@ff780000: Invalid dr_mode 1
>
>   => dm tree
>    ...
>    usb_gadget    0  [   ]   dwc2-udc-otg          |   |-- usb@ff740000
>    usb           0  [   ]   dwc2_usb              |   |-- usb@ff780000
>
>   => usb start
>   starting USB...
>   USB DWC2
>   Bus usb@ff780000: 1 USB Device(s) found
>
> Signed-off-by: Jonas Karlman <[email protected]>

Reviewed-by: Mattijs Korpershoek <[email protected]>

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(-)
>

Reply via email to