Hi Julien, On 06/07/2023 19:07, Julien Panis wrote: > USB1 dual-role feature is already handled as peripheral only > in dwc3-generic driver. > > Signed-off-by: Julien Panis <jpa...@baylibre.com> > --- > arch/arm/dts/keystone-k2e-evm-u-boot.dtsi | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/arm/dts/keystone-k2e-evm-u-boot.dtsi > b/arch/arm/dts/keystone-k2e-evm-u-boot.dtsi > index 970d452f0804..a75f78377c28 100644 > --- a/arch/arm/dts/keystone-k2e-evm-u-boot.dtsi > +++ b/arch/arm/dts/keystone-k2e-evm-u-boot.dtsi > @@ -39,7 +39,6 @@ > &usb1 { > dwc3@25010000 { > phys = <&usb1_phy>; > - dr_mode = "peripheral"; > snps,u2ss_inp3_quirk; > status = "okay"; > }; >
keystone-k2e.dtsi nor keystone-k2e-evm.dtsi has dr_mode set anywhere. In Linux, keystone-k2e-evm.dtsi has dr_mode as "peripheral". Can we please have the same in u-boot as well? Then, from dwc3_generic_of_to_plat() plat->dr_mode = usb_get_dr_mode(node); if (plat->dr_mode == USB_DR_MODE_UNKNOWN) { /* might be a leaf so check the parent for mode */ node = dev_ofnode(dev->parent); plat->dr_mode = usb_get_dr_mode(node); if (plat->dr_mode == USB_DR_MODE_UNKNOWN) { pr_err("Invalid usb mode setup\n"); return -ENODEV; } } I suppose that should be changed to OTG by default instead of complaining that it's invalid. FYI. From linux/devicetree/bindings/usb/usb-drd.yaml dr_mode: description: Tells Dual-Role USB controllers that we want to work on a particular mode. In case this attribute isn't passed via DT, USB DRD controllers should *default to OTG*. -- cheers, -roger