[PATCH v4] usb: cdns3: use VBUS Valid to determine role for dr_mode OTG
Marek Vasut
marek.vasut at mailbox.org
Mon Feb 16 15:07:25 CET 2026
On 2/16/26 5:34 AM, Siddharth Vadapalli wrote:
> The cdns3_bind() function is responsible for identifying the appropriate
> driver to bind to the USB Controller's device-tree node. If the device-tree
> node has the 'dr_mode' property set to 'otg', the existing approach fails
> to bind a driver, leading to loss of functionality.
>
> To address this, use the VBUS Valid field of the OTG Status register to
> determine the role as follows:
> - If VBUS Valid field is set, it indicates that a USB Host is supplying
> power and the Controller should assume the Peripheral role.
> - If VBUS Valid field is clear, it indicates the absence of a USB Host and
> the Controller should assume the Host role.
>
> Additionally, when 'dr_mode' happens to be 'otg' and the STRAP settings
> are not specified, use VBUS Valid to determine the role in cdns3_drd_init()
> and assign it to cdns->dr_mode.
>
> Signed-off-by: Siddharth Vadapalli <s-vadapalli at ti.com>
Reviewed-by: Marek Vasut <marek.vasut at mailbox.org>
Thanks
More information about the U-Boot
mailing list