Hi Jean, > > Hi Sherry, > > On 03/09/2019 14:44, Sherry Sun wrote: > > Hi Jean, > > > >> > >> On 02/09/2019 13:29, Sherry Sun wrote: > >>> Hi Vignesh, > >>> > >>>> Hi Sherry, > >>>> > >>>> [...] > >>>>>> AFAIK, U-Boot does not support runtime switching of USB port to > >>>>>> host from device and vice versa. This is the case for existing > >>>>>> driver like > >>>> DWC3/MUSB etc. > >>>>>> Ideally we would need a role switch driver that unbinds and > >>>>>> rebinds host vs device driver as when required based on U-Boot > >>>>>> cmd or via an API (if required to be done during SPL stage etc). > >>>>> I wonder if we can add two subnodes under the wrapper node as > >>>>> below, > >>>> one bind to usb gadget driver and another bind to usb host driver. > >>>>> So if we want to use usb device, just call the gadget driver, and > >>>>> if want to > >>>> use usb host, just call the host driver. The driver will probe > >>>> correspond > >> node. > >>>>> I'm not sure if it is feasible, what do you think about it? > >>>>> > >>>>> usbss0: cdns_usb@4104000 { > >>>>> compatible = "ti,j721e-usb"; > >>>>> [....] > >>>>> usb0: usb@6010000 { /* xhci reg address*/ > >>>>> compatible = "cdns,usb3-1.0.1"; > >>>>> dr_mode = "host"; > >>>>> [....] > >>>>> } > >>>>> usb1: usb@6020000 { /* dev reg address*/ > >>>>> compatible = "cdns,usb3-1.0.1"; > >>>>> dr_mode = "peripheral"; > >>>>> [....] > >>>>> } > >>>>> } > >>>>> > >>>> But this is not how DT would look in kernel. There will be single > >>>> DT node representing both Host and Device node. DT repesentation > >>>> should not be changed based on OS/bootloader, its HW description > >>>> and must > >> remain same. > >>>> Unbinding host/gadget driver and rebinding with a different role > >>>> should not be hard as the U-Boot core infrastructure exists. > >>>> > >>>> Moreover if xhci reg and dev reg are separated into different nodes > >>>> dont we still need access to OTG register block to switch b/w host > >>>> and > >> device mode? > >>> I think we may not need to access OTG register if we add two > >>> subnodes for > >> gadget and host. > >>> But I see a for loop in dwc3_glue_bind() as follows, if there only > >>> one single > >> node representing both Host and Device node under usb wrapper node, > >> why we need this for loop? > >>> 212 for (node = fdt_first_subnode(fdt, dev_of_offset(parent)); node > > 0; > >>> 213 node = fdt_next_subnode(fdt, node)) { > >> I believe this is a legacy from the code it was inspired from. > >> > >> Indeed the loop is not required. > >> > >> Like Vignesh I think we must stick with the dt-bindings used by the kernel. > > Thanks for your reply, I understand now. > > > >> BTW we are working on the USB3 support right now that is lacking in our > tree. > >> I choose to keep the PHY drivers as close as possible to their linux > >> version. I'll probably start posting preliminary patches this week. > >> > >> If you have the USB3 working in the kernel, can you point to a tree > >> where I can have a look at the drivers and dt-bindings ? > > Sure, you can see our downstream kernel code at my github, here is the > link address: > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub > .com%2Fsherrysun1%2Flinux- > imx.git&data=02%7C01%7Csherry.sun%40nxp.com%7C368ba21c33c048 > fd137208d735199870%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7 > C637036256383501199&sdata=y4AB0RpG%2F7Skk34yccpkW9TQsDWpi > 6OJhtlRWid1DM0%3D&reserved=0. > > And look forward to seeing your patches in uboot maillist. > > It will take some times before I can post on the mailing list because I did > the > work on top TI's u-boot. But you can find the patches under > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub > .com%2Fjjhiblot%2Fu- > boot%2Ftree%2Fusb3_cleanup_v2&data=02%7C01%7Csherry.sun%40n > xp.com%7C368ba21c33c048fd137208d735199870%7C686ea1d3bc2b4c6fa92c > d99c5c301635%7C0%7C0%7C637036256383511193&sdata=ozU9gYDTO > %2FkoB4NwU1R2omGw9%2F%2Fyf6MPxBz1%2FtQ8Lgg%3D&reserved= > 0. > <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithu > b.com%2Fjjhiblot%2Fu- > boot%2Ftree%2Fusb3_cleanup_v2&data=02%7C01%7Csherry.sun%40n > xp.com%7C368ba21c33c048fd137208d735199870%7C686ea1d3bc2b4c6fa92c > d99c5c301635%7C0%7C0%7C637036256383511193&sdata=ozU9gYDTO > %2FkoB4NwU1R2omGw9%2F%2Fyf6MPxBz1%2FtQ8Lgg%3D&reserved= > 0> > > The DTS bindings are the same as under Linux. The CDNS3 driver is a port of > the iteration v11 of the linux driver that has just been merged in the linux > usb > tree > (https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.ke > rnel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fbalbi%2Fusb.git%2Flog > %2F%3Fh%3Dnext&data=02%7C01%7Csherry.sun%40nxp.com%7C368b > a21c33c048fd137208d735199870%7C686ea1d3bc2b4c6fa92cd99c5c301635% > 7C0%7C0%7C637036256383511193&sdata=OxjRaHtDmkJBJ41qwfOtf2Zj > WACskvcAuUUPDRuYDcA%3D&reserved=0) > > Care has been taken to keep the changes with linux minimal to ease the > maintenance: the drivers are quite new and will probably evolve quite a bit in > the next few months.
Thanks for your information, I will try to test your cdns3 patches on i.MX8 platform recently. Best regards Sherry Sun > > JJ > > > > > Best regards > > Sherry sun > > > >> JJ > >> > >>> Best regards > >>> Sherry sun > >>> > >>>> Regards > >>>> Vignesh > >>>> > >>>>> Best regards > >>>>> Sherry sun > >>>>> > >>>>>> Regards > >>>>>> Vignesh > >>>>>> > >>>>>>> Best regards > >>>>>>> Sherry sun > >>>>>>> > >>>>>>>> JJ > >>>>>>>> > >>>>>>>>>> Then when binding the wrapper node, it will hard-coded the > >>>>>>>>>> two > >>>>>>>> subnodes > >>>>>>>>>> to different driver(gadge/host driver) according to the > >>>>>>>>>> dr_mode property > >>>>>>>> in > >>>>>>>>>> nodes. > >>>>>>>>>> > >>>>>>>>> Do you think I understand it right? > >>>>>>>>> Best regards > >>>>>>>>> Sherry sun > >>>>>>>>> > >>>>>>>>>> Best regards > >>>>>>>>>> Sherry sun > >>>>>>>>>> > >>>>>>>>>>> JJ > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>>>>>>>> + { } > >>>>>>>>>>>>>>>>> +}; > >>>>>>>>>> _______________________________________________ > >>>>>>>>>> U-Boot mailing list > >>>>>>>>>> U-Boot@lists.denx.de > >>>>>>>>>> https://l > >>>>>>>>>> > >> > ists.d&data=02%7C01%7Csherry.sun%40nxp.com%7C7d1d76a7124f4c3f > >>>>>> e9 > >> > 9d08d72d3ddf82%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63 > >>>>>> 70276 > >> > 16080089878&sdata=70BPVQkomokcNpxsHRD3njfZQvuG51VSD1QKBjQ > >>>>>> o1kA%3 > >>>>>>>>>> D&reserved=0 > >>>>>>>>>> enx.de%2Flistinfo%2Fu- > >>>>>>>>>> > >> > boot&data=02%7C01%7Csherry.sun%40nxp.com%7C35f1d34da1ea4b7 > >> > 670ba08d72b823e9a%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7 > >> > C637025710721487079&sdata=Nfk0qWtSViz60wJHAOr2m5tgIwTWjNwI > >>>>>>>>>> GrNOxDH6HC0%3D&reserved=0 > >>>>>> -- > >>>>>> Regards > >>>>>> Vignesh _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot