On 14/01/2026 15:39, Neil Armstrong wrote:
> On 1/14/26 15:13, Casey Connolly wrote:
>> Respect the default mode configured in DT if it is set and dr_mode is
>> OTG. This allows the board to prefer host mode even on a DRD capable
>> controller.
>>
>> Signed-off-by: Casey Connolly <[email protected]>
>> ---
>> drivers/usb/dwc3/dwc3-generic.c | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-
>> generic.c
>> index 7044696ced0c..1aa9fc933282 100644
>> --- a/drivers/usb/dwc3/dwc3-generic.c
>> +++ b/drivers/usb/dwc3/dwc3-generic.c
>> @@ -528,8 +528,13 @@ static int dwc3_glue_bind_common(struct udevice
>> *parent, ofnode node)
>> dr_mode = usb_get_dr_mode(dev_ofnode(parent));
>> if (!dr_mode)
>> dr_mode = usb_get_dr_mode(node);
>> + /* check default role for DRD controllers */
>> + if ((dr_mode == USB_DR_MODE_OTG || dr_mode ==
>> USB_DR_MODE_UNKNOWN) &&
>> + ofnode_read_bool(node, "usb-role-switch"))
>> + dr_mode = usb_get_role_switch_default_mode(node);
>> +
>> /* usb mode must fallback to peripheral if not known */
>> if (dr_mode == USB_DR_MODE_UNKNOWN)
>> dr_mode = USB_DR_MODE_OTG;
>>
>
> So it means that,on phone platforms, the controller will default to host ?
No, it will default to whatever role-switch-default-mode is if it's set,
phones will have this set to peripheral if it's set at all.
>
> Neil
--
// Casey (she/her)