diff options
| author | Siddharth Vadapalli <[email protected]> | 2026-02-16 10:04:58 +0530 |
|---|---|---|
| committer | Marek Vasut <[email protected]> | 2026-02-16 15:08:43 +0100 |
| commit | bfb530e06ca6c19f66c079601e568c761a001993 (patch) | |
| tree | aca3c200bcfe371dbdb297dd68a956e793c87076 /test | |
| parent | f9ffeec4bdcf1da655a0ffea482062adde78fee8 (diff) | |
usb: cdns3: use VBUS Valid to determine role for dr_mode OTG
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 <[email protected]>
Reviewed-by: Marek Vasut <[email protected]>
Diffstat (limited to 'test')
0 files changed, 0 insertions, 0 deletions
