On 28/08/2019 13:50, Sherry Sun wrote:
Hi Jean,

Hi Jean,

Hi Marek, Sherry,


we keep the cdns3 node for usb gadget driver, then add a usb host
node for
xhci-imx8 driver in *-uboot.dtsi. so here is no need to change
the host driver
compatible.
But the compatible in gadget driver should be changed later.
We should try avoiding ABI breaks in DT.
But the cdns3 usb gaget driver and host driver in different uclass
need two
dt nodes to bind with.
And the compatible of the two node cannot be same.
So for gadget driver, the compatible may use "cdns,usb3-1.0.0", for
host
driver, the compatible will use "cdns,usb3-1.0.0-host".
What do you think about it?
CCing Jean, since I think he did solve similar topic for his platform.
I've been OOO for a few weeks and didn't look at the whole series.

For this particular issue, the solution I used is to let the wrapper
do the binding job. The name of the driver to use is hard-coded in the
wrapper diver.
This is done in dwc3_glue_bind().
Thanks for your suggestions.

So if I want to use the cdns3 usb node as both usb gadget device and usb
host device, do you mean that I should make the cdns3 usb node as a usb
wrapper device, and create two subnodes in it.

I think we should not change the binding to adapt to out driver but keep the bindings that exist in linux and adapt the u-boot driver

In the version used by our platform, there is a wrapper around the USB:

    usbss0: cdns_usb@4104000 {
        compatible = "ti,j721e-usb";
        [....]
        usb0: usb@6000000 {
            compatible = "cdns,usb3-1.0.1";

The driver selection (host or device) could be done by the wrapper when it binds its children (same as the dwc3).

OR

The "cdns,usb3-1.0.1" could be a dumb driver the role of which would be only to bind a new driver (host or device) based on "dr_mode". The binding could be done using the same node, it doesn't have to be a subnode.


Maybe the second solution will be better, as it would work for platforms that do not use a wrapper.


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://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.d
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
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to